IPMI Hash Dump (CVE-2013-4786)
IPMI (Intelligent Platform Management Interface) es el protocolo que usan los controladores de gestión de placa base (BMC: iLO de HP, iDRAC de Dell, Supermicro) para administrar un servidor por fuera del sistema operativo: encenderlo, apagarlo, montar medios remotos o abrir una consola, aunque la máquina esté apagada. Escucha en el puerto UDP 623 y arrastra un fallo de diseño en su versión 2.0 (CVE-2013-4786) que permite a cualquiera sacar el hash de la contraseña de un usuario sin autenticarse.
Mecanismo
El problema está en el propio handshake de RAKP (el protocolo de autenticación de IPMI 2.0). Durante la negociación, y antes de que el cliente demuestre que conoce la contraseña, el BMC devuelve un mensaje que incluye un hash HMAC calculado sobre la contraseña del usuario. Un atacante solo tiene que pedir ese mensaje para un nombre de usuario válido (o probado) y se lleva a casa un hash crackeable offline, sin límite de intentos y sin dejar un login fallido.
El módulo de Metasploit lo automatiza: enumera usuarios y recoge el hash de cada uno en formato de hashcat:
msf6 > use auxiliary/scanner/ipmi/ipmi_dumphashes
msf6 auxiliary(ipmi_dumphashes) > set RHOSTS <ip>
msf6 auxiliary(ipmi_dumphashes) > runEl resultado se crackea con hashcat en el modo específico de RAKP:
hashcat -m 7300 ipmi.hashes <rockyou.txt>Requisitos. Solo hace falta alcanzar el UDP 623 del BMC; no se necesitan credenciales previas. El acierto es alto porque muchos BMC salen de fábrica con usuarios y contraseñas por defecto (ADMIN:ADMIN, root:calvin en iDRAC), que además ni siquiera hay que crackear.
Cómo detectarlo
Localizar el servicio con un escaneo UDP y el módulo de versión:
sudo nmap -sU -p 623 <ip>
msf6 > use auxiliary/scanner/ipmi/ipmi_versionDefensa. El fallo es de protocolo y no tiene parche real: hay que aislar la red de gestión (los BMC nunca deben ser accesibles desde la red de usuarios ni desde Internet), cambiar todas las credenciales por defecto y usar contraseñas largas y aleatorias para que el hash, aunque se filtre, sea inviable de crackear. Relacionado con cracking de hashes y enumeración SNMP.