Sabe aquele modem antigo que a operadora deixou para trás depois de uma troca de plano? Para muitos, é apenas lixo eletrônico. Para nós, entusiastas de tecnologia, é um desafio. Um quebra-cabeça esperando para ser resolvido.
Neste post, vamos mergulhar em um projeto fascinante com um objetivo claro: executar engenharia reversa no firmware de um modem Nokia G-1425G-B, que estava bloqueado pela operadora, e convertê-lo em um Access Point (AP) totalmente funcional para expandir a rede do meu HomeLab.
Este é um guia prático com fins puramente educacionais, documentando cada passo dessa jornada. Vamos lá?
🧪 Nosso Arsenal: Ferramentas e Ambiente de Teste
Para essa missão, preparei um ambiente controlado e um conjunto de ferramentas open-source poderosas. A preparação é metade da batalha!
- 📡 Dispositivo Alvo: Modem/ONT Nokia G-1425G-B (com firmware original da operadora).
- 💻 Sistema Host: Kali Linux rodando como uma VM no Hyper-V, meu canivete suíço para análise de segurança e redes.
- 🔧 Ferramentas de Análise e Modificação:
nmap
,netcat
,wireshark
: O trio indispensável para reconhecimento de rede, varredura de portas e análise de pacotes.binwalk
: A ferramenta mágica para dissecar firmwares, encontrar sistemas de arquivos, kernels e seções de dados compactados.firmware-mod-kit
: Essencial para descompactar, modificar e reempacotar o sistema de arquivos do firmware.- Leitor UART: Um item na manga, caso o acesso via software se mostrasse impossível. Felizmente, não foi preciso desta vez.
OpenWRT
: Usado como uma valiosa fonte de referência para entender a estrutura de firmwares de roteadores.
⚙️ Mãos à Obra: O Passo a Passo da Engenharia Reversa
Com tudo pronto, iniciamos a operação. Dividi o processo em quatro fases estratégicas.
Fase 1: Reconhecimento e Coleta de Informações
Antes de qualquer modificação, o primeiro passo é entender o terreno.
- Análise Física: Coletei todas as informações das etiquetas do dispositivo: modelo completo, versão de hardware, etc.
- Análise de Rede: Identifiquei o IP padrão (
192.168.1.1
) e verifiquei as portas e serviços disponíveis. Tentei acesso via interface Web, Telnet e SSH, mas, como esperado, tudo estava bloqueado ou com credenciais desconhecidas.
Fase 2: A Extração do Firmware (.bin)
O coração do dispositivo é o seu firmware. Para modificá-lo, eu precisava primeiro extraí-lo. Consegui obter o arquivo .bin
através de uma funcionalidade de backup um pouco escondida na interface web (uma sorte!). Se isso falhasse, o próximo passo seria a extração via conexão física UART.
Com o arquivo firmware.bin
em mãos, usei o binwalk
para investigar sua estrutura:
Bash
binwalk -e firmware.bin
O resultado foi promissor e nos deu um mapa do tesouro:
Plaintext
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
20480 0x5000 LZMA compressed data, properties: 0x6D, dictionary size: 524288 bytes
131072 0x20000 Squashfs filesystem, little endian, version 4.0
binwalk
revelou o principal: um sistema de arquivos Squashfs. Este é um sistema de arquivos somente leitura, muito comum em dispositivos embarcados. Era aqui que a mágica precisava acontecer.
Fase 3: Modificando o Coração do Sistema
Com o sistema de arquivos extraído, pude navegar por toda a estrutura de diretórios do modem. Meu alvo eram os scripts de inicialização (geralmente em /etc/init.d
) e os arquivos de configuração que continham as travas da operadora.
Após alguma análise, identifiquei os scripts responsáveis por desabilitar a interface de gerenciamento completa e forçar o modo “operadora”. A modificação foi cirúrgica:
- Descompactei o
squashfs
. - Editei os scripts para remover as flags de bloqueio.
- Habilitei o acesso de administrador e as configurações de rede avançadas.
- Recompactei o sistema de arquivos e o inseri de volta na estrutura do firmware.
Fase 4: Prova de Fogo e Testes de Rede
Com o firmware modificado pronto, era hora da verdade. Após o reflash (o momento mais tenso), o dispositivo reiniciou com sucesso.
- Isolamento: Coloquei o modem na DMZ da minha rede principal para testá-lo de forma segura.
- Verificação: Rodei um
nmap -p- -A
contra ele e, para minha alegria, novas portas de gerenciamento estavam abertas. O acesso completo à interface web foi restaurado. - Teste Funcional: Configurei o dispositivo como um simples Access Point, desativando o DHCP e conectando-o à minha LAN. Funcionou perfeitamente!
🚨 Navegando com Cuidado: Riscos e Mitigações
Brincar com firmware não é isento de riscos. Se você pretende seguir um caminho parecido, esteja ciente:
Ação | Risco Associado | Como Mitigar |
Reflash de Firmware | Brick irreversível do dispositivo. | Tenha um backup do firmware original. Se possível, use um leitor UART/JTAG como plano B para recuperação. |
Conexão UART | Curto-circuito e dano físico na placa. | Verifique 100% a pinagem (TX, RX, GND) antes de ligar. Use um multímetro. |
Firmware Modificado | Criação de brechas de segurança. | Altere todas as senhas padrão, desative serviços desnecessários (como Telnet) e não exponha o dispositivo à internet. |
Exportar para as Planilhas
🧠 Conclusão: De Tijolo a Ponto de Acesso
O que começou como um modem bloqueado, destinado ao esquecimento, agora é um Access Point funcional e um membro valioso do meu HomeLab. Este projeto foi uma prova fantástica de como, com as ferramentas certas e uma boa dose de curiosidade, podemos dar uma nova vida ao hardware.
O processo foi 100% documentado, divertido e, o mais importante, um exercício incrível de aprendizado.
E você? Já fez algum projeto de engenharia reversa parecido? Deixe sua experiência nos comentários!