Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ipmi — Cosas de IPMI del trabajo de DARPA | Kitploit
Herramientas/GitHubGitHub/zenfish/ipmi
Descifrado de ContraseñasReconocimientoMapeo de RedesEscaneo de PuertosAnálisis de VulnerabilidadesAuditoría de ConfiguraciónRecopilación de InformaciónPruebas de PenetraciónSeguridad de HardwareAutenticación
GitHub
76637hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
zenfish/ipmi

ipmi

Cosas de IPMI del trabajo de DARPA

Ver Repositorio

Escribí algún software para explorar IPMI; aquí hay algunos de los resultados. Pensé en hacer el ciclo habitual de detectar, obtener datos y auditar. Cada uno de estos resultó ser un problema bastante interesante por sí mismo, al menos para mí.

**BTW/FYI ** - Publiqué una nueva herramienta para explorar IPMI - https://github.com/zenfish/zipmi - así como un conjunto de recetas/imágenes/etc. de Qemu para ejecutar BMCs como sistemas virtuales bajo Qemu en https://github.com/zenfish/zbmc.

Sitio web de IPMI

Los artículos y cosas de http://fish2.com/ipmi

html

Descifrado de contraseñas

Aquí hay un pequeño programa en Perl que intenta adivinar una cuenta en un BMC remoto, extraer su hash, y luego intentar descifrar su contraseña (con hash HMAC). Escribí un pequeño texto sobre esto para los curiosos. Con abundantes comentarios, puede resultar de alguna utilidad.

Obtener cifrados

La especificación de IPMI dice que se puede obtener el cifrado de un sistema remoto sin ninguna autenticación, pero no conozco ninguna herramienta que realmente haga esto (todas requieren autenticación, ¡aunque por supuesto se podrían introducir los bytes hex en bruto si se quisiera!) Así que escribí este pequeño programa para hacerlo; en su mayoría intenta seguir la salida de ipmitool; al hacerlo creo que encontré un error en esa utilidad (en la línea final a veces los sistemas emiten algunos datos basura que parecen ser malinterpretados), pero quién sabe, no tengo suficientes sistemas para probar. En fin... ipmi-get-ciphers.py.

Si no sirve para otra cosa, es útil para detectar sistemas Cipher0 (nota - esto solo señala los cifrados que son compatibles - no significa que estén realmente activados), pero hay cosas interesantes ahí fuera.

Obtener detalles de autenticación

Dos programas aquí, uno es un simple sondeador remoto en Python (empezando a odiar Perl, que conste) y un segundo que usa utilidades de FreeIPMI para obtener datos de configuración con credenciales.

Un pequeño programa en python (más del 50% de comentarios en línea, 2.5k comprimido con gzip) que envía un único paquete a un BMC y reflexiona sobre la respuesta. ¿Qué se puede hacer con un solo paquete, uno se podría preguntar? Más de 10 pruebas de seguridad diferentes para IPMI, para empezar. Bueno, para empezar y para terminar, es solo un paquete :) Requiere python, un BMC y una ruta abierta al puerto UDP 623 para funcionar. El uso es simplemente "ipmi-get-auth.py target".

ipmi-get-auth.py / Una descripción muy breve

Llevando esto a los extremos... bueno, aquí hay una especie de mega versión de lo anterior que lo hace para todos los canales, todos los privilegios, todos... bueno, ya se hacen una idea. ¡Para los monomaníacos (lean los comentarios o la publicación que escribí al respecto para ver por qué hace lo que hace!)

mega_chan.py / Mega mega mega ... chan chan chan...

Obtener Device ID (GUID)

Y aquí hay un programa simple para enviar un paquete Get Device ID (ver p250 de la especificación IPMI v 2) a un sistema. Esto debería, en teoría, funcionar sin autenticación. En un pequeño estudio que hice, alrededor del 90% de los sistemas respondieron a esto (¡aunque no todos con información válida!) A veces se puede obtener el fabricante y otra información, como números de modelo y demás, pero lo más interesante es obtener realmente un ID único, tradicionalmente algo difícil de obtener a través de la red.

get-ipmi-guid.py / Get Device ID

Volcar contraseñas de un archivo binario de contraseñas de SuperMicro

Supermicro ha tenido algunos problemas con la divulgación del archivo de contraseñas de su BMC - por ejemplo, véase este y otros análisis:

a-penetration-testers-guide-to-ipmi

Para usar este script simplemente ejecuta:

dump_SM.py password_file

A mí me funciona, sin garantía implícita, garantizada, etc.

Detección

Bueno, si puedes comunicarte con el puerto UDP 623, es bastante sencillo averiguar si un sistema remoto está ejecutando IPMI. Sin embargo, a menos que estés dentro de un centro de datos, la mayoría de la gente bloquea UDP. Y aunque no lo hagan... el escaneo UDP es tan lento como uno pueda imaginar. Así que actualmente estoy usando dos métodos básicos, aprovechando el venerable Nmap y ipmiping (de las herramientas GNU FreeIPMI). Lo más fácil de hacer es:

  • Usar ipmiping para preguntar a un sistema remoto si habla IPMI o no. Una respuesta positiva es la indicación más fuerte de que un sistema habla IPMI (¡pero nada es seguro!) Técnicamente envía dos llamadas IPMI Get Channel Authentication Capabilities mediante un datagrama de solicitud Get Channel Authentication Capabilities en el puerto UDP 623 (dos solicitudes ya que usa UDP, y las conexiones no están garantizadas).
    </p> <p>
    
    Dado que Nmap es mucho más eficiente escaneando redes a gran escala
    que ipmiping, este método solo se usa si Nmap indica que un host
    tiene el UDP 623 abierto.
    
    </p> <p>
    
    Para bien o para mal, este puerto suele estar bloqueado, por lo que muchas
    veces otros métodos tienen más probabilidades de averiguar de forma oblicua si
    IPMI está en ejecución o no.
    
  • El segundo método es un poco difuso, y se basa en algo de inducción (también conocido como adivinar). Nmap escanea puertos que se sabe están asociados con IPMI y adiciones de proveedores; el UDP 623 es obvio (el puerto IPMI por defecto), pero hay una variedad de puertos (tanto UDP como TCP) que por sí solos podrían no darte una respuesta inmediata, pero que en conjunto pueden indicar fuertemente su presencia. TFTP, SNMP, SSH/SMASH, VNC y muchos otros están entre estos.
    </p> <p>
    
    Los puertos se ponderan según su capacidad indicativa y según si
    Nmap los encuentra abiertos, filtrados u en otros estados.
    
    </p> <p>
    
    Nmap también puede mostrar los banners de los servicios conectados. Uso
    expresiones regulares para buscar objetivos; por ejemplo, las cadenas
    "iLO" y "DRAC" son buenos indicadores de que un sistema podría estar ejecutando
    el servicio Integrated Lights Out de HP, o iLO.
    
    </p> <p>
    
Descargar herramienta