Prerequisites

  • Firmware binary file (.bin, .img, .fw, .hex) from client or extracted from device
  • Device type and architecture known (ARM, MIPS, x86, RISC-V)
  • Written authorization covering firmware analysis and device testing
  • For live device testing: hardware access, UART/JTAG interface cables if needed
  • For OT/SCADA: network access to the OT segment with safety coordinator present
  1. 1

    Select Firmware / IoT from Home Screen

    Click 🔌 Firmware / IoT / OT. Select assessment type: Firmware Analysis, Live Device Testing, Protocol Audit (MQTT/BLE/Zigbee), or OT/SCADA.

  2. 2

    Upload Firmware Binary

    Drag and drop the firmware file. PhantomYerra runs file and binwalk to identify format, architecture, and compression type automatically.

  3. 3

    Claude Runs Full Firmware Analysis Pipeline

    Phase 1: Extraction — binwalk -e (recursive filesystem extraction) Phase 2: Analysis — EMBA: architecture, OS, services, CVE match Phase 3: Secrets — firmwalker: passwords, keys, certs in filesystem Phase 4: CVE matching — cve-bin-tool: match binaries to CVE database Phase 5: Decompile — Ghidra headless: decompile key binaries Phase 6: AI analysis — Claude reviews decompiled code (anonymized) Phase 7: Crypto audit — weak crypto: MD5 passwords, hardcoded keys Phase 8: Report — findings with CVSS scores and remediation
  4. 4

    Review IoT/Firmware Security Report

    Report includes: firmware metadata, extracted file system contents summary, secrets found, CVE matches by binary, decompiled vulnerability analysis, and OWASP IoT Top 10 mapping.

⏱️ Typical duration: 30–120 minutes depending on firmware size and Ghidra analysis depth.

Common Issues

The firmware may be encrypted or use a proprietary compression format. Try: binwalk -Me firmware.bin for recursive extraction. Check binwalk -A firmware.bin for architecture signatures. Use hexdump -C firmware.bin | head -20 to inspect the header manually. Some vendor firmwares require a vendor-specific decryption step before analysis.

Ghidra headless has a default 15-minute timeout in PhantomYerra. Increase it in Settings → Tools → Ghidra → Analysis Timeout. Focus on specific binaries rather than the full extracted filesystem: target httpd, telnetd, or custom application binaries. Use -max-cpu 4 to speed up analysis.

Use mosquitto_sub --cafile ca.crt --cert client.crt --key client.key -u user -P pass -h host -t "#". Extract the CA cert and client certs from the firmware first (firmwalker often finds them). Test for weak credentials with the default credential list in PhantomYerra's MQTT tool configuration.