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
firmware-mod-kit — Exportado automáticamente desde code.google.com/p/firmware-mod-kit | Kitploit
Herramientas/GitHubGitHub/rampagex/firmware-mod-kit
Seguridad de Sistemas EmbebidosIngeniería InversaSeguridad de HardwareAnálisis de Firmware
GitHubrampagex/firmware-mod-kit

firmware-mod-kit

Exportado automáticamente desde code.google.com/p/firmware-mod-kit

Ver Repositorio
9962074hace 6 mesesRevisado por Kitploit

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

Descargo de responsabilidad

Exportado automáticamente desde code.google.com/p/firmware-mod-kit

Kit de Modificación de Firmware

Este kit es una colección de scripts y utilidades para extraer y reconstruir imágenes de firmware basadas en Linux.

root@kitploit:~
Extraer una imagen de firmware en sus partes componentes
El usuario realiza la modificación deseada al sistema de archivos del firmware o a la interfaz web (webif)
Reconstruir el firmware
Flashear el firmware modificado en el dispositivo y brickearlo (ja)

ADVERTENCIA: Vas a brickear tu dispositivo al usar este kit (quizás no, pero mejor decir que lo harás). Brickear significa convertir efectivamente en un 'ladrillo' no funcional. La recuperación a veces es posible sin modificaciones de hardware. A veces requiere modificaciones de hardware (por ejemplo, cabezales seriales o JTAG soldados a la PCB). A veces simplemente no es factible, o costaría más en costo total de recuperación de lo que vale la unidad.

NO uses este kit si no estás preparado para que tu router se brickee!

EULA: Al descargar o usar este kit, aceptas asumir la responsabilidad por las consecuencias del uso o mal uso del Kit de Modificación de Firmware. Estas incluyen el bricking de tu dispositivo. Los autores de este kit te han advertido debidamente. Este kit es solo para ingenieros de software de sistemas embebidos.

Kit de Modificación de Firmware

  • Introducción
  • Requisitos Previos
  • Usando el Kit
    • Ejecutables del Kit
    • El Directorio de Trabajo del Firmware
    • Extrayendo Firmware
    • Reconstruyendo Firmware
    • Modificando Páginas Web de DD-WRT
    • Volviendo a un firmware de proveedor
    • Ejemplos
    • Firmware de Linksys
    • Herramientas / Utilidades
  • Otros Enlaces

Introducción

El Kit de Modificación de Firmware permite la deconstrucción y reconstrucción sencilla de imágenes de firmware para varios dispositivos embebidos. Aunque se enfoca principalmente en routers basados en Linux, debería ser compatible con la mayoría de los firmwares que utilizan formatos y sistemas de archivos comunes como TRX/uImage y SquashFS/CramFS.

Requisitos Previos

Para usar el Kit de Modificación de Firmware, debes tener un cliente de subversion, herramientas de desarrollo estándar de Linux (gcc, make, etc.), el módulo python-magic, y los paquetes de desarrollo zlib y lzma. Si estás ejecutando una distribución de Linux que usa apt-get, por ejemplo Ubuntu o Debian, usa:

Para Ubuntu 18.04 y anteriores:

root@kitploit:~
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic autoconf

Para Ubuntu 20.04 y posteriores:

root@kitploit:~
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python3-magic autoconf python-is-python3

Para RedHat:

root@kitploit:~
yum groupinstall "Development Tools"
yum install git zlib1g-dev xz-devel python-magic zlib-devel util-linux

Para Arch Linux:

Hay un paquete AUR en https://aur.archlinux.org/packages/firmware-mod-kit/

Para otras distribuciones, debes instalar los paquetes equivalentes usando el gestor de paquetes de tu distribución.

root@kitploit:~
git clone https://github.com/rampageX/firmware-mod-kit.git
cd firmware-mod-kit/src
make

Binwalk 2.1.1

root@kitploit:~
[Back in firmware-mod-kit directory]
cd src/binwalk-2.1.1
sudo python2 setup.py install

El Kit de Modificación de Firmware es solo compatible con la plataforma Linux. Con algunas pequeñas modificaciones, debería funcionar en otras plataformas POSIX.

Usando el Kit

Clona el repositorio del Kit de Modificación de Firmware usando Git.

Ejecutables del Kit

El Kit de Modificación de Firmware es una colección de utilidades y scripts de shell. Las utilidades se pueden usar directamente, o los scripts de shell se pueden usar para automatizar y combinar operaciones comunes de firmware (por ejemplo, extraer y reconstruir). Los scripts principales para facilitar las operaciones de firmware se enumeran a continuación.

Scripts principales:

ScriptDescripción
extract-firmware.shScript de extracción de firmware
build-firmware.shScript de reconstrucción de firmware

Scripts secundarios:

ddwrt-gui-extract.shExtrae archivos de la GUI web del firmware DD-WRT extraído.
ddwrt-gui-rebuild.shRestaura archivos modificados de la GUI web al firmware DD-WRT extraído.

El Directorio de Trabajo del Firmware

El Kit de Modificación de Firmware utiliza un directorio de trabajo 'hard coded' llamado 'fmk'. El script de extracción extrae a esta carpeta, y el script de reconstrucción reconstruye desde esta carpeta. Se permite el uso de directorios de trabajo alternativos para algunas operaciones, pero no todas. Ampliaremos eso en el futuro. Por ahora, si tienes múltiples directorios de trabajo, sugerimos que renombres aquellos en los que no estés operando actualmente.

Extrayendo Firmware

La extracción automatizada de firmware generalmente funciona con la mayoría de las imágenes de firmware que emplean cabeceras de firmware uImage/TRX y utilizan sistemas de archivos SquashFS o CramFS. Actualmente, extract-firmware.sh es el método preferido de extracción ya que admite más tipos de firmware que el script anterior old-extract.sh. Sin embargo, old-extract.sh todavía está incluido y funciona con muchos formatos de firmware.

El uso tanto de extract-firmware.sh como de build-firmware.sh es sencillo:

root@kitploit:~
./extract-firmware.sh firmware.bin

Por defecto, la salida de extract-firmware.sh se ubicará en el directorio 'fmk', mientras que old-extract.sh colocará los datos extraídos en el directorio de trabajo especificado.

Reconstruyendo Firmware

Qué script de construcción usar depende de qué script de extracción se utilizó. Si extrajiste una imagen de firmware con extract-firmware.sh, entonces debes usar build-firmware.sh para reconstruirla. Del mismo modo, si se usó old-extract.sh, entonces se debe invocar old-build.sh al reconstruir una imagen:

root@kitploit:~
./build-firmware.sh [-nopad] [-min]

El nuevo firmware generado por build-firmware.sh se ubicará en 'fmk/new-firmware.bin', mientras que old-build.sh generará imágenes de firmware en varios formatos diferentes y las guardará en el directorio de salida especificado.

El interruptor opcional -nopad le indicará a build-firmware.sh que NO rellene el firmware hasta su tamaño original.

El interruptor opcional -min usará el tamaño máximo de bloque squashfs de 1MB. Esto disminuirá el tamaño de la imagen de firmware a costa de recursos adicionales de CPU y RAM utilizados en el dispositivo de destino. No uses este interruptor a menos que sea necesario. Este es un tamaño de bloque muy grande para sistemas embebidos. El tamaño de bloque squashfs original del firmware se conserva al reconstruir, y se debe usar el tamaño de bloque original a menos que estés seguro de lo que haces. Un tamaño de bloque demasiado grande puede parecer funcionar bien, pero el rendimiento en tiempo de ejecución del firmware puede verse afectado en todas o algunas cargas.

Modificando Páginas Web de DD-WRT

Una característica muy única del Kit de Modificación de Firmware es su capacidad para extraer y reconstruir archivos de la GUI web de DD-WRT. Esto se automatiza mediante los scripts ddwrt-gui-extract.sh y ddwrt-gui-restore.sh.

Una vez que hayas extraído una imagen de firmware DD-WRT usando extract-firmwware.sh, puedes extraer los archivos web ejecutando:

root@kitploit:~
./ddwrt-gui-extract.sh

Esto creará un directorio llamado 'www' y extraerá los archivos web allí. Puedes modificar los archivos como desees, pero no puedes añadir ni eliminar archivos.

Cuando termines de editar, puedes reconstruir los archivos web ejecutando:

root@kitploit:~
./ddwrt-gui-rebuild.sh

Volviendo a un firmware de proveedor

A veces, con entusiasmo flashearás un firmware de terceros como Gargoyle o DD-WRT solo para descubrir que carece de las características que necesitas, no funciona tan bien como el firmware del proveedor, o tiene problemas funcionales. En esta situación, es posible que quieras volver al firmware del proveedor, ¡pero no tengas forma de hacerlo!

Así es como el Kit de Modificación de Firmware puede ayudarte a volver a un firmware de proveedor. El proceso es el siguiente:

  1. Extrae el firmware del proveedor. Luego renombra el directorio 'fmk'.
  2. Extrae el firmware de 'actualización' de terceros (por ejemplo, Gargoyle-sysupgrade)
  3. Reemplaza el rootfs y image_parts del firmware de terceros extraído con los del firmware del proveedor.
  4. Reconstruye la imagen de firmware
  5. Flashea la imagen del firmware del proveedor (ahora empaquetada como espera tu firmware de terceros).
  6. Si todo ha tenido éxito, ahora estás usando nuevamente el firmware del proveedor.

Una vez que hayas vuelto al firmware del proveedor, entonces acepta imágenes de firmware del proveedor nuevamente.

Ejemplos

Este ejemplo demuestra cómo extraer una imagen de firmware, reemplazar su demonio telnet existente por uno personalizado, y luego construir una nueva imagen de firmware:

root@kitploit:~
./extract-firmware.sh firmware.bin
cp new-telnetd fmk/rootfs/usr/sbin/telnetd
./build-firmware.sh

A continuación se muestra un ejemplo de los comandos a ejecutar para extraer una imagen de firmware DD-WRT, modificar la página de índice web y construir una nueva imagen de firmware:

root@kitploit:~
./extract-firmware.sh firmware.bin
./ddwrt-gui-extract.sh
echo "HELLO WORLD" > www/index.asp
./ddwrt-gui-rebuild.sh
./build-firmware.sh

Firmware de Linksys

Linksys tiene pies de página personalizados con comprobaciones de checksum, por lo que este script fue escrito para intentar automatizar el proceso de calcular el checksum de la imagen y cambiar el pie de página en consecuencia. La nueva imagen se escribirá en modified_checksum.img. Ejecuta esto después de modificar y build-firmware.sh.

root@kitploit:~
./linksys_footer.sh modified_firmware.img

Herramientas / Utilidades

El Kit de Modificación de Firmware consiste en una colección de herramientas útiles cuando se trabaja con imágenes de firmware embebido. Estas incluyen las que se enumeran a continuación, aunque hay MUCHAS MÁS que no se listan aquí.

Otros Enlaces

Foro

Descargar herramienta
HerramientaDescripción
AsusTRXUna versión extendida de ASUSTRX que puede construir tanto archivos TRX 'normales' como, opcionalmente, aquellos con un encabezado de estilo ASUS addver añadido. También puede, de manera única, forzar desplazamientos de segmentos en el TRX (con el interruptor -b) para compatibilidad con dispositivos Marvell ASUS como el WL-530g. Esta herramienta reemplaza tanto la herramienta trx 'normal' como addver. Las versiones actuales incluidas son: 0.90 beta.
AddPatternUtilidad para anteponer un encabezado HDR0 estilo Linksys a un TRX.
AddVerUtilidad de ASUS para añadir un encabezado a una imagen TRX que contiene información de versión. ASUSTRX incluye esta capacidad. Versión actual: sin versionar.
BinwalkEscanea imágenes de firmware en busca de tipos de archivo conocidos (encabezados de firmware, kernels comprimidos, sistemas de archivos, etc.)
CramFSCKVerificador y extractor de imágenes de sistema de archivos CRAMFS. Las versiones actuales incluidas son: 2.4x.
CramFSSwapUtilidad para intercambiar el endianness de una imagen CramFS
CRCalcUtilidad para parchear todos los encabezados uImage y TRX dentro de una imagen de firmware dada.
MkSquashFSConstruye una imagen de sistema de archivos squashfs. Las versiones actuales incluidas son: 2.1-r2, 3.0.
MkCramFSConstruye una imagen de sistema de archivos cramfs. Próximamente en la próxima versión. Las versiones actuales incluidas son: 2.4x.
MotorolaBinUtilidad que antepone encabezados de 8 bytes a imágenes TRX para dispositivos Motorola WR850G, WA840G, WE800G. Versión actual: sin versionar.
Splitter3Utilidad para escanear y extraer las partes componentes de una imagen de firmware.
Tpl-toolUtilidad para manipular imágenes en formato de proveedor TP-Link.
UnCramFSHerramienta alternativa para extraer una imagen de sistema de archivos cramfs. Usa cramfsck en su lugar siempre que sea posible, ya que parece ser más confiable. Las versiones actuales incluidas son: 0.7 (para cramfs v2.x).
UnCramFS-LZMAHerramienta alternativa para extraer imágenes de sistema de archivos cramfs comprimidas con LZMA, como las usadas por OpenRG.
UnSquashFSExtrae una imagen de sistema de archivos squashfs con zlib. Las versiones actuales incluidas son 1.0 para imágenes 3.0 y 1.0 para imágenes 2.x (mezcla propia).
UnSquashFS-LZMAExtrae una imagen de sistema de archivos squashfs con lzma. Las versiones actuales incluidas son 1.0 para imágenes 3.0 y 1.0 para imágenes 2.x (mezcla propia). Nota: No todos los parches squashfs-lzma son compatibles entre sí. Estoy trabajando en agregar soporte para todas las variaciones comunes de squashfs-lzma.
UnTRXDivide firmwares estilo TRX en sus partes componentes. También soporta encabezados antepuestos estilo addpattern HDR0. Esto fue desarrollado exclusivamente para este kit. Las versiones actuales incluidas son: 0.45.
WebDecompExtrae y restaura archivos de la GUI web de imágenes de firmware DD-WRT, permitiendo modificaciones a las páginas web.
WRTVxImgToolUtilidad para generar imágenes de firmware compatibles con VxWorks para la serie WRT54G(S) v5.