Router / IoT firmware extraction pipeline — unpack nested filesystems, locate web server, identify backdoor credentials.
59
70%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Fix and improve this skill with Tessl
tessl review fix ./packages/decepticon/decepticon/skills/standard/reverser/firmware/SKILL.mdapt-get install -y binwalk squashfs-tools cramfsprogs
mkdir -p /workspace/fw && cd /workspace/fw
binwalk -eM /workspace/firmware.bin
find _firmware.bin.extracted -name "squashfs-root" -o -name "rootfs"ROOT=$(find _firmware.bin.extracted -type d -name "squashfs-root" | head -1)
ls -la "$ROOT/etc/"
cat "$ROOT/etc/passwd" # look for hardcoded users
cat "$ROOT/etc/shadow" # password hashes — feed to hashcat
cat "$ROOT/etc/init.d/S*" 2>/dev/null
cat "$ROOT/etc/rc.d/rc.local" 2>/dev/nullfind "$ROOT" -name "httpd" -o -name "lighttpd" -o -name "nginx" -o -name "boa"
# For each: bin_identify + bin_strings + bin_symbols_reportCGI binaries under www/cgi-bin/ are the highest-yield targets — often
one file per endpoint with direct system() calls from query params.
bin_strings(path=web_server_binary, category_filter="secret")
bin_strings(path=web_server_binary, category_filter="crypto")Also check for base64 / hex key patterns near strcmp calls (manual
audit via Ghidra — use bin_ghidra_script to seed).
Look for:
strcmp(user, "admin"))/debug, /cgi-bin/shell, .sys)bootargs.txt in extraction)For the extracted busybox / kernel / dropbear / openssl versions:
cve_by_package("busybox", "1.27.2", "OSS-Fuzz")
cve_lookup("CVE-2021-28831,CVE-2023-0464")Add:
repo node for the firmware imagefile nodes for each interesting binarycredential nodes for any hardcoded credsvulnerability nodes for each audit findingentrypoint for each cgi-bin pathe34afba
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.