Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
draytek-arsenal — Reverse-Engineering- und Observability-Toolkit für Draytek-Firewalls | Kitploit
Tools/GitHubGitHub/infobyte/draytek-arsenal
Embedded-System-SicherheitSchwachstellenanalyseReverse EngineeringPenetrationstestsHardware-SicherheitHardware- & IoT-SicherheitBinäranalyseFirmware-Analyse
GitHubinfobyte/draytek-arsenal

draytek-arsenal

Reverse-Engineering- und Observability-Toolkit für Draytek-Firewalls

Repository anzeigen
538vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Draytek Arsenal: Toolkit für Beobachtbarkeit und Härtung von Draytek-Edge-Geräten.

Fortgeschrittene Angreifer wählen zunehmend Edge-Geräte als Angriffsziele. Allerdings werden diese Geräte von Closed-Source-Software gesteuert, die als Firmware bekannt ist und oft in einem proprietären Format ausgeliefert wird. Dies stellt eine zusätzliche Hürde für Verteidiger und Forscher dar, die verstehen müssen, wie man Firmware extrahiert, um deren Sicherheit zu bewerten.

Das ist mehr als nur ein hypothetisches Szenario, wie wir kürzlich festgestellt haben, als ein Kunde kompromittiert wurde. Mit Draytek-Geräten am Rand ihrer Infrastruktur war die naheliegende Frage: Könnte dies der Einstiegspunkt der Angreifer sein? Über 500.000 Draytek-Geräte sind dem Internet ausgesetzt. Dennoch gibt es kein funktionierendes Tool, um ihre Firmware zu extrahieren und Forschern und Verteidigern zu helfen, die mit diesen Geräten arbeiten.

Bei unserer Untersuchung haben wir das Firmware-Format von Draytek per Reverse Engineering analysiert, das einen Bootloader, einen komprimierten RTOS-Kernel und zwei Dateisysteme enthält. Durch unsere Untersuchung entwickelten wir Werkzeuge, um diese Komponenten zu extrahieren, und deckten dabei die Fähigkeit des Echtzeitbetriebssystems auf, Codemodule dynamisch zu laden. Diese Module werden beim Booten aus einem der Dateisysteme im Firmware-Image geladen, können aber auch während des laufenden Betriebs geladen und in einem separaten Dateisystem im Flash-Speicher abgelegt werden. Ein Angreifer kann diese Funktion ausnutzen, um Persistenz zu erlangen, indem er ein Modul lädt, das auch nach einem Neustart oder Firmware-Upgrade aktiv bleibt. Der Endbenutzer hat keine Möglichkeit, diese Art von Angriff zu erkennen. Daher haben wir ein eigenes Modul entwickelt, das die Integrität geladener Module im Speicher prüft und diese potenzielle Bedrohung entschärft.

Im Streben nach einem sichereren Internet stellen wir diese Tool-Sammlung der Community zur Verfügung, um Beobachtbarkeit, Härtung, Transparenz und Schwachstellenforschung an Draytek-Edge-Geräten zu ermöglichen.

Präsentation

Dieses Tool wurde im Rahmen eines Forschungsprojekts entwickelt, das auf DEFCON HHV and La Villa Hacker vorgestellt wurde. Die Folien und PoC-Videos findest du hier.

Hinweis

Wir haben dies ursprünglich als internes Tool entwickelt. Es war nur eine Sammlung von Skripten, zeigte aber großes Potenzial, weshalb wir es als Open Source veröffentlicht haben. Seitdem arbeiten wir daran, diese Skripte in das Python-Paket zu integrieren, das du in diesem Repo findest, und sie mit anderen Gerätemodellen kompatibel zu machen.

Erste Schritte

Voraussetzungen:

  • Python3
  • Docker (optional)

Installation

(Optional) Virtuelle Python-Umgebung erstellen und aktivieren:

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

draytek_arsenal installieren:

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

Installation testen:

root@kitploit:~
$ python3 -m draytek_arsenal

Als Entwickler installieren

Bei dieser Installation werden lokale Codeänderungen berücksichtigt.

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

MIPS-Tools

Einige Befehle wie mips_compile und mips_merge benötigen ein ergänzendes Docker-Image, um zu funktionieren.
Wenn das Image nicht heruntergeladen wurde, erscheint folgende Fehlermeldung:

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

Das Image kann mit dem folgenden Befehl heruntergeladen werden:

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

Oder du kannst es mit folgendem Befehl erstellen:

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

Verwendung

draytek-arsenal ist eine Sammlung von Skripten in einem Python-Paket. Zur Verwendung musst du einen Befehl auswählen:

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

Einige der Befehle sind:

parse_firmware

Parst und zeigt Informationen einer Draytec-Firmware an.

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

positional arguments:
  firmware    Path to the firmware

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

Kleine Unternehmen extrahieren

Befehl zum Extrahieren und Dekomprimieren von Draytek-Geräten, die ein RTOS ausführen.

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

Linux extrahieren

Befehl zum Extrahieren und Dekomprimieren von Draytek-Geräten, die Linux ausführen.

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

Ermittelt den Hash eines DLM-Moduls.

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

Ermittelt die Adresse, an der das RTOS mit der ersten Sprunganweisung geladen wird.

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

Prüft, ob das RTOS Little- oder Big-Endian ist.

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

Kompiliert eine MIPS-relozierbare Binärdatei (wird für DLMs verwendet).

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

Führt zwei relozierbare ELF-MIPS-Dateien zusammen.

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
Tool herunterladen