Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2019-17147_Practice_Material — Este repositório contém partições de flash despejadas com versão de firmware vulnerável ao CVE-2019-17147, e alguns binários úteis para fazer downgrade e depurar seu roteador WR841N. | Kitploit
Ferramentas/GitHubGitHub/drmnsamoliu/cve-2019-17147_practice_material
Segurança de Sistemas EmbarcadosAnálise de VulnerabilidadesExploraçãoDepuradoresHacking de HardwareAnálise de BináriosAprendizado e EducaçãoAnálise de FirmwareLabs e Prática

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
GitHubdrmnsamoliu/cve-2019-17147_practice_material

CVE-2019-17147_Practice_Material

Este repositório contém partições de flash despejadas com versão de firmware vulnerável ao CVE-2019-17147, e alguns binários úteis para fazer downgrade e depurar seu roteador WR841N.

Ver Repositório
414há 4 anosAinda não revisado

CVE-2019-17147_Practice_Material

Este repositório contém partições flash extraídas com uma versão de firmware vulnerável à CVE-2019-17147, além de binários úteis para fazer downgrade e depurar seu roteador WR841N(V14).

Fazer modificações de hardware, como sobrescrever partições do chip flash, traz riscos. Avalie os riscos e decida por si mesmo se deseja fazê-lo ou não.

Porquê?

O artigo da ZDI: https://www.zerodayinitiative.com/blog/2019/12/2/mindshare-hardware-reversing-with-the-tp-link-tl-wr841n-router-part-2 demonstrou uma vulnerabilidade muito interessante que eu realmente gostaria de testar e aprender algo com ela.
Infelizmente, a versão do firmware (US) 0.9.1 4.16 v007c.0 Build 180613 Rel.42415n já foi removida do site americano e não pode mais ser baixada.
No entanto, tenho alguns WR841N rodando a versão de firmware (TW) 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n, que é mais antiga que a explorada pela ZDI e a mesma vulnerabilidade ainda existe.

Acho que muitas outras pessoas gostariam de reproduzir este exploit, mas enfrentam o mesmo problema: não conseguem encontrar um WR841N funcional rodando uma versão vulnerável do firmware.
Se você estiver usando hardware das versões TW, EU ou JP, ainda é possível baixar versões de firmware anteriores a 180613 (ou seja, construídas em 2018/06/13) e fazer downgrade do seu roteador apenas "atualizando-o" com firmware antigo do site oficial.

Embora o downgrade de firmware seja possível, o WR841N verifica e não aceita firmware destinado a hardware vendido em países diferentes. Portanto, para aqueles que moram em países onde a TP-Link não fornece versões vulneráveis do firmware em seu site (por exemplo, EUA), será necessário contornar a verificação no servidor HTTP e gravar o firmware vulnerável diretamente no chip flash do dispositivo. É para isso que este repositório serve principalmente.

Também compilei de forma estática o busybox e o gdbserver que funcionam no WR841N para quem quiser tentar depurar e recriar o exploit.

Faça backup das suas partições flash

Antes de tentar sobrescrever suas partições flash, você deve fazer backup das atuais para poder restaurar seu roteador depois de terminar de brincar com esta versão vulnerável.

Presumo que você já esteja familiarizado com o uso do console serial, então pularei a parte de hardware.

  1. Configure um servidor tftp na máquina de sua escolha.

  2. No console do WR841N:
    (Substitua o endereço IP pelo do seu servidor tftp)

root@kitploit:~
~ # cat /dev/mtd0 > /var/WR841N_backup_mtd0_boot.bin
~ # tftp -p -r /var/WR841N_backup_mtd0_boot.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd0_boot.bin
~ #
~ # cat /dev/mtd1 > /var/WR841N_backup_mtd1_kernel.bin
~ # tftp -p -r /var/WR841N_backup_mtd1_kernel.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd1_kernel.bin
~ #
~ # cat /dev/mtd2 > /var/WR841N_backup_mtd2_rootfs.bin
~ # tftp -p -r /var/WR841N_backup_mtd2_rootfs.bin 192.168.0.100
~ # rm /var/WR841N_backup_mtd2_rootfs.bin=
  1. Verifique os arquivos .bin com binwalk para garantir que você fez backup com sucesso das suas partições flash.


Como sobrescrever a partição flash com as vulneráveis

As partições flash no WR841N são as seguintes:

root@kitploit:~
dev:    size   erasesize  name
mtd0: 00010000 00010000 "boot"
mtd1: 000f0000 00010000 "kernel"
mtd2: 002e0000 00010000 "rootfs"
mtd3: 00010000 00010000 "config"
mtd4: 00010000 00010000 "radio"

A partição principal que você precisa sobrescrever é rootfs (mtd2), mas por questão de estabilidade, também sobrescreveremos boot e kernel.
Não forneci as partições config e radio porque elas não afetam a vulnerabilidade e você certamente não quer mexer nas configurações de RF para evitar possíveis problemas legais.


  1. Transfira o flashcp para o WR841N via tftp.

No shell do WR841N:

root@kitploit:~
~ # cd /var
/var # tftp -g -r flashcp 192.168.0.100
/var # chmod +x flashcp

(Substitua o endereço IP pela sua máquina que está executando o servidor tftp, obviamente.)


  1. Transfira o arquivo TW_wr841N_mtd0_boot_180516.bin para o WR841N e sobrescreva com flashcp:
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd0_boot_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd0_boot_180516.bin /dev/mtd0
/var # rm TW_wr841N_mtd0_boot_180516.bin

Nota: A ordem das partições que você transfere e sobrescreve não importa, mas certifique-se de fazê-las **UMA DE CADA VEZ** e não transfira todos os arquivos .bin para o WR841N de uma só vez.
Remova o .bin que você já gravou antes de transferir o próximo. O roteador tem memória muito limitada e irá travar se você transferir muitos arquivos para a sua ramfs!

  1. Transfira o arquivo TW_wr841N_mtd1_kernel_180516.bin para o WR841N e sobrescreva com flashcp:
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd1_kernel_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd1_kernel_180516.bin /dev/mtd1
/var # rm TW_wr841N_mtd1_kernel_180516.bin

  1. Transfira o arquivo TW_wr841N_mtd2_rootfs_180516.bin para o WR841N e sobrescreva com flashcp (Esta é a maior partição, então o flashcp levará algum tempo para terminar):
root@kitploit:~
/var # tftp -g -r TW_wr841N_mtd2_rootfs_180516.bin 192.168.0.100
/var # ./flashcp TW_wr841N_mtd2_rootfs_180516.bin /dev/mtd2
/var # rm TW_wr841N_mtd2_rootfs_180516.bin

  1. Reinicie o roteador e você verá que a página de administração web estará toda em chinês tradicional, e a versão do firmware será 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n.



FW

Notas

  1. O PoC fornecido pela ZDI não funcionará de imediato na versão de firmware aqui fornecida, os offsets de memória são diferentes. Você deve tentar modificar o PoC da ZDI ou criar seu próprio exploit :)

  2. Todos os binários foram compilados por mim com o buildroot-2021.02.6.

  3. O idioma do firmware não deve afetar muito, pois a maior parte do trabalho de depuração e desenvolvimento do exploit é feita no console. No entanto, posso tentar construir partições flasháveis a partir de versões vulneráveis da UE ou JP se alguém realmente precisar e fizer uma solicitação.

  4. Escusado será dizer que fazer modificações de hardware, como sobrescrever partições do chip flash, traz riscos. Avalie os riscos e decida por si mesmo se deseja fazê-lo ou não.
Baixar ferramenta