IPMI
Last updated
(IPMI IPMI
) es un conjunto de especificaciones estandarizadas para sistemas de gestión de host basados en hardware, que se utilizan para la administración y monitorización de sistemas. Actúa como un subsistema autónomo y funciona independientemente de la BIOS, la CPU, el firmware y el sistema operativo subyacente del host. IPMI permite a los administradores de sistemas gestionar y monitorizar sistemas incluso si están apagados o no responden. Funciona mediante una conexión de red directa al hardware del sistema y no requiere acceso al sistema operativo mediante un shell de inicio de sesión. IPMI también puede utilizarse para actualizaciones remotas de sistemas sin necesidad de acceso físico al host de destino. IPMI se utiliza habitualmente de tres 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 utiliza para estas tareas, IPMI puede supervisar diversos aspectos, como la temperatura del sistema, el voltaje, el estado de los ventiladores y las fuentes de alimentación. También puede utilizarse para consultar información de inventario, revisar registros de hardware y emitir alertas mediante SNMP. El sistema host puede apagarse, pero el módulo IPMI requiere una fuente de alimentación y una conexión LAN para funcionar correctamente.
El protocolo IPMI fue publicado por primera vez por Intel en 1998 y actualmente cuenta con el soporte de más de 200 proveedores de sistemas, entre ellos Cisco, Dell, HP, Supermicro, Intel y otros. Los sistemas que utilizan IPMI versión 2.0 pueden administrarse vía serie sobre LAN, lo que permite a los administradores de sistemas visualizar la salida de la consola serie en banda. Para funcionar, IPMI requiere los siguientes componentes:
Controlador de administración de placa base (BMC): un microcontrolador y un componente esencial de una 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): amplía el BMC
Memoria IPMI: almacena elementos como el registro de eventos del sistema, datos del almacén del repositorio y más.
Interfaces de comunicaciones: interfaces de sistema local, interfaces seriales y LAN, bus de administración ICMB y PCI
IPMI se comunica a través del puerto UDP 623. Los sistemas que utilizan el protocolo IPMI se denominan Controladores de Administración de Placa Base (BMC). Los BMC suelen implementarse como sistemas ARM embebidos con Linux y se conectan directamente a la placa base del host. Los BMC están integrados en muchas placas base, pero también pueden añadirse a un sistema como una tarjeta PCI. La mayoría de los servidores incluyen un BMC o admiten su incorporación. Los BMC más comunes que observamos durante las pruebas de penetración internas son HP iLO, Dell DRAC y Supermicro IPMI. Si logramos acceder a un BMC durante una evaluación, obtendremos acceso completo a la placa base del host y podremos supervisar, reiniciar, apagar o incluso reinstalar el sistema operativo del host. Acceder a un BMC es prácticamente equivalente al acceso físico a un sistema. Muchas BMC (incluidas HP iLO, Dell DRAC y Supermicro IPMI) ofrecen una consola de administración web, algún tipo de protocolo de acceso remoto por línea de comandos, como Telnet o SSH, y el puerto UDP 623, que, de nuevo, corresponde al protocolo de red IPMI. A continuación, se muestra un ejemplo de escaneo de Nmap con el script Nmap NSE para rastrear el servicio.
Aquí podemos ver que el protocolo IPMI está escuchando en el puerto 623 y que Nmap ha identificado la versión 2.0 del protocolo. También podemos usar el módulo de análisis de Metasploit, .
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 que debemos tener en nuestras hojas de referencia incluyen:
Producto
Nombre de usuario
Contraseña
Dell iDRAC
raíz
Calvino
HP iLO
Administrador
Cadena aleatoria de 8 caracteres que consta de números y letras mayúsculas
Supermicro IPMI
ADMINISTRACIÓN
ADMINISTRACIÓN
También es fundamental probar las contraseñas predeterminadas conocidas para cualquier servicio que encontremos, ya que suelen permanecer inalteradas y pueden generar resultados inmediatos. Al trabajar con BMC, estas contraseñas predeterminadas pueden permitirnos acceder a la consola web o incluso a la línea de comandos mediante SSH o Telnet.
No existe una solución directa para este problema, ya que 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 BMC. Es importante no pasar por alto IPMI durante las pruebas de penetración internas (lo observamos en la mayoría de las evaluaciones), ya que no solo podemos acceder a menudo a la consola web de BMC, lo cual es un hallazgo de alto riesgo, sino que también hemos visto entornos donde se establece una contraseña única (pero descifrable) que posteriormente se reutiliza en otros sistemas. En una de estas pruebas de penetración, obtuvimos un hash de IPMI, lo desciframos sin conexión mediante Hashcat y pudimos acceder por SSH a muchos servidores críticos del entorno como usuario root y obtener acceso a las consolas de administración web de diversas herramientas de monitorización de red.
Aquí podemos ver que obtuvimos exitosamente el hash de contraseña para el usuario ADMIN
, y la herramienta fue capaz de 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 único, verificar la reutilización de contraseñas en otros sistemas. IPMI es muy común en entornos de red ya que los administradores de sistemas necesitan poder acceder a los servidores de forma remota en caso de una interrupción o realizar ciertas tareas de mantenimiento que tradicionalmente habrían tenido que completar físicamente frente al servidor. Esta facilidad de administración viene con el riesgo de exponer hashes de contraseña a cualquier persona en la red y puede conducir a acceso no autorizado, interrupción del sistema e incluso ejecución remota de código. Verificar IPMI debería ser parte de nuestro manual de pruebas de penetración internas para cualquier entorno que nos encontremos evaluando.
Si las credenciales predeterminadas no funcionan para acceder a una BMC, podemos recurrir a una en el protocolo RAKP de IPMI 2.0. Durante el proceso de autenticación, el servidor envía al cliente un hash SHA1 o MD5 con sal de la contraseña del usuario 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 la BMC. Estos hashes de contraseña pueden descifrarse sin conexión mediante un ataque de diccionario con Hashcat
el modo `` 7300
. En el caso de un HP iLO que utiliza una contraseña predeterminada de fábrica, podemos usar el comando de ataque ``hashcat mask`` hashcat -m 7300 ipmi.txt -a 3 ?1?1?1?1?1?1?1?1 -1 ?d?u
, que prueba todas las combinaciones de mayúsculas y números para obtener una contraseña de ocho caracteres.
Para recuperar hashes de IPMI, podemos utilizar el módulo Metasploit .