Pular para o conteúdo
Skillpedia
Segurança48 mil · #3011

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/firmware-pentest/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/firmware-pentest/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-pentest

Ou 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.md
Conteú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:

  1. Peça ao usuário para declarar o URL exato do alvo, IP, conta ou recurso.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. 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:

  1. Obter um arquivo de firmware (.bin / .img / .trx / .chk / OTA zip), necessitando de RCE do zero.
  2. Auditoria de roteadores/câmeras/dispositivos IoT — Necessitando de descoberta em massa de CVEs conhecidos e vulnerabilidades não divulgadas.
  3. Criptografar/empacotar firmware, necessitando de encontrar rotinas de descriptografia de bootloader ou dump de hardware.
  4. Necessitando rodar sem tocar no hardware (emulação de sistema completo QEMU / Firmadyne / FAT).
  5. Fazer fuzz em serviços emulados (modo QEMU do AFL++ / boofuzz).
  6. 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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3011
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas