performing-firmware-malware-analysis
Analyzes firmware images for embedded malware, backdoors, and unauthorized modifications targeting routers, IoT devices, UEFI/BIOS, and embedded systems. Covers firmware extraction, filesystem analysis, binary reverse engineering, and bootkit detection. Activates for requests involving firmware security analysis, IoT malware investigation, UEFI rootkit detection, or embedded device compromise assessment.
Works with
0
total installs
0
this week
8.6K
GitHub stars
0
upvotes
Install Skill
Run in your terminal
0
installs
0
this week
8.6K
stars
Installation Guide
How to use performing-firmware-malware-analysis on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your machine
- ›Node.js 16+ with npm — verify with
node --version - ›Active project directory where you want to add
performing-firmware-malware-analysis
Run the install command
Execute the skills CLI command in your project's root directory to begin installation:
Fetches performing-firmware-malware-analysis from mukul975/Anthropic-Cybersecurity-Skills and configures it for Cursor.
Select Cursor when prompted
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate performing-firmware-malware-analysis. Access via /performing-firmware-malware-analysis in your agent's command palette.
Security Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Documentation
| name | performing-firmware-malware-analysis |
| description | 'Analyzes firmware images for embedded malware, backdoors, and unauthorized modifications targeting routers, IoT devices, UEFI/BIOS, and embedded systems. Covers firmware extraction, filesystem analysis, binary reverse engineering, and bootkit detection. Activates for requests involving firmware security analysis, IoT malware investigation, UEFI rootkit detection, or embedded device compromise assessment. ' |
| domain | cybersecurity |
| subdomain | malware-analysis |
| tags | - malware - firmware - IoT - UEFI - embedded-security |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
| nist_csf | - DE.AE-02 - RS.AN-03 - ID.RA-01 - DE.CM-01 |
Performing Firmware Malware Analysis
When to Use
- A compromised IoT device or router needs firmware analysis to identify implanted backdoors
- Investigating UEFI/BIOS rootkits that persist across OS reinstallations
- Analyzing firmware updates for supply chain compromise or malicious modifications
- Extracting and examining embedded Linux filesystems from IoT device firmware images
- Verifying firmware integrity after a suspected hardware or firmware-level compromise
Do not use for standard operating system malware; use PE/ELF analysis tools for OS-level malware on conventional systems.
Prerequisites
- binwalk installed for firmware image analysis and extraction (
pip install binwalk) - Ghidra with ARM/MIPS architecture support for embedded binary reverse engineering
- UEFI Tool (UEFITool) for UEFI firmware parsing and analysis
- Firmware Analysis Toolkit (FAT) or EMBA for automated firmware analysis
- QEMU for emulating extracted firmware filesystems
- Cross-compilation toolchains for ARM, MIPS, and other embedded architectures
Workflow
Step 1: Extract and Identify Firmware Components
Analyze the firmware image structure and extract filesystems:
# Identify embedded filesystems and compressed data
binwalk firmware.bin
# Extract all identified components
binwalk -e firmware.bin
# Recursive extraction with signature scanning
binwalk -eM firmware.bin
# Output typically includes:
# - Bootloader (U-Boot, GRUB, custom)
# - Kernel image (Linux, RTOS)
# - Root filesystem (SquashFS, JFFS2, CramFS, ext4)
# - Configuration data
# - Digital signatures or checksums
# Entropy analysis to find encrypted or compressed regions
binwalk -E firmware.bin
# Identify specific filesystem types
file _firmware.bin.extracted/*
# For SquashFS filesystems
unsquashfs _firmware.bin.extracted/squashfs-root.img
ls squashfs-root/
Step 2: Analyze the Extracted Filesystem
Search for malicious modifications in the firmware filesystem:
# Directory structure analysis
find squashfs-root/ -type f | head -50
# Search for suspicious files
find squashfs-root/ -name "*.sh" -exec ls -la {} \;
find squashfs-root/ -perm -4000 -type f # SUID binaries
find squashfs-root/ -name "*.so" -newer squashfs-root/bin/busybox # Modified libraries
# Check startup scripts for backdoors
cat squashfs-root/etc/init.d/rcS
cat squashfs-root/etc/inittab
ls -la squashfs-root/etc/rc.d/
# Search for hardcoded credentials
grep -rn "password\|passwd\|secret\|key\|token" squashfs-root/etc/ 2>/dev/null
grep -rn "root:" squashfs-root/etc/shadow 2>/dev/null
# Check for unauthorized SSH keys
find squashfs-root/ -name "authorized_keys" -exec cat {} \;
# Network configuration backdoors
cat squashfs-root/etc/hosts
grep -rn "iptables\|nc\|netcat\|ncat" squashfs-root/etc/ squashfs-root/usr/bin/
# Check for reverse shells in cron
find squashfs-root/ -name "crontab" -o -name "cron*" | xargs cat 2>/dev/null
# Identify all ELF binaries for analysis
find squashfs-root/ -type f -exec file {} \; | grep ELF
Step 3: Reverse Engineer Suspicious Binaries
Analyze extracted binaries that may be backdoors:
# Identify architecture and format
file squashfs-root/usr/bin/suspicious_binary
# Extract strings for IOC discovery
strings squashfs-root/usr/bin/suspicious_binary | grep -iE "http|ip|port|shell|connect|exec"
# Cross-reference against known firmware binaries
# Compare SHA-256 hashes with known-good firmware
sha256sum squashfs-root/usr/bin/* > current_hashes.txt
# diff against baseline: diff baseline_hashes.txt current_hashes.txt
# Import into Ghidra for disassembly (select correct architecture)
# ARM: ARM/AARCH64 (Little Endian for most IoT devices)
# MIPS: MIPS/MIPS64 (Big or Little Endian depending on device)
# x86: For UEFI modules
# Analyze with radare2 for quick triage
r2 -A squashfs-root/usr/bin/suspicious_binary
# Commands: afl (function list), pdf @main (disassemble main), iz (strings)
Step 4: UEFI/BIOS Firmware Analysis
Analyze system firmware for bootkits and implants:
# Extract UEFI firmware volumes with UEFITool
# GUI: UEFITool -> File -> Open -> Select firmware.rom
# CLI: UEFIExtract firmware.rom
# Analyze UEFI firmware with chipsec (requires hardware access)
python chipsec_main.py -m common.bios_wp # BIOS write protection
python chipsec_main.py -m common.spi_lock # SPI flash lock
python chipsec_main.py -m common.secureboot # Secure Boot status
python chipsec_main.py -m common.uefi.s3bootscript # S3 resume script
# Dump UEFI firmware from live system
python chipsec_util.py spi dump firmware_dump.rom
# Compare with known-good firmware
sha256sum firmware_dump.rom
# Compare against vendor-provided firmware hash
# Scan for known UEFI malware signatures
yara -r uefi_malware_rules.yar firmware_dump.rom
Known UEFI Malware Families:
━━━━━━━━━━━━━━━━━━━━━━━━━━
LoJax: First in-the-wild UEFI rootkit (APT28/Fancy Bear)
Modifies SPI flash to drop persistence agent
MosaicRegressor: Modular UEFI framework dropping multiple payloads
CosmicStrand: UEFI firmware rootkit modifying kernel during boot
BlackLotus: UEFI bootkit bypassing Secure Boot on Windows 11
ESPecter: ESP (EFI System Partition) bootkit modifying boot manager
MoonBounce: SPI flash implant modifying CORE_DXE module
FinSpy UEFI: Surveillance software with UEFI persistence
Step 5: Emulate Firmware for Dynamic Analysis
Run extracted firmware in an emulated environment:
# Emulate ARM-based IoT firmware with QEMU
# Mount the extracted filesystem
sudo mount -o loop squashfs-root.img /mnt/firmware
# Chroot into the firmware with QEMU user-mode emulation
sudo cp /usr/bin/qemu-arm-static /mnt/firmware/usr/bin/
sudo chroot /mnt/firmware /bin/sh
# Or use firmadyne for automated firmware emulation
# https://github.com/firmadyne/firmadyne
python3 fat.py firmware.bin
# Network service analysis within emulated firmware
# Scan for open ports and services
nmap -sV localhost -p 1-65535
# Monitor network traffic from emulated firmware
tcpdump -i tap0 -w firmware_traffic.pcap
Step 6: Document Firmware Analysis
Compile comprehensive firmware analysis findings:
Analysis documentation should cover:
- Firmware image metadata (vendor, model, version, build date)
- Extraction results (filesystem type, kernel version, architecture)
- Modified files compared to known-good baseline
- Backdoor binaries discovered with reverse engineering findings
- Hardcoded credentials and unauthorized access mechanisms
- Network services and their security posture
- UEFI/BIOS integrity verification results
- Extracted IOCs (IPs, domains, file hashes, SSH keys)
- Remediation recommendations (reflash, replace, update)
Key Concepts
| Term | Definition |
|---|---|
| Firmware | Software permanently stored in device hardware (flash memory, EEPROM) controlling low-level device operations and boot process |
| UEFI (Unified Extensible Firmware Interface) | Modern system firmware replacing legacy BIOS; provides boot services, runtime services, and a modular driver architecture |
| SPI Flash | Serial Peripheral Interface flash memory chip storing UEFI/BIOS firmware; can be read and modified for persistence |
| Secure Boot | UEFI feature verifying digital signatures of boot components to prevent unauthorized code execution during startup |
| SquashFS | Read-only compressed filesystem commonly used in embedded Linux firmware for space-efficient storage |
| Bootkit | Malware infecting the boot process (MBR, VBR, UEFI) to load before the operating system and evade OS-level security |
| Firmware Emulation | Running extracted firmware in a virtual environment (QEMU, firmadyne) to analyze behavior without physical hardware |
Tools & Systems
- binwalk: Firmware analysis tool for scanning, extracting, and analyzing embedded file systems and compressed data in firmware images
- UEFITool: Open-source UEFI firmware image parser and extractor for analyzing UEFI volumes, modules, and drivers
- chipsec: Intel's open-source framework for platform security assessment including SPI flash, Secure Boot, and UEFI analysis
- firmadyne: Automated firmware analysis and emulation platform for Linux-based embedded devices
- Ghidra: NSA's reverse engineering tool with ARM, MIPS, and other embedded architecture support for firmware binary analysis
Common Scenarios
Scenario: Investigating a Compromised Router with Persistent Backdoor
Context: A network router continues to exhibit suspicious behavior (unexpected DNS resolutions, traffic to unknown IPs) even after factory resets. Firmware-level compromise is suspected.
Approach:
- Dump the firmware from the router using JTAG/UART debug interface or vendor management tools
- Extract the filesystem with binwalk and identify the Linux distribution and kernel version
- Compare file hashes against known-good firmware image from the vendor
- Search startup scripts (rcS, inittab, crontab) for backdoor entries
- Analyze any modified or new binaries with Ghidra (ARM/MIPS architecture)
- Check for hardcoded credentials, unauthorized SSH keys, and reverse shell scripts
- Emulate the firmware to observe network behavior and identify C2 communication
Pitfalls:
- Not dumping firmware from the actual device (downloading from vendor site gives clean version, not the compromised one)
- Ignoring modified shared libraries (.so files) that may hook system functions
- Missing firmware modifications stored outside the main filesystem (bootloader, configuration partitions)
- Not checking both the primary and backup firmware partitions (some devices have dual-bank flash)
Output Format
FIRMWARE MALWARE ANALYSIS REPORT
===================================
Device: NetGear R7000 Router
Firmware Version: V1.0.11.116 (modified)
Architecture: ARM (Little Endian)
Filesystem: SquashFS (Linux 3.4.103)
Dump Method: UART debug console
INTEGRITY CHECK
Vendor Firmware Hash: aaa111bbb222... (clean V1.0.11.116)
Analyzed Firmware Hash: ccc333ddd444... (MISMATCH)
Modified Files: 14 files differ from vendor baseline
BACKDOOR FINDINGS
[!] /usr/bin/httpd_backdoor (new binary, not in vendor firmware)
Architecture: ARM 32-bit
Function: Reverse shell to 185.220.101[.]42:4444
Persistence: Added to /etc/init.d/rcS
[!] /etc/shadow modified
Root password changed to known hash
New user 'admin2' added with UID 0
[!] /etc/crontab modified
Added: */5 * * * * /usr/bin/httpd_backdoor
[!] /root/.ssh/authorized_keys (new file)
Contains attacker's SSH public key
EXTRACTED IOCs
C2 IP: 185.220.101[.]42
C2 Port: 4444
SSH Key: ssh-rsa AAAA... attacker@control
Backdoor Hash: eee555fff666...
REMEDIATION
1. Flash clean vendor firmware via TFTP recovery mode
2. Change all device credentials
3. Update to latest firmware version
4. Enable firmware integrity checking if available
5. Monitor for re-compromise indicators
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases
Exploratory Data Analysis
Quickly understand datasets, identify patterns, and generate insights
Example
Analyze CSV with 100K rows, identify outliers, visualize correlations, suggest hypotheses
Reduce EDA time from hours to minutes, uncover insights faster
Data Cleaning & Transformation
Write scripts to clean messy data, handle missing values, normalize formats
Example
Generate Python/SQL to fix date formats, impute missing values, remove duplicates
Automate 80% of data preprocessing work
Statistical Analysis
Perform hypothesis testing, regression, and statistical modeling
Example
Run A/B test analysis, calculate confidence intervals, interpret p-values
Get statistically sound analysis without PhD in statistics
Data Visualization
Create charts, dashboards, and visual reports
Example
Generate matplotlib/seaborn code for time series plots, distribution charts, heatmaps
Build presentation-ready visualizations 3x faster
Implementation Guide
Prerequisites
- ›Claude Desktop or compatible AI client
- ›Python environment (pandas, numpy, matplotlib) or SQL database access
- ›Basic understanding of data analysis concepts
- ›Sample datasets for testing skill capabilities
Time Estimate
20-40 minutes to set up and run first analysis
Steps
- 1Install data analysis skill using provided command
- 2Prepare a sample dataset (CSV, JSON, or database connection)
- 3Start with descriptive statistics: 'Summarize this dataset'
- 4Progress to visualization: 'Create a scatter plot of X vs Y'
- 5Advanced analysis: 'Run linear regression and interpret results'
- 6Validate outputs: check calculations, verify visualizations make sense
- 7Document analysis workflow for reproducibility
Common Pitfalls
- ⚠Not validating statistical assumptions before applying tests
- ⚠Accepting visualizations without checking data accuracy
- ⚠Overlooking data quality issues (missing values, outliers)
- ⚠Misinterpreting correlation as causation
- ⚠Using wrong statistical test for data distribution
- ⚠Not considering sample size and statistical power
Best Practices
✓ Do
- +Always validate data quality before analysis
- +Check statistical assumptions (normality, independence, etc.)
- +Visualize data before running statistical tests
- +Document analysis steps for reproducibility
- +Cross-validate findings with domain experts
- +Use skill for initial exploration, then dive deeper manually
- +Save generated code for reuse on similar datasets
✗ Don't
- −Don't trust analysis without verifying data quality
- −Don't apply statistical tests without checking assumptions
- −Don't make business decisions solely on AI-generated analysis
- −Don't ignore outliers without investigating cause
- −Don't skip data validation and sanity checks
- −Don't use for mission-critical financial or medical analysis without expert review
💡 Pro Tips
- ★Describe data context: 'This is user behavior data from e-commerce site'
- ★Ask for interpretation: 'What does this correlation mean for business?'
- ★Request multiple approaches: 'Show 3 ways to handle missing data'
- ★Combine AI analysis with domain expertise for best insights
- ★Use for rapid prototyping, then refine analysis manually
When to Use This
✓ Use when
Use for exploratory data analysis, data cleaning, statistical testing, visualization prototyping, and learning new analysis techniques. Best for initial exploration and rapid insights.
✗ Avoid when
Avoid for mission-critical financial analysis, medical research requiring regulatory compliance, production ML models, or when deep statistical expertise is required for nuanced interpretation.
Learning Path
- 1Basic: descriptive statistics, data cleaning, simple visualizations
- 2Intermediate: hypothesis testing, regression, correlation analysis
- 3Advanced: time series analysis, clustering, predictive modeling
- 4Expert: causal inference, experimental design, advanced statistical methods
Related Skills
analyzing-ransomware-encryption-mechanisms
1mukul975/Anthropic-Cybersecurity-Skills
detecting-rootkit-activity
1mukul975/Anthropic-Cybersecurity-Skills
performing-cryptographic-audit-of-application
5mukul975/Anthropic-Cybersecurity-Skills
exploiting-deeplink-vulnerabilities
3mukul975/Anthropic-Cybersecurity-Skills
implementing-soar-playbook-with-palo-alto-xsoar
3mukul975/Anthropic-Cybersecurity-Skills
scanning-docker-images-with-trivy
2mukul975/Anthropic-Cybersecurity-Skills
Reviews
- AAditi Malhotra★★★★★Dec 24, 2024
We added performing-firmware-malware-analysis from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- AAlexander Dixit★★★★★Dec 20, 2024
Solid pick for teams standardizing on skills: performing-firmware-malware-analysis is focused, and the summary matches what you get after install.
- NNoah Kim★★★★★Dec 20, 2024
Solid pick for teams standardizing on skills: performing-firmware-malware-analysis is focused, and the summary matches what you get after install.
- CCharlotte Lopez★★★★★Dec 16, 2024
performing-firmware-malware-analysis is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- DDhruvi Jain★★★★★Dec 12, 2024
Registry listing for performing-firmware-malware-analysis matched our evaluation — installs cleanly and behaves as described in the markdown.
- MMateo Gupta★★★★★Nov 15, 2024
performing-firmware-malware-analysis fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- MMeera White★★★★★Nov 11, 2024
performing-firmware-malware-analysis is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- AAisha Thomas★★★★★Nov 7, 2024
Solid pick for teams standardizing on skills: performing-firmware-malware-analysis is focused, and the summary matches what you get after install.
- OOshnikdeep★★★★★Nov 3, 2024
performing-firmware-malware-analysis reduced setup friction for our internal harness; good balance of opinion and flexibility.
- AAisha Li★★★★★Oct 26, 2024
We added performing-firmware-malware-analysis from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
showing 1-10 of 71
Discussion
Comments — not star reviews- No comments yet — start the thread.