Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
draytek-arsenal — Инструментарий реверс-инжиниринга и наблюдаемости для межсетевых экранов Draytek | Kitploit
Инструменты/GitHubGitHub/infobyte/draytek-arsenal
Безопасность встроенных системАнализ уязвимостейОбратная инженерияТестирование на ПроникновениеАппаратная БезопасностьБезопасность оборудования и IoTАнализ Бинарных ФайловАнализ Прошивок
GitHubinfobyte/draytek-arsenal

draytek-arsenal

Инструментарий реверс-инжиниринга и наблюдаемости для межсетевых экранов Draytek

Репозиторий
5381 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Draytek Arsenal: Набор инструментов для наблюдаемости и укрепления периметровых устройств Draytek.

Продвинутые злоумышленники всё чаще выбирают в качестве целей периметровые устройства. Однако эти устройства управляются закрытым программным обеспечением, известным как прошивка, которая часто распространяется в проприетарном формате. Это создаёт дополнительные трудности для защитников и исследователей, которым необходимо понимать, как извлечь прошивку, чтобы оценить её безопасность.

Это не просто гипотетический сценарий, как мы недавно обнаружили, когда клиент был скомпрометирован. При наличии оборудования Draytek на периметре их инфраструктуры естественным образом возник вопрос: не могло ли оно стать точкой входа злоумышленников? Более 500 тысяч устройств Draytek доступны из Интернета. И всё же не существует рабочего инструмента для извлечения их прошивки, который помог бы исследователям и защитникам, работающим с этими устройствами.

В ходе нашей оценки мы провели реверс-инжиниринг формата прошивки Draytek, которая содержит загрузчик, сжатое ядро RTOS и две файловые системы. В процессе исследования мы разработали инструменты для извлечения этих компонентов, раскрыв способность операционной системы реального времени динамически загружать модули кода. Эти модули загружаются из одной из файловых систем в образе прошивки при загрузке, но также могут загружаться во время работы системы и храниться в отдельной файловой системе во флеш-памяти. Злоумышленник может использовать эту возможность для достижения постоянства (persistence), загружая модуль, который остаётся активным даже после перезагрузки или обновления прошивки, при этом конечный пользователь не имеет возможности обнаружить такой тип атаки. В связи с этим мы разработали собственный модуль для проверки целостности загруженных модулей в памяти, снижая эту потенциальную угрозу.

В стремлении к более безопасному интернету мы делаем этот набор инструментов доступным для сообщества, обеспечивая наблюдаемость, укрепление защиты, прозрачность и исследования уязвимостей периметровых устройств Draytek.

Презентация

Этот инструмент был разработан в рамках исследовательского проекта, представленного на DEFCON HHV and La Villa Hacker. Слайды и PoC-видео можно найти здесь.

Примечание

Изначально мы разработали это как внутренний инструмент. Это был просто набор скриптов, но он показал большой потенциал, что побудило нас сделать его открытым. С тех пор мы работаем над интеграцией этих скриптов в Python-пакет, который вы найдёте в этом репозитории, и над совместимостью с другими моделями устройств.

Начало работы

Требования:

  • Python3
  • Docker (необязательно)

Установка

(Необязательно) Создайте и активируйте виртуальное окружение Python:

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

Установите draytek_arsenal:

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

Проверьте установку:

root@kitploit:~
$ python3 -m draytek_arsenal

Установка для разработчика

На эту установку будут влиять локальные изменения кода

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

Mips-tools

Некоторые команды, такие как mips_compile и mips_merge, требуют дополнительный Docker-образ для работы.
Если он не был загружен, отображается следующее сообщение об ошибке:

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

Вы можете загрузить образ следующей командой:

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

Или собрать его с помощью:

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

Использование

draytek-arsenal — это набор скриптов, собранных в Python-пакет. Чтобы использовать его, выберите команду:

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

Некоторые из команд:

parse_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

Команда для извлечения и распаковки Draytek с 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

Команда для извлечения и распаковки Draytek с 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

Получение хеша 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

Поиск адреса, по которому загружается RTOS, по первой инструкции перехода.

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

Проверка порядка байтов (little или big endian) в RTOS.

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

Компиляция MIPS-релокационного бинарного файла (используется для 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

Объединение двух 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
Скачать инструмент