Guide · Agent skill
How to use the Firmware Pentest Chain agent skill (firmware-pentest)
Updated · written with AI from the project's own documentation and checked against our catalogue data
The firmware-pentest skill is a set of instructions that teaches an AI agent a nine-stage methodology for security testing firmware, the software inside routers, cameras and smart-home devices. It is built on the OWASP FSTM framework and tells the agent which tools to use at each stage, from unpacking a .bin file to emulating it and looking for vulnerabilities. This guide explains what the skill does, how to install it, how to trigger it, and what you need before it is useful.
Quick start
- 1Confirm you are authorised. Check that the device or firmware is yours or covered by a written scope before you start. The skill treats this as a precondition.
- 2Download and unzip the skill. Download the ZIP from this page and unzip it so the firmware-pentest folder contains SKILL.md.
- 3Place it in the skills directory. Move the folder into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. In the Claude apps, upload it under Settings → Capabilities → Skills.
- 4Install the required tools. Install binwalk, unblob, EMBA and other tools you need for your task, following the install commands in the skill. Hardware tools are only needed for physical steps.
- 5Ask for a task in plain language. Describe the firmware file, your authorisation and your goal, for example extracting the root filesystem or running EMBA.
- 6Review each command before it runs. Check any command that uses sudo, downloads from the network or runs a script before allowing it to execute.
- 7Record results for reuse. Note the chip, SDK, whether binwalk succeeded and whether emulation worked, since the skill recommends saving this for similar firmware.
What the firmware-pentest skill makes the agent do
An agent skill is a folder containing a SKILL.md file of instructions that an AI agent reads when a task matches the skill's description. This one covers firmware security testing. Once installed, the agent follows a workflow that starts with a firmware file and works through information gathering, acquisition, static analysis, filesystem extraction, filesystem analysis, emulation, dynamic and runtime analysis, and exploitation.
The skill names the tools for each stage: binwalk (v2 and v3), unblob, jefferson and ubi_reader for extraction, EMBA for automated analysis, Firmadyne or FAT with QEMU for full-system emulation, and AFL++ for fuzzing. It also includes example command lines and worked scenarios, including one about recovering decryption logic from a bootloader.
Who should use it and who should not
The skill is aimed at security researchers auditing router, camera or IoT firmware they own or are authorised to test, students learning the firmware analysis workflow in CTFs or lab environments, and penetration testers preparing firmware reviews under a written scope.
It is not meant for testing devices or firmware you do not own or have written permission to assess. The skill itself says unauthorised targets are out of bounds, and the risk there is legal rather than technical. It is also not suited to normal firmware updates or device setup, and it assumes familiarity with reverse engineering, Linux and QEMU. Beginners expecting a turnkey tool will find that the referenced tools must be installed separately.
Install the firmware-pentest skill
Download the ZIP of the skill from this page and unzip it. You can then place the skill folder in one of two locations: your personal skills directory at ~/.claude/skills/, or a project's .claude/skills/ directory if you want it limited to one project.
If you use the Claude apps instead of a local setup, you can upload the skill under Settings → Capabilities → Skills.
- Personal: unzip into ~/.claude/skills/
- Per project: unzip into the project's .claude/skills/ folder
- Claude apps: Settings → Capabilities → Skills, then upload
Install the tools the skill depends on
The skill does not bundle the tools it names. The source gives Debian/Ubuntu install commands and separate install steps for the Python tools, EMBA, Firmadyne, FAT and AFL++. EMBA's own documentation lists Ubuntu 22.04, Debian 12 or Kali as the supported systems, and says it must run on Linux.
Only install what your task needs. Hardware steps such as UART, JTAG and SPI flash reads need a USB-TTL adapter, a CH341A programmer and flashrom or minipro, and these are optional for software-only work.
- binwalk v3, unblob, jefferson, ubi_reader for extraction
- EMBA, Firmadyne or FAT for analysis and emulation
- qemu-user-static and qemu-system for emulation
- AFL++, pwntools, gdb-multiarch for fuzzing and exploitation
sudo apt update && sudo apt install -y \
binwalk python3-pip qemu-user-static qemu-system-mips qemu-system-arm \
gdb-multiarch picocom flashrom build-essential libssl-dev
pip3 install --user unblob jefferson ubi_reader pwntoolsTrigger the skill with natural requests
You do not need a special command. The agent matches your request against the skill's description, so describe the task in plain terms and name the firmware file. The skill's trigger keywords include firmware, binwalk, unblob, UART, JTAG, squashfs, UBI, JFFS2, Firmadyne, QEMU, EMBA, bootloader and NVRAM.
Say what you own or are authorised to test, because the skill expects that scope and treats it as a precondition.
- Analyse router_v1.2.3.bin and extract the root filesystem, my own device
- Run EMBA on this firmware image and summarise the high-risk findings
- My camera firmware is encrypted; help me look for the bootloader decryption routine
- Emulate this firmware so I can reach the web admin interface on my lab setup
Run the core workflow on a firmware file
For an unknown image, the skill starts with non-invasive inspection before extraction. It recommends running binwalk for signature scanning, binwalk -E for an entropy graph, and strings and hexdump for banners and headers. High entropy across a segment usually means compression or encryption.
Extraction comes next. The skill's method is to try binwalk v3 first, then unblob if that fails, and to fall back to hexdump and entropy segmentation if both fail. Known formats can go straight to a specific tool: jefferson for JFFS2, ubi_reader for UBI.
binwalk firmware.bin
binwalk -E firmware.bin
binwalk -eM firmware.bin
unblob -d out/ firmware.binEmulate and analyse the firmware
The skill describes three emulation levels. User-mode emulation with qemu-*-static runs a single binary such as httpd. Full-system emulation with Firmadyne or FAT starts init, the network stack and NVRAM. Hardware-assisted or real-device work is for peripherals that cannot be emulated.
The skill's notes say that when emulation fails to start, the first suspects are missing NVRAM values, mismatched network interface names and missing /dev/ nodes. It also warns that ARM and MIPS payloads must match endianness (mipsel versus mipseb).
- User mode: qemu-mipsel-static -L squashfs-root/ squashfs-root/usr/sbin/httpd
- Full system: sudo fat.py firmware.bin
qemu-mipsel-static -L squashfs-root/ squashfs-root/usr/sbin/httpdSafety notes: scripts and network access
This package runs scripts and uses the network. The commands in the skill include sudo for EMBA, Firmadyne and FAT, and the install steps clone repositories and download tools and vulnerability databases. Read the commands before running them, and run analysis against firmware you are allowed to test.
The skill also tells the agent to read sibling files that are not included in this package, such as ../field-journal/precedent-pentest.md and ../tool-index.md. Those files are not in the download, so expect the agent to find them missing unless you supply them yourself.
Keep test networks isolated. Emulated devices expose services, and the skill's own examples include reverse shells and fuzzing targets.
Tips for better results
Give the agent a clear scope and the device details you have, such as the chip family, the SDK source and whether the firmware is encrypted. The skill's own scenarios show that these details decide which path is used.
Treat automated findings as leads. The skill warns that EMBA reports can list many CVEs that do not apply, so check version strings and real exploit conditions before reporting anything. For AFL++ in QEMU mode, the skill notes that recompiling the target with afl-clang-lto is faster when source code is available.
Dump the full flash before any physical work on a device. The skill recommends this so a failed attempt does not leave you without a copy.
- Provide the chip family, SDK and firmware source when you know them
- Verify EMBA findings against the actual version and exploit conditions
- Take a full flash dump before hardware work
What people use it for
- Extracting the root filesystem from a router firmware .bin to review its web interface code
- Running EMBA on an owned camera firmware image and triaging the HTML report
- Emulating a device's web admin service in QEMU to test it in a lab
- Looking for a hardcoded decryption routine in an encrypted firmware's bootloader
- Fuzzing an emulated service with AFL++ as part of an authorised firmware review
Frequently asked questions
Is the firmware-pentest skill free to use?
The skill is published under the MIT licence, as stated on this page. The tools it references, such as binwalk, unblob, EMBA, Firmadyne and AFL++, are separate projects that you install yourself, and each has its own licence.
What do I need before I can use the firmware-pentest skill?
You need a Linux environment for most tools, an AI agent that supports skills, and the referenced tools installed separately. The skill lists binwalk, unblob, EMBA, QEMU, AFL++ and others, and hardware tools are optional for software-only work.
Where do I put the skill folder to install it?
Unzip it into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. In the Claude apps you can upload it under Settings → Capabilities → Skills.
Why does the agent say a file is missing when I use the skill?
The skill refers to ../field-journal/precedent-pentest.md, ../tool-index.md and other sibling skills that are not included in this package. Without them, the agent may not find those references, so you will need to supply them or proceed without them.
What are alternatives to the firmware-pentest skill?
The skill itself points to other skills for narrower jobs, such as reverse-engineering for a single ELF or so file, and pentest-tools for exploitation after emulation. The tools it uses, such as EMBA or Firmadyne, can also be run directly without an agent.
Can I use it on a device I do not own?
No. The skill says unauthorised targets are out of bounds, and it describes the risk as legal rather than technical. Use it only on your own devices, in CTFs or lab setups, or on systems you have written permission to test.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits security researchers, students and penetration testers who already know Linux, reverse engineering and QEMU and who work on firmware they are authorised to test. If you are a beginner who wants a turnkey tool, or you need help with normal firmware updates or device setup, choose a simpler guide or tool instead.
Download the skill