Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-17147_Practice_Material — Este repositorio contiene particiones flash extraídas con versión de firmware vulnerable a CVE-2019-17147, y algunos binarios útiles para degradar y depurar tu router WR841N. | Kitploit
Herramientas/GitHubGitHub/drmnsamoliu/cve-2019-17147_practice_material
Seguridad de Sistemas EmbebidosAnálisis de VulnerabilidadesExplotaciónDepuradoresHacking de HardwareAnálisis de BinariosAprendizaje y EducaciónAnálisis de FirmwareLabs y Práctica

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHubdrmnsamoliu/cve-2019-17147_practice_material

CVE-2019-17147_Practice_Material

Este repositorio contiene particiones flash extraídas con versión de firmware vulnerable a CVE-2019-17147, y algunos binarios útiles para degradar y depurar tu router WR841N.

Ver Repositorio
414hace 4 añosAún no revisado

CVE-2019-17147_Practice_Material

Este repositorio contiene particiones flash volcadas con versión de firmware vulnerable a CVE-2019-17147, y algunos binarios útiles para degradar y depurar tu router WR841N(V14).

Realizar modificaciones de hardware, como sobrescribir particiones del chip flash, conlleva riesgos. Evalúa los riesgos y decide por ti mismo si deseas hacerlo o no.

¿Por qué?

La publicación de ZDI: https://www.zerodayinitiative.com/blog/2019/12/2/mindshare-hardware-reversing-with-the-tp-link-tl-wr841n-router-part-2 demostró una vulnerabilidad muy interesante que realmente me gustaría probar y aprender algo de ella.
Desafortunadamente, la versión de firmware (US) 0.9.1 4.16 v007c.0 Build 180613 Rel.42415n ya ha sido eliminada del sitio web de EE. UU. y ya no se puede descargar.
Sin embargo, tengo algunos WR841N que ejecutan la versión de firmware (TW) 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n, que es más antigua que la que ZDI explotó y la misma vulnerabilidad aún existe.

Supongo que muchas más personas estarían interesadas en reproducir este exploit pero se enfrentan al mismo problema: no pueden encontrar un WR841N funcional que ejecute una versión vulnerable del firmware.
Si estás utilizando hardware de las versiones TW, EU o JP, aún es posible descargar una versión de firmware anterior a 180613 (lo que significa que fue construida el 2018/06/13) y degradar tu router simplemente "actualizándolo" con firmware antiguo desde el sitio web oficial.

Aunque la degradación del firmware es posible, el WR841N verifica y no acepta firmware destinado a hardware vendido en diferentes países. Así que para aquellas personas que viven en países donde TP-Link no proporciona una versión vulnerable de firmware en su sitio web (por ejemplo, EE. UU.), necesitarán eludir la verificación en el servidor HTTP y escribir el firmware vulnerable directamente en el chip flash de su dispositivo. Para eso principalmente es este repositorio.

También he compilado de forma cruzada busybox y gdbserver estáticos que funcionan en WR841N para cualquiera que quiera intentar depurar y recrear el exploit.

Haz una copia de seguridad de tus particiones flash

Antes de intentar sobrescribir tus particiones flash, deberías hacer una copia de seguridad de las actuales para poder restaurar tu router después de terminar de jugar con esta versión vulnerable.

Asumo que ya estás familiarizado con el uso de la consola serie, así que omitiré la parte del hardware.

  1. Configura un servidor tftp en la máquina que prefieras.

  2. En la consola del WR841N:
    (Reemplaza la dirección IP con la de tu 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. Verifica los archivos .bin con binwalk para asegurarte de que has hecho una copia de seguridad exitosa de tus particiones flash.


Cómo sobrescribir la partición flash con las vulnerables

Las particiones flash en WR841N son las siguientes:

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"

La partición principal que necesitas sobrescribir es rootfs (mtd2), pero por estabilidad también sobrescribiremos boot y kernel.
No he proporcionado las particiones config y radio porque no afectan la vulnerabilidad y ciertamente no quieres meterte con la configuración de RF para evitar posibles problemas legales.


  1. Transfiere flashcp al WR841N con tftp.

En el shell del WR841N:

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

(Reemplaza la dirección IP con la de tu máquina que ejecuta el servidor tftp, por supuesto.)


  1. Transfiere TW_wr841N_mtd0_boot_180516.bin al WR841N y sobrescribe con 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: El orden en que transfieras y sobrescribas las particiones no importa, pero asegúrate de hacerlo **UNA POR UNA** y no transferir todos los archivos .bin al WR841N de una vez.
Elimina el .bin que ya flasheaste antes de transferir el siguiente. El router tiene muy poca memoria y se bloqueará si transfieres demasiadas cosas a su ramfs.

  1. Transfiere TW_wr841N_mtd1_kernel_180516.bin al WR841N y sobrescribe con 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. Transfiere TW_wr841N_mtd2_rootfs_180516.bin al WR841N y sobrescribe con flashcp (Esta es la partición más grande, por lo que flashcp tomará algo de tiempo en 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. Reinicia el router y deberías ver que su página de administración web se vuelve completamente en chino tradicional, y la versión del firmware es 0.9.1 4.16 v009e.0 Build 180516 Rel.81030n.



FW

Notas

  1. El PoC proporcionado por ZDI no funcionará directamente con la versión de firmware aquí proporcionada; los offsets de memoria son diferentes. Deberías intentar modificar el PoC de ZDI o crear tu propio exploit :)

  2. Todos los binarios han sido compilados de forma cruzada por mí mismo con buildroot-2021.02.6.

  3. El idioma del firmware no debería afectar mucho, ya que la mayor parte del trabajo para depurar y desarrollar el exploit se realiza en la consola. Sin embargo, podría intentar crear particiones flasheables a partir de la versión vulnerable de EU o JP si alguien realmente lo necesita y lo solicita.

  4. No hace falta decirlo, realizar modificaciones de hardware como sobrescribir particiones del chip flash conlleva riesgos. Evalúa los riesgos y decide por ti mismo si deseas hacerlo o no.
Descargar herramienta