Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
draytek-arsenal — Kit di reverse engineering e osservabilità per firewall Draytek | Kitploit
Strumenti/GitHubGitHub/infobyte/draytek-arsenal
Sicurezza Sistemi EmbeddedAnalisi delle VulnerabilitàReverse EngineeringPenetration TestingSicurezza HardwareSicurezza Hardware e IoTAnalisi di BinariAnalisi del Firmware
GitHubinfobyte/draytek-arsenal

draytek-arsenal

Kit di reverse engineering e osservabilità per firewall Draytek

Vedi Repository
5381 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Draytek Arsenal: Toolkit di osservabilità e hardening per dispositivi edge Draytek.

Gli attaccanti avanzati scelgono sempre più spesso i dispositivi edge come bersagli. Tuttavia, questi dispositivi sono controllati da software closed-source noto come firmware, spesso distribuito in un formato proprietario. Questa è una difficoltà aggiuntiva per difensori e ricercatori, che devono capire come estrarre il firmware per valutarne la sicurezza.

Non si tratta solo di uno scenario ipotetico, come abbiamo scoperto di recente quando un cliente è stato compromesso. Con apparecchiature Draytek ai margini della loro infrastruttura, la domanda naturale era: potrebbe essere questo il punto di ingresso degli attaccanti? Oltre 500.000 dispositivi Draytek sono esposti a Internet. Eppure, non esiste uno strumento funzionante per estrarne il firmware e assistere ricercatori e difensori che lavorano con questi dispositivi.

Durante la nostra valutazione, abbiamo effettuato il reverse engineering del formato firmware di Draytek, che contiene un bootloader, un kernel RTOS compresso e due filesystem. Attraverso la nostra indagine, abbiamo sviluppato strumenti per estrarre questi componenti, svelando la capacità del sistema operativo real-time di caricare moduli di codice dinamicamente. Questi moduli vengono caricati da uno dei filesystem nell'immagine del firmware all'avvio, ma possono anche essere caricati mentre il sistema è in esecuzione e memorizzati in un filesystem separato nella memoria flash. Un attaccante può sfruttare questa funzionalità per ottenere persistenza caricando un modulo che rimane attivo anche dopo un riavvio o un aggiornamento del firmware, e l'utente finale non ha un modo per rilevare questo tipo di attacco. Di conseguenza, abbiamo sviluppato il nostro modulo per verificare l'integrità dei moduli caricati in memoria, mitigando questa potenziale minaccia.

Nella nostra ricerca di un internet più sicuro, rendiamo questo set di strumenti accessibile alla comunità, consentendo osservabilità, hardening, trasparenza e ricerca sulle vulnerabilità dei dispositivi edge Draytek.

Presentazione

Questo strumento è stato sviluppato come parte di un progetto di ricerca presentato al DEFCON HHV e La Villa Hacker. Puoi trovare le slide e i video PoC qui.

Nota

Inizialmente abbiamo sviluppato questo come strumento interno. Era solo un insieme di script, ma ha mostrato un grande potenziale, spingendoci a renderlo open-source. Da allora, abbiamo lavorato per integrare questi script nel pacchetto Python che troverai in questo repo e renderli compatibili con altri modelli di dispositivi.

Per iniziare

Requisiti:

  • Python3
  • Docker (Opzionale)

Installazione

(Facoltativo) Crea e attiva l'ambiente virtuale Python:

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

Installa draytek_arsenal:

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

Testa l'installazione:

root@kitploit:~
$ python3 -m draytek_arsenal

Installazione come sviluppatore

Questa installazione sarà influenzata dalle modifiche locali al codice

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

Mips-tools

Alcuni comandi come mips_compile e mips_merge richiedono un'immagine Docker complementare per funzionare.
Se non è stata scaricata, viene mostrato questo messaggio di errore:

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

Puoi scaricare l'immagine con il seguente comando:

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

Oppure crearla con:

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

Utilizzo

draytek-arsenal è un insieme di script raccolti in un pacchetto Python. Quindi, per usarlo devi selezionare un comando:

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

Alcuni dei comandi sono:

parse_firmware

Analizza e mostra le informazioni di un firmware Draytek.

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

positional arguments:
  firmware    Path to the firmware

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

extract small business

Comando usato per estrarre e decomprimere Draytek che esegue 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

extract linux

Comando usato per estrarre e decomprimere Draytek che esegue 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

Ottieni l'hash di un modulo 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

Trova l'indirizzo in cui l'RTOS viene caricato con la prima istruzione di jump.

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

Verifica se l'RTOS è 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 un binario MIPS rilocabile (usato per i DLM).

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

Unisce due file ELF MIPS rilocabili.

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
Scarica lo strumento