Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
MIPS-CVE-2014-9222 — Vamos nos divertir explorando um firmware de roteador Zyxel e a MIPS Arch | Kitploit
Ferramentas/GitHubGitHub/donfanning/mips-cve-2014-9222
Segurança de Sistemas EmbarcadosAnálise de VulnerabilidadesExploraçãoEngenharia ReversaHacking de HardwareAnálise de BináriosAprendizado e EducaçãoAnálise de Firmware
GitHubdonfanning/mips-cve-2014-9222

MIPS-CVE-2014-9222

Vamos nos divertir explorando um firmware de roteador Zyxel e a MIPS Arch

Ver Repositório
223há 7 anosAinda não revisado

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

Aviso Legal

Os tutoriais são apenas para fins informativos e educacionais. Acredito que hacking ético, segurança da informação e cibersegurança devem ser temas familiares a qualquer pessoa que utilize informações digitais e computadores. Acredito que é impossível se defender de hackers sem saber como o hacking é feito.

Requisitos

$ IDA Pro +7.0 (pode usar o Radar2, já que o IDA é bastante caro)
$ Roteador executando Rompager 4.07 : há uma quantidade imensa deles, como TP-Link TD-W8951*, ZyXEL P-660R, Billion BiPAC 51**/52**
$ UART para USB

A vulnerabilidade Misfortune Cookie existe há algum tempo, mas ainda faltam análises públicas que ilustrem os detalhes técnicos da vulnerabilidade. De acordo com a Check Point, o software afetado é o servidor web embarcado RomPager da AllegroSoft. Varreduras em toda a Internet sugerem que o RomPager é provavelmente o software de servidor web mais popular do mundo em número de endpoints disponíveis. O RomPager é tipicamente embutido no firmware que acompanha o dispositivo. Essa vulnerabilidade específica foi introduzida na base de código em 2002. Além disso, os dispositivos expostos são aqueles que usam serviços RomPager com versões anteriores à 4.34 (e especificamente 4.07).

Para este tutorial, usarei um ZXHN H108L que utiliza Rompager 4.07

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="ZXHN H108L"
Content-Type: text/html
Transfer-Encoding: chunked
Server: RomPager/4.07 UPnP/1.0
EXT:

Agora vamos usar a porta serial. Primeiro, precisamos determinar a taxa de baud.

$ sudo stty -F /dev/ttyUSB0

SAÍDA :

speed 115200 baud; line = 0;
-brkint -imaxbel

device

Eu uso o minicom; você pode usar qualquer coisa, desde screen até HyperTerminal, mas prefiro este pela sua estabilidade ;)

Primeiro, você deve desativar o Controle de Fluxo por Hardware

$ sudo minicom -s
    +-----------------------------------------------------------------------+
    | A -    Dispositivo Serial      : /dev/modem                           |
    | B - Local do Arquivo de Bloqueio : /var/lock                          |
    | C -   Programa de Chamada      :                                      |
    | D -  Programa de Chamada a Cobrar :                                   |
    | E -    Bps/Par/Bits             : 115200 8N1                          |
    | F - Controle de Fluxo por Hardware : Não                              |
    | G - Controle de Fluxo por Software : Não                              |
    |                                                                       |
    |    Alterar qual configuração?                                         |
    +-----------------------------------------------------------------------+
            | Tela e teclado          |
            | Salvar configuração como dfl |
            | Salvar configuração como..    |
            | Sair                    |
            | Sair do Minicom         |
            +--------------------------+

Agora estamos prontos:

$ sudo minicom -D /dev/ttyUSB0 -b 115200
Bootbase Version: VTC_SPI1.26 |  2012/12/26 16:00:00    
RAM: Size = 8192 Kbytes
Found SPI Flash 2MiB GD25Q16 at 0xbfc00000
SPI Flash Quad Enable
Turn off Quad Mode

RAS Version: ZXHN H108LV4.0.0a_ZRQ_MA                                          
System   ID: $2.12.162.0(G94.BY.2)3.20.19.0| 2014/03/21   20140321_v006  | 2014 

Press any key to enter debug mode within 3 seconds.
..........

Para mostrar os comandos possíveis:

$ ATHE

======= Lista de Comandos de Depuração =======
AT          apenas responder OK
ATHE          exibir ajuda
ATBAx         alterar baudrate. 1:38.4k, 2:19.2k, 3:9.6k 4:57.6k 5:115.2k
ATENx,(y)     definir BootExtension Debug Flag (y=senha)
ATSE          mostrar a seed do gerador de senhas
ATTI(h,m,s)   alterar hora do sistema para hora:min:seg ou mostrar hora atual
ATDA(y,m,d)   alterar data do sistema para ano/mês/dia ou mostrar data atual
ATDS          despejar pilha RAS
ATDT          despejar Área Comum do Módulo de Inicialização
ATDUx,y       despejar conteúdo da memória do endereço x pelo comprimento y
ATRBx         exibir o valor de 8 bits do endereço x
ATRWx         exibir o valor de 16 bits do endereço x
ATRLx         exibir o valor de 32 bits do endereço x
ATGO(x)       executar programa no endereço x ou iniciar roteador
ATGR          iniciar roteador
ATGT          executar Programa de Teste de Hardware
ATRTw,x,y(,z) teste de RAM nível w, do endereço x até y (z iterações)
ATSH          despejar dados relacionados ao fabricante na ROM
ATDOx,y       baixar do endereço x pelo comprimento y para o PC via XMODEM
ATTD          baixar configuração do roteador para o PC via XMODEM
ATUR          enviar firmware do roteador para a flash ROM

< pressione qualquer tecla para continuar >

Este firmware possui um conjunto de comandos ocultos muito úteis para nossa análise dinâmica. O problema é que não podemos ver os registradores nem definir pontos de interrupção, mas, com sorte, com esses comandos ocultos teremos esses recursos. Para vê-los e usá-los, precisamos usar o ATEN. No entanto, este comando requer uma senha. O que podemos fazer agora? Vamos fazer engenharia reversa do firmware para encontrar o algoritmo do gerador de senhas.

(Análise estática) Vamos primeiro ver o arquivo do firmware:

$ binwalk ras

binwalk1

$ dd if=ras of=rom1.lzma bs=1 skip=85043 count=66696
$ dd if=ras of=rom2.lzma bs=1 skip=350259 count=3350556
$ lzma -d <rom1.lzma> rom1
$ lzma -d <rom2.lzma> rom2

Vamos ver agora a assinatura nos arquivos extraídos:

$ binwalk -Y rom1
DECIMAL       HEXADECIMAL     DESCRIÇÃO
--------------------------------------------------------------------------------
0             0x0             Código executável MIPS, 32/64 bits, big endian, pelo menos 1250 instruções válidas

string é uma ótima ferramenta para ter uma ideia do que é um arquivo binário ou o que ele contém. Vamos ver se conseguimos encontrar o algoritmo da senha:

$ strings rom1 | grep -i aten
$ strings rom2 | grep -i aten

Aparentemente, não conseguimos vê-lo porque o firmware ainda está comprimido, o que significa que devemos extraí-lo do roteador usando o modo de depuração:

$ ATDO bfc00000, 1f0000

xmodem

A primeira coisa que vem à mente é começar a procurar uma tabela de despacho. Por quê? Apenas intuição; a única alternativa é if-elif, mas seria um conjunto longo deles para verificar a validade da senha fornecida pelo usuário. E aqui está o que encontrei:

ROM:800158A0 CmdTable:       .word unk_80015C20       # DATA XREF: sub_8000E3D8+4Co
ROM:800158A0                                          # sub_8000E3D8+90o ...
ROM:800158A4                 .word sub_8000E6D0
ROM:800158A8                 .byte    0
ROM:800158A9                 .byte    0
ROM:800158AA                 .byte    0
ROM:800158AB                 .byte    0
ROM:800158AC                 .word aJustAnswerOk      # "          just answer OK"
ROM:800158B0                 .word aAthe              # "ATHE"
ROM:800158B4                 .word CMD_SHOW_HELP_ATHE
ROM:800158B8                 .byte    0
ROM:800158B9                 .byte    0
ROM:800158BA                 .byte    0
ROM:800158BB                 .byte    0
ROM:800158BC                 .word aPrintHelp         # "          print help"
ROM:800158C0                 .word aAtba              # "ATBA"
ROM:800158C4                 .word CMD_ATBA
...
ROM:800158D0                 .word aAten              # "ATEN"
ROM:800158D4                 .word CMD_ATEN

Lembre-se de que a palavra MIPS tem 4 bytes. Agora vamos ver o CMD_ATEN:

ROM:8000FF84                 lw      $a0, 8($s0)
ROM:8000FF88                 jal     sub_80013654
ROM:8000FF8C                 li      $a1, 0
ROM:8000FF90                 jal     passwd_generator

e agora: passwd_generator

Baixar ferramenta