IPMI
La Interfaz de Gestión de Plataforma Inteligente (IPMI) es un conjunto de especificaciones estandarizadas para sistemas de gestión de hardware basados en hardware utilizados para la gestión y monitoreo de sistemas. Actúa como un subsistema autónomo y funciona de manera independiente del BIOS, CPU, firmware y sistema operativo subyacente del host. IPMI proporciona a los administradores del sistema la capacidad de gestionar y monitorear sistemas incluso si están apagados o en un estado no respondiente. Opera utilizando una conexión de red directa al hardware del sistema y no requiere acceso al sistema operativo a través de un shell de inicio de sesión. IPMI también se puede utilizar para actualizaciones remotas de sistemas sin requerir acceso físico al host objetivo. IPMI se utiliza comúnmente de las siguientes maneras:
Antes de que el sistema operativo se haya iniciado para modificar la configuración del BIOS.
Cuando el host está completamente apagado.
Acceso a un host después de una falla del sistema.
Cuando no se usa para estas tareas, IPMI puede monitorear una variedad de cosas, como temperatura del sistema, voltaje, estado de los ventiladores y suministros de energía. También se puede utilizar para consultar información de inventario, revisar registros de hardware y alertar mediante SNMP. El sistema host puede estar apagado, pero el módulo IPMI requiere una fuente de alimentación y una conexión LAN para funcionar correctamente.
El protocolo IPMI se publicó por primera vez por Intel en 1998 y ahora es compatible con más de 200 proveedores de sistemas, incluidos Cisco, Dell, HP, Supermicro, Intel y más. Los sistemas que utilizan la versión 2.0 de IPMI pueden ser administrados a través de serial sobre LAN, dando a los administradores la capacidad de ver la salida del consola serial en banda. Para funcionar, IPMI requiere los siguientes componentes:
Controlador de Gestión de Placa Base (BMC) - Un microcontrolador y componente esencial de IPMI.
Bus de Gestión de Chasis Inteligente (ICMB) - Una interfaz que permite la comunicación de un chasis a otro.
Bus de Gestión de Plataforma Inteligente (IPMB) - Extiende el BMC.
Memoria IPMI - Almacena cosas como el registro de eventos del sistema, datos del repositorio, y más.
Interfaces de Comunicación - Interfaces locales del sistema, seriales y LAN, ICMB y Bus de Gestión PCI.
Identificación del Servicio
IPMI se comunica a través del puerto 623 UDP. Los sistemas que utilizan el protocolo IPMI se llaman Controladores de Gestión de Placa Base (BMCs). Los BMCs suelen estar implementados como sistemas ARM embebidos que ejecutan Linux y se conectan directamente a la placa base del host. Los BMCs están integrados en muchas placas base, pero también se pueden agregar al sistema como una tarjeta PCI. La mayoría de los servidores vienen con un BMC o soportan la adición de un BMC. Los BMCs más comunes que a menudo vemos durante las pruebas de penetración internas son HP iLO, Dell DRAC y Supermicro IPMI. Si podemos acceder a un BMC durante una evaluación, obtendremos acceso completo a la placa base del host y podremos monitorear, reiniciar, apagar o incluso reinstalar el sistema operativo del host. Obtener acceso a un BMC es casi equivalente al acceso físico a un sistema. Muchos BMCs (incluidos HP iLO, Dell DRAC y Supermicro IPMI) exponen una consola de gestión basada en web, algún tipo de protocolo de acceso remoto por línea de comandos, como Telnet o SSH, y el puerto 623 UDP, que es para el protocolo de red IPMI. A continuación se muestra un escaneo de Nmap utilizando el script ipmi-version
de Nmap para identificar el servicio.
Ejemplo de Escaneo con Nmap
Resultado del Escaneo
Aquí podemos ver que el protocolo IPMI está efectivamente escuchando en el puerto 623, y Nmap ha identificado la versión 2.0 del protocolo. También podemos utilizar el módulo de escaneo de Metasploit IPMI Information Discovery
(auxiliary/scanner/ipmi/ipmi_version).
Escaneo de Versión con Metasploit
Opciones del Módulo
Resultado del Escaneo
Durante las pruebas de penetración internas, a menudo encontramos BMCs donde los administradores no han cambiado la contraseña predeterminada. Algunas contraseñas predeterminadas únicas para tener en nuestras hojas de trucos incluyen:
Producto | Usuario | Contraseña |
---|---|---|
Dell iDRAC | root | calvin |
HP iLO | Administrator | cadena aleatoria de 8 caracteres compuesta de números y letras en mayúsculas |
Supermicro IPMI | ADMIN | ADMIN |
También es esencial probar contraseñas predeterminadas conocidas para CUALQUIER servicio que descubramos, ya que a menudo permanecen sin cambios y pueden llevar a victorias rápidas. Al tratar con BMCs, estas contraseñas predeterminadas pueden darnos acceso a la consola web o incluso acceso a la línea de comandos a través de SSH o Telnet.
Configuraciones Peligrosas
Si las credenciales predeterminadas no funcionan para acceder a un BMC, podemos recurrir a una falla en el protocolo RAKP en IPMI 2.0. Durante el proceso de autenticación, el servidor envía un hash SHA1 o MD5 salado de la contraseña del usuario al cliente antes de que se realice la autenticación. Esto puede aprovecharse para obtener el hash de la contraseña de CUALQUIER cuenta de usuario válida en el BMC. Estos hashes de contraseñas se pueden descifrar fuera de línea utilizando un ataque de diccionario con Hashcat en el modo 7300. En el caso de un HP iLO con una contraseña predeterminada de fábrica, podemos usar este comando de ataque con máscara de Hashcat:
Esto intenta todas las combinaciones de letras mayúsculas y números para una contraseña de ocho caracteres.
No hay una "solución" directa a este problema porque la falla es un componente crítico de la especificación IPMI. Los clientes pueden optar por contraseñas muy largas y difíciles de descifrar o implementar reglas de segmentación de red para restringir el acceso directo a los BMCs. Es importante no pasar por alto IPMI durante las pruebas de penetración internas (lo vemos durante la mayoría de las evaluaciones) porque no solo a menudo podemos obtener acceso a la consola web del BMC, que es un hallazgo de alto riesgo, sino que hemos visto entornos donde una contraseña única (pero descifrable) se establece y luego se reutiliza en otros sistemas. En una prueba de penetración, obtuvimos un hash de IPMI, lo desciframos fuera de línea con Hashcat y pudimos acceder por SSH a muchos servidores críticos en el entorno como usuario root y obtener acceso a consolas de gestión web para varias herramientas de monitoreo de red.
Extracción de Hashes con Metasploit
Para recuperar hashes IPMI, podemos usar el módulo de Metasploit IPMI 2.0 RAKP Remote SHA1 Password Hash Retrieval
.
Opciones del Módulo
Resultado de la Extracción
Aquí podemos ver que hemos obtenido exitosamente el hash de la contraseña para el usuario ADMIN, y la herramienta pudo descifrarlo rápidamente para revelar lo que parece ser una contraseña predeterminada ADMIN. Desde aquí, podríamos intentar iniciar sesión en el BMC, o, si la contraseña fuera algo más única, verificar la reutilización de contraseñas en otros sistemas. IPMI es muy común en entornos de red ya que los administradores necesitan poder acceder a los servidores de forma remota en caso de una falla o realizar ciertas tareas de mantenimiento que tradicionalmente tendrían que completar físicamente frente al servidor. Esta facilidad de administración viene con el riesgo de exponer hashes de contraseñas a cualquier persona en la red y puede llevar a accesos no autorizados, interrupción del sistema e incluso ejecución remota de código. Verificar IPMI debe ser parte de nuestro libro de jugadas de pruebas de penetración internas para cualquier entorno que evaluemos.
Last updated