Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
draytek-arsenal — Kit d'ingénierie inverse et d'observabilité pour les pare-feu Draytek | Kitploit
Outils/GitHubGitHub/infobyte/draytek-arsenal
Sécurité des Systèmes EmbarquésAnalyse des VulnérabilitésRétro-ingénierieTests d'IntrusionSécurité MatérielleSécurité Matériel et IoTAnalyse de BinairesAnalyse de Micrologiciel
GitHubinfobyte/draytek-arsenal

draytek-arsenal

Kit d'ingénierie inverse et d'observabilité pour les pare-feu Draytek

Voir le dépôt
538il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Draytek Arsenal : observabilité et durcissement des équipements de périphérie Draytek.

Les attaquants avancés choisissent de plus en plus les équipements de périphérie comme cibles. Cependant, ces appareils sont contrôlés par un logiciel fermé appelé firmware, souvent distribué dans un format propriétaire. Cela représente une difficulté supplémentaire pour les défenseurs et les chercheurs, qui doivent comprendre comment extraire le firmware afin d'évaluer sa sécurité.

Il ne s'agit pas seulement d'un scénario hypothétique, comme nous l'avons découvert récemment lorsqu'un client a été compromis. Avec des équipements Draytek en périphérie de leur infrastructure, la question naturelle était : cela pouvait-il être le point d'entrée des attaquants ? Plus de 500 000 équipements Draytek sont exposés à Internet. Pourtant, aucun outil fonctionnel n'existe pour extraire leur firmware et aider les chercheurs et les défenseurs qui travaillent sur ces appareils.

Au cours de notre évaluation, nous avons fait de la rétro-ingénierie sur le format de firmware de Draytek, qui contient un bootloader, un noyau RTOS compressé et deux systèmes de fichiers. Grâce à nos recherches, nous avons développé des outils pour extraire ces composants, révélant la capacité du système d'exploitation temps réel à charger dynamiquement des modules de code. Ces modules sont chargés depuis l'un des systèmes de fichiers de l'image du firmware au démarrage, mais ils peuvent également être chargés pendant le fonctionnement du système et stockés dans un système de fichiers séparé en mémoire flash. Un attaquant peut exploiter cette fonctionnalité pour assurer sa persistance en chargeant un module qui reste actif même après un redémarrage ou une mise à niveau du firmware, et l'utilisateur final n'a aucun moyen de détecter ce type d'attaque. Par conséquent, nous avons développé notre propre module pour vérifier l'intégrité des modules chargés en mémoire, atténuant ainsi cette menace potentielle.

Dans notre quête d'un Internet plus sécurisé, nous mettons cet ensemble d'outils à la disposition de la communauté, permettant l'observabilité, le durcissement, la transparence et la recherche de vulnérabilités sur les équipements de périphérie Draytek.

Présentation

Cet outil a été développé dans le cadre d'un projet de recherche présenté à DEFCON HHV et La Villa Hacker. Vous trouverez les diapositives et les vidéos de PoC ici.

Remarque

Au départ, nous avons développé cet outil en interne. Ce n'était qu'un ensemble de scripts, mais il a montré un fort potentiel, ce qui nous a poussés à le rendre open-source. Depuis, nous travaillons à intégrer ces scripts dans le package Python que vous trouverez dans ce dépôt et à les rendre compatibles avec d'autres modèles d'appareils.

Pour commencer

Prérequis :

  • Python3
  • Docker (facultatif)

Installation

(Facultatif) Créez et activez un environnement virtuel Python :

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

Installez draytek_arsenal :

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

Testez l'installation :

root@kitploit:~
$ python3 -m draytek_arsenal

Installation en mode développeur

Cette installation sera affectée par les modifications locales du code.

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

Mips-tools

Certaines commandes comme mips_compile et mips_merge nécessitent une image Docker complémentaire pour fonctionner.
Si elle n'a pas été téléchargée, ce message d'erreur s'affiche :

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

Vous pouvez télécharger l'image avec la commande suivante :

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

Ou la construire avec :

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

Utilisation

draytek-arsenal est un ensemble de scripts regroupés dans un package Python. Pour l'utiliser, vous devez donc sélectionner une commande :

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

Voici quelques-unes des commandes :

parse_firmware

Analyse et affiche les informations d'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

Extraction petites entreprises

Commande utilisée pour extraire et décompresser les Draytek exécutant 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

Extraction Linux

Commande utilisée pour extraire et décompresser les Draytek exécutant 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

Obtient le hachage d'un module 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

Trouve l'adresse à laquelle le RTOS est chargé avec la première instruction de saut.

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

Vérifie si le RTOS est en little ou 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

Compile un binaire MIPS relocalisable (utilisé pour les 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

Fusionne deux fichiers ELF MIPS relocalisables.

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
Télécharger l’outil