Skip to content
Back to skills

Reverse Eng Firmware

BSecurity

Extract and analyze device firmware to find hardcoded secrets, backdoors, vulnerable services, and the real version behind an appliance. Load when you have a firmware image or can pull one. Signals: a .bin/.img firmware download, a router/IoT/appliance in scope, an OTA update file, a flash dump, "analyze this firmware", SquashFS/JFFS2/CramFS, U-Boot headers, hunting the code behind a CVE on FortiGate/Ivanti/etc.

  • 20 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
securitygotestinggitapi

Works with

  • api

Security analysis

B75/100
  • criticalAccesses sensitive system or user directories

Pro shows the line behind each finding and how to fix it

Scanned September 22, 2026

npx -y skills add NoorQureshi/SploitAgent --skill reverse-eng-firmware --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reverse Eng Firmware?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reverse Eng Firmware
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/noorqureshi-reverse-eng-firmware/badge)](https://www.skillsdirectory.com/skills/noorqureshi-reverse-eng-firmware)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reverse-eng-firmware
description: >
  Extract and analyze device firmware to find hardcoded secrets, backdoors, vulnerable services,
  and the real version behind an appliance. Load when you have a firmware image or can pull one.
  Signals: a .bin/.img firmware download, a router/IoT/appliance in scope, an OTA update file,
  a flash dump, "analyze this firmware", SquashFS/JFFS2/CramFS, U-Boot headers, hunting the code
  behind a CVE on FortiGate/Ivanti/etc.
domain: reverse-engineering
type: technique
stability: learning
modes: [pentest, bugbounty]
severity: high
mitre: [T1592.002, T1195.003]
cwe: [CWE-798, CWE-912, CWE-1188]
tools: [binwalk, firmware-mod-kit, unsquashfs, ghidra, emba]
schema_version: 1
---

# Firmware analysis

## When it applies
You have a firmware image — a vendor download, an OTA update, or a flash dump — for a router, IoT
device, or network appliance in scope. Offline firmware analysis is the static counterpart to
`network-appliance-attacks`: it explains *why* a device is vulnerable and often yields the exact
version, hardcoded creds, or patched-function diff behind an edge CVE.

## Why it works
Firmware ships the whole system: a packed filesystem, config, keys, and binaries. Vendors routinely
leave hardcoded credentials, private keys, debug/backdoor accounts, and old vulnerable services in
the image — all readable offline, with no traffic to the live device, once you carve the filesystem
out of the container.

## Method
1. **Recognize and carve.** `binwalk <image>` to identify the container and offsets (U-Boot header,
   compression, one or more filesystems). Extract with `binwalk -e` (or `unsquashfs` /
   firmware-mod-kit for SquashFS/JFFS2/CramFS). Encrypted images → find the bootloader/update
   routine that decrypts (often in a prior version's cleartext image).
2. **Inventory the filesystem.** Identify the OS/libc, the init scripts, the web root, and the
   service binaries. `emba` automates a first-pass audit if you want breadth fast.
3. **Hunt secrets & accounts.** `/etc/passwd`+`/etc/shadow` (crack weak hashes offline),
   hardcoded API keys/private keys/certs, backdoor accounts, and secrets in config and startup
   scripts (`CWE-798`, `CWE-912`).
4. **Pin the version and diff.** Read the real build/version from the filesystem (not a spoofable
   banner) to drive CVE applicability. Diff the pre/post-patch image of a known CVE to locate the
   vulnerable function, then analyze it with `reverse-eng-binary-triage`.
5. **Find the reachable attack surface.** Network-listening binaries (the web UI CGI, telnet/SSH,
   custom daemons) are the ones that matter live — triage those for injection/overflow and map them
   back to a remote path on the running device.

## Gotchas
- **`binwalk -e` can fail silently on nested/obscure formats** — check offsets manually and try
  `unsquashfs`/`sasquatch` for non-standard SquashFS; a partial carve looks like "nothing there".
- **Vendor keys are shared across a product line** — a key in one image often unlocks the whole
  fleet; that's the finding, but handle it responsibly per RoE.
- **Version from the filesystem, not the banner** — appliances backport patches and keep old
  strings; the image is ground truth.
- **Only analyze firmware you're authorized to** — redistribution of vendor firmware may itself be
  restricted; keep it in the git-ignored `engagements/` tree.

## Verify success
A concrete offline finding: a hardcoded credential/key, a backdoor account, the pinned build
version, or a vulnerable network-facing binary and its remote entry point — each traceable to a
file in the extracted image.

## References
`binwalk` & firmware-mod-kit docs; `emba` firmware analyzer; OWASP IoT / firmware testing guidance;
CWE-798/912.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…