IPMI

La Interfaz de Gestión Inteligente de Plataformas (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

Footprinting del servicio

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 ipmi-version NSE para rastrear el servicio.

Nmap

sudo nmap -sU --script ipmi-version -p 623 <ip>

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, Descubrimiento de Información IPMI (auxiliary/scanner/ipmi/ipmi_version) .

Escaneo de Metasploit

use auxiliary/scanner/ipmi/ipmi_version
set rhosts <ip>
show options
run

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.

Configuraciones peligrosas

Si las credenciales predeterminadas no funcionan para acceder a una BMC, podemos recurrir a una falla 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 Hashcatel 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.

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.

Para recuperar hashes de IPMI, podemos utilizar el módulo Metasploit IPMI 2.0 RAKP Remote SHA1 Password Hash Retrieval .

Hashes de volcado de Metasploit

use auxiliary/scanner/ipmi/ipmi_dumphashes
set rhosts <ip>
show options 
run

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.

Last updated