Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
draytek-arsenal — Ferramenta de engenharia reversa e observabilidade para firewalls Draytek | Kitploit
Ferramentas/GitHubGitHub/infobyte/draytek-arsenal
Segurança de Sistemas EmbarcadosAnálise de VulnerabilidadesEngenharia ReversaTestes de PenetraçãoSegurança de HardwareSegurança de Hardware e IoTAnálise de BináriosAnálise de Firmware
GitHubinfobyte/draytek-arsenal

draytek-arsenal

Ferramenta de engenharia reversa e observabilidade para firewalls Draytek

Ver Repositório
538há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Draytek Arsenal: Toolkit de observabilidade e hardening para dispositivos de borda Draytek.

Atacantes avançados estão cada vez mais escolhendo dispositivos de borda como alvos. No entanto, esses dispositivos são controlados por software fechado conhecido como firmware, frequentemente distribuído em um formato proprietário. Isso representa uma dificuldade adicional para defensores e pesquisadores, que precisam entender como extrair o firmware para avaliar sua segurança.

Isso não é apenas um cenário hipotético, como descobrimos recentemente quando um cliente foi comprometido. Com equipamentos Draytek na borda de sua infraestrutura, a pergunta natural era: poderia este ser o ponto de entrada dos atacantes? Mais de 500 mil dispositivos Draytek estão expostos à Internet. No entanto, não existe nenhuma ferramenta funcional para extrair seu firmware e auxiliar pesquisadores e defensores que trabalham com esses dispositivos.

Durante nossa avaliação, fizemos engenharia reversa do formato de firmware da Draytek, que contém um bootloader, um kernel RTOS compactado e dois sistemas de arquivos. Através de nossa investigação, desenvolvemos ferramentas para extrair esses componentes, revelando a capacidade do sistema operacional de tempo real de carregar módulos de código dinamicamente. Esses módulos são carregados a partir de um dos sistemas de arquivos na imagem do firmware durante a inicialização, mas também podem ser carregados enquanto o sistema está em execução e armazenados em um sistema de arquivos separado na memória flash. Um atacante pode explorar esse recurso para obter persistência, carregando um módulo que permanece ativo mesmo após uma reinicialização ou atualização de firmware, e o usuário final não tem como detectar esse tipo de ataque. Consequentemente, desenvolvemos nosso próprio módulo para verificar a integridade dos módulos carregados na memória, mitigando essa ameaça potencial.

Em busca de uma internet mais segura, estamos disponibilizando esse conjunto de ferramentas para a comunidade, permitindo observabilidade, hardening, transparência e pesquisa de vulnerabilidades em dispositivos de borda Draytek.

Apresentação

Esta ferramenta foi desenvolvida como parte de um projeto de pesquisa que foi apresentado no DEFCON HHV e La Villa Hacker. Você pode encontrar os slides e vídeos PoC aqui.

Nota

Inicialmente desenvolvemos isso como uma ferramenta interna. Era apenas um conjunto de scripts, mas mostrou grande potencial, levando-nos a torná-la open-source. Desde então, estamos trabalhando para integrar esses scripts no pacote Python que você encontrará neste repositório e torná-los compatíveis com outros modelos de dispositivos.

Primeiros passos

Requisitos:

  • Python3
  • Docker (Opcional)

Instalação

(Opcional) Crie e ative o ambiente virtual Python:

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

Instale o draytek_arsenal:

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

Teste a instalação:

root@kitploit:~
$ python3 -m draytek_arsenal

Instalar como desenvolvedor

Esta instalação será afetada por alterações locais no código

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

Mips-tools

Alguns comandos como mips_compile e mips_merge precisam de uma imagem Docker complementar para funcionar.
Se ela não tiver sido baixada, esta mensagem de erro será exibida:

root@kitploit:~
[x] Imagem 'draytek-arsenal' não encontrada. Por favor, construa ou baixe a imagem.

Você pode baixar a imagem com o seguinte comando:

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

Ou construí-la com:

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

Uso

draytek-arsenal é um conjunto de scripts reunidos em um pacote Python. Portanto, para usá-lo, você deve selecionar um comando:

root@kitploit:~
uso: draytek-arsenal [-h] [comando] args..

Alguns dos comandos são:

parse_firmware

Analisa e exibe informações de um firmware Draytek.

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

argumentos posicionais:
  firmware    Caminho para o firmware

opções:
  -h, --help  mostra esta mensagem de ajuda e sai

extract small business

Comando usado para extrair e descomprimir Draytek rodando RTOS.

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

argumentos posicionais:
  firmware              Caminho para o firmware

opções:
  -h, --help            mostra esta mensagem de ajuda e sai
  --rtos RTOS, -r RTOS  Caminho do arquivo onde extrair e descomprimir o RTOS
  --fs FS, -f FS        Caminho do diretório onde extrair e descomprimir o Sistema
                        de Arquivos
  --dlm DLM, -d DLM     Caminho do diretório onde extrair e descomprimir os DLMs
  --dlm-key1 DLM_KEY1   Primeira chave usada para descriptografar DLMs
  --dlm-key2 DLM_KEY2   Primeira chave usada para descriptografar DLMs

extract linux

Comando usado para extrair e descomprimir Draytek rodando Linux

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

argumentos posicionais:
  firmware        Caminho para o firmware

opções:
  -h, --help      mostra esta mensagem de ajuda e sai
  --fs FS, -f FS  Caminho do diretório onde extrair e descomprimir o Sistema de Arquivos
  --key KEY       Chave usada para descriptografar

dlm_hash

Obtém o hash de um módulo DLM.

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

argumentos posicionais:
  dlm         Caminho para o dlm

opções:
  -h, --help  mostra esta mensagem de ajuda e sai
  -c          Imprime como código .c

find_loading_addr

Encontra o endereço onde o RTOS é carregado com a primeira instrução de jump.

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

argumentos posicionais:
  rtos        Caminho para o rtos

opções:
  -h, --help  mostra esta mensagem de ajuda e sai

find_endianness

Verifica se o RTOS é little ou big endian.

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

argumentos posicionais:
  rtos        Caminho para o rtos

opções:
  -h, --help  mostra esta mensagem de ajuda e sai

mips_compile

Compila binário MIPS relocável (usado para DLMs).

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

argumentos posicionais:
  output      Arquivo de saída
  input       Arquivo de saída

opções:
  -h, --help  mostra esta mensagem de ajuda e sai

mips_merge

Mescla dois arquivos ELF MIPS relocáveis.

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

argumentos posicionais:
  first_input   Primeiro arquivo de entrada
  second_input  Segundo arquivo de entrada
  output        Arquivo de saída

opções:
  -h, --help    mostra esta mensagem de ajuda e sai
Baixar ferramenta