firmware-pentest

Analyzes and exploits IoT firmware through extraction, emulation, and fuzzing workflows.

21|8|Updated Aug 3, 2026
One-click install
npx skills add https://github.com/chengzongcai/reverse-skill-backup --skill firmware-pentest-chengzongcai
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: firmware-pentest
Source: https://github.com/chengzongcai/reverse-skill-backup/tree/main/skills/firmware-pentest
Command: npx skills add https://github.com/chengzongcai/reverse-skill-backup --skill firmware-pentest-chengzongcai

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Security researchers receiving a raw firmware image (.bin/.img) often lack a repeatable path from binary blob to verified vulnerability. This Skill provides a complete firmware and IoT penetration testing chain following the OWASP FSTM nine-stage methodology, covering extraction, static analysis, emulation, and exploitation without guessing commands. ## Core Features & Use Cases - Full FSTM Workflow: Nine stages from information gathering through filesystem extraction (binwalk v3, unblob, jefferson, ubi_reader), EMBA automated scanning, Firmadyne/FAT emulation, and AFL++ fuzzing to final exploitation. - Encrypted Firmware Handling: Fallback paths for encrypted images including U-Boot memory dumps, SPI flash reads via flashrom, and bootloader decryption routine reverse engineering. - Architecture-Aware Exploitation: MIPS/ARM payload generation with pwntools, endianness handling (mipsel vs mipseb), and gdb-multiarch remote debugging of emulated binaries. - Use Case: Given a TP-Link router firmware file, extract the squashfs filesystem, run EMBA to identify CVEs in lighttpd and busybox, emulate the device with FAT, discover a command injection in the web CGI, and produce a working PoC with a MIPS reverse shell. ## Quick Start Analyze this firmware image router_v1.2.3.bin end-to-end: extract the filesystem, scan it with EMBA, emulate it with Firmadyne, and identify exploitable services.

Frequently Asked Questions about firmware-pentest

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I extract a filesystem from a firmware bin file?▼

Run binwalk -eM for recursive extraction first, then fall back to unblob for formats binwalk misses. Use jefferson for JFFS2, ubi_reader for UBI/UBIFS, and sasquatch for non-standard SquashFS variants common in Realtek SDK firmware.

How to emulate router firmware without physical hardware?▼

Use Firmadyne or its wrapper FAT (Firmware Analysis Toolkit) for full-system emulation with QEMU. For single binaries, qemu-mipsel-static with chroot works; match the qemu binary to the target architecture and endianness detected via the file command.

binwalk vs unblob for firmware extraction?▼

binwalk v3 is fast with concurrent extraction, while unblob covers 300+ formats and handles cases binwalk fails on. The recommended strategy is binwalk first, then unblob as fallback, then manual hexdump and entropy segmentation.

Why does emulated firmware httpd crash immediately?▼

The most common cause is missing NVRAM values that nvram_get cannot retrieve. Firmadyne ships a libnvram hook with default values; add custom entries to nvram.default for service-specific keys and rebuild the image.

Can firmware analysis tools run on Windows?▼

The firmware pentest toolchain requires Linux because EMBA, Firmadyne, and FAT are Linux-only. Use WSL2 with Ubuntu 22.04 for most scenarios, or a dedicated Kali/Ubuntu virtual machine for full compatibility.

What to do when firmware is encrypted and binwalk finds nothing?▼

Confirm encryption via entropy analysis showing ~0.99 across all segments with no magic bytes. Then obtain the bootloader via UART interrupt or SPI flash dump, reverse its decryption routine to recover the AES key, and decrypt offline with openssl.