firmware-pentest
Realiza testes de penetração em firmware, seguindo um fluxo detalhado de análise e exploração.
O que ela faz
Esta ferramenta ajuda a testar a segurança de firmwares (o software interno de dispositivos como roteadores e câmeras). Ela segue um processo passo a passo para encontrar vulnerabilidades.
Quando usar
- ✓Ao analisar a segurança de um dispositivo com permissão.
- ✓Para criar um ambiente simulado de análise de firmware.
- ✓Ao investigar falhas em firmwares de dispositivos IoT.
Exemplo do que pedir para a IA
“Quero analisar a segurança do firmware deste roteador.”
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 automatiza a extração de arquivos do firmware, a simulação do dispositivo e a busca por falhas conhecidas ou novas. Ela segue um guia de 9 etapas para garantir uma análise completa.
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 sickn33/agentic-awesome-skills --skill firmware-pentestOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/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.
⚠️ USO AUTORIZADO APENAS Esta habilidade destina-se apenas a fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.
Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL exato do alvo, IP, conta ou recurso.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
Firmware / Pentest de IoT (Firmware Pentest)
Quando Usar
- Avaliando o firmware de dispositivos dentro de um engajamento autorizado.
- Construindo um ambiente emulado para análise repetível de firmware.
Escopo de Aplicação
As seguintes tarefas entram nesta habilidade:
- Obter um arquivo de firmware (.bin / .img / .trx / .chk / OTA zip), necessitando de RCE do zero.
- Auditoria de roteadores/câmeras/dispositivos IoT — Necessitando de descoberta em massa de CVEs conhecidos e vulnerabilidades não divulgadas.
- Criptografar/empacotar firmware, necessitando de encontrar rotinas de descriptografia de bootloader ou dump de hardware.
- Necessitando rodar sem tocar no hardware (emulação de sistema completo QEMU / Firmadyne / FAT).
- Fazer fuzz em serviços emulados (modo QEMU do AFL++ / boofuzz).
- Conexão de interface de hardware (UART / JTAG / dump de flash SPI).
Divisão de Tarefas com Outras Habilidades
| Cenário | O que usar |
|---|---|
| Obter firmware do zero, percorrendo todo o caminho do FSTM | Esta habilidade |
| 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/ |
| Interface de hardware (UART/JTAG/SPI) prática | Capítulo Stage 2 desta habilidade + patterns-hardware.md |
| Firmware APK / Android (incluindo boot.img) | apk-reverse/ (desempacotar boot.img primeiro e depois usar esta habilidade) |
| Migração de símbolos de firmware entre versões | binary-diff/ |
Princípios Fundamentais
固件 .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
Julgamento chave:
- Falha na extração não significa firmware criptografado; primeiro execute binwalk v2, binwalk v3, unblob, jefferson, ubi_reader.
- EMBA gera um relatório HTML com um 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 interface de rede incorreto,
/dev/nó ausente. - Payloads ARM / MIPS devem 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 imediatamente).
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, verificar 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)
Varredura com um clique do EMBA, 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)
Após a emulação, anexar depurador, capturar tráfego, executar 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 目标"
…
Perguntas frequentes
Preciso de permissão para usar esta ferramenta?
Sim, é crucial ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido é ilegal.
O que é 'firmware'?
Firmware é o software essencial que controla o hardware de um dispositivo, como um roteador, câmera ou outro aparelho eletrônico.
O que é 'penetration testing'?
É um teste de segurança simulado para encontrar vulnerabilidades em um sistema, como se um hacker estivesse tentando invadi-lo, mas de forma autorizada.
Detalhes
Descrição original do autor
Firmware penetration testing following the OWASP FSTM nine-stage flow: extraction, EMBA automation, Firmadyne/QEMU emulation, AFL++ fuzzing, and hands-on exploitation in authorized labs.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3011
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
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