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
draytek-arsenal — Kit de herramientas de ingeniería inversa y observabilidad para firewalls Draytek | Kitploit
Herramientas/GitHubGitHub/infobyte/draytek-arsenal
Seguridad de Sistemas EmbebidosAnálisis de VulnerabilidadesIngeniería InversaPruebas de PenetraciónSeguridad de HardwareSeguridad de Hardware e IoTAnálisis de BinariosAnálisis de Firmware
GitHubinfobyte/draytek-arsenal

draytek-arsenal

Kit de herramientas de ingeniería inversa y observabilidad para firewalls Draytek

Ver Repositorio
53810hace 1 añoRevisado 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

Draytek Arsenal: kit de observabilidad y endurecimiento para dispositivos perimetrales Draytek.

Los atacantes avanzados eligen cada vez más los dispositivos perimetrales como objetivos. Sin embargo, estos dispositivos están controlados por software de código cerrado conocido como firmware, a menudo distribuido en un formato propietario. Esto supone una dificultad adicional para defensores e investigadores, que deben comprender cómo extraer el firmware para evaluar su seguridad.

Esto es más que un simple escenario hipotético, como descubrimos recientemente cuando un cliente fue comprometido. Con equipos Draytek en el perímetro de su infraestructura, la pregunta natural era: ¿Podría ser este el punto de entrada de los atacantes? Más de 500 000 dispositivos Draytek están expuestos a Internet. Sin embargo, no existe ninguna herramienta funcional para extraer su firmware y ayudar a investigadores y defensores que trabajan con estos dispositivos.

Durante nuestra evaluación, aplicamos ingeniería inversa al formato de firmware de Draytek, que contiene un cargador de arranque, un kernel RTOS comprimido y dos sistemas de archivos. A través de nuestra investigación, desarrollamos herramientas para extraer estos componentes, revelando la capacidad del sistema operativo en tiempo real para cargar módulos de código dinámicamente. Estos módulos se cargan desde uno de los sistemas de archivos de la imagen de firmware durante el arranque, pero también pueden cargarse mientras el sistema está en ejecución y almacenarse en un sistema de archivos separado en la memoria flash. Un atacante puede explotar esta característica para lograr persistencia cargando un módulo que permanece activo incluso después de un reinicio o una actualización de firmware, y el usuario final no tiene forma de detectar este tipo de ataque. En consecuencia, desarrollamos nuestro propio módulo para verificar la integridad de los módulos cargados en memoria, mitigando esta amenaza potencial.

En nuestra búsqueda de un internet más seguro, ponemos este conjunto de herramientas a disposición de la comunidad, permitiendo la observabilidad, el endurecimiento, la transparencia y la investigación de vulnerabilidades en dispositivos perimetrales Draytek.

Presentación

Esta herramienta fue desarrollada como parte de un proyecto de investigación que se presentó en DEFCON HHV y La Villa Hacker. Puedes encontrar las diapositivas y los videos de PoC aquí.

Nota

Inicialmente desarrollamos esto como una herramienta interna. Era solo un conjunto de scripts, pero mostró un gran potencial, lo que nos impulsó a hacerla de código abierto. Desde entonces, hemos estado trabajando para integrar estos scripts en el paquete de Python que encontrarás en este repositorio y hacerlos compatibles con otros modelos de dispositivos.

Primeros pasos

Requisitos:

  • Python3
  • Docker (Opcional)

Instalación

(Opcional) Crear y activar el entorno virtual de Python:

root@kitploit:~
$ python3 -m virtualenv .venv
$ source .venv/bin.activate

Instalar draytek_arsenal:

root@kitploit:~
$ cd draytek_arsenal
$ python3 -m pip install -r requirements.txt
$ python3 -m pip install .

Probar la instalación:

root@kitploit:~
$ python3 -m draytek_arsenal

Instalar como desarrollador

Esta instalación se verá afectada por los cambios locales en el código.

root@kitploit:~
$ python3 -m pip install -e .

Mips-tools

Algunos comandos, como mips_compile y mips_merge, necesitan una imagen Docker complementaria para funcionar.
Si no se ha descargado, se muestra este mensaje de error:

root@kitploit:~
[x] Image 'draytek-arsenal' not found. Please build or download the image.

Puedes descargar la imagen con el siguiente comando:

root@kitploit:~
$ docker pull ghcr.io/infobyte/draytek-arsenal:main

O construirla con:

root@kitploit:~
$ docker build -t draytek-arsenal ./mips-tools

Uso

draytek-arsenal es un conjunto de scripts recopilados en un paquete de Python. Por lo tanto, para usarlo debes seleccionar un comando:

root@kitploit:~
usage: draytek-arsenal [-h] [command] args..

Algunos de los comandos son:

parse_firmware

Analiza y muestra información de un firmware Draytec.

root@kitploit:~
usage: parse_firmware [-h] firmware

positional arguments:
  firmware    Path to the firmware

options:
  -h, --help  show this help message and exit

extracción de pequeñas empresas

Comando utilizado para extraer y descomprimir equipos Draytek que ejecutan un RTOS.

root@kitploit:~
usage: extract_rtos [-h] [--rtos RTOS] [--fs FS] [--dlm DLM] [--dlm-key1 DLM_KEY1]
                  [--dlm-key2 DLM_KEY2]
                  firmware

positional arguments:
  firmware              Path to the firmware

options:
  -h, --help            show this help message and exit
  --rtos RTOS, -r RTOS  File path where to extract and decompress the RTOS
  --fs FS, -f FS        Directory path where to extract and decompress the File
                        System
  --dlm DLM, -d DLM     Directory path where to extract and decompress the DLMs
  --dlm-key1 DLM_KEY1   First key used to decrypt DLMs
  --dlm-key2 DLM_KEY2   First key used to decrypt DLMs

extracción de linux

Comando utilizado para extraer y descomprimir equipos Draytek que ejecutan linux.

root@kitploit:~
usage: extract_linux [-h] [--fs FS] --key KEY firmware

positional arguments:
  firmware        Path to the firmware

options:
  -h, --help      show this help message and exit
  --fs FS, -f FS  Directory path where to extract and decompress the File System
  --key KEY       Key used to decrypt

dlm_hash

Obtén el hash de un módulo DLM.

root@kitploit:~
usage: dlm_hash [-h] [-c] dlm

positional arguments:
  dlm         Path to the dlm

options:
  -h, --help  show this help message and exit
  -c          Print as .c code

find_loading_addr

Encuentra la dirección donde se carga el RTOS con la primera instrucción de salto.

root@kitploit:~
usage: find_loading_addr [-h] rtos

positional arguments:
  rtos        Path to the rtos

options:
  -h, --help  show this help message and exit

find_endianness

Comprueba si el RTOS es little o big endian.

root@kitploit:~
usage: find_endianness [-h] rtos

positional arguments:
  rtos        Path to the rtos

options:
  -h, --help  show this help message and exit

mips_compile

Compila binarios reubicables MIPS (utilizados para DLMs).

root@kitploit:~
usage: mips_compile [-h] output [input ...]

positional arguments:
  output      Output file
  input       Output file

options:
  -h, --help  show this help message and exit

mips_merge

Combina dos archivos reubicables ELF MIPS.

root@kitploit:~
usage: mips_merge [-h] first_input second_input output

positional arguments:
  first_input   First input file
  second_input  Second input file
  output        Output file

options:
  -h, --help    show this help message and exit
Descargar herramienta