Firmware & IoT Security
Binary firmware analysis, embedded system testing, MQTT/BLE/Zigbee/LoRaWAN protocol auditing, hardware interface exploitation (UART/JTAG/SWD), and industrial OT/SCADA assessments. PhantomYerra extracts filesystems, mines credentials, matches CVEs, audits cryptography, fuzzes protocols, and chains every finding into complete attack paths with reproducible PoC evidence.
Prerequisites
- Firmware binary file obtained from client, vendor download portal, or extracted directly from device flash memory
- Device type and CPU architecture identified (ARM Cortex-M/A, MIPS, x86/x64, RISC-V, Xtensa/ESP32, ARC, PowerPC)
- Written authorization covering firmware reverse engineering, device testing, and protocol interception
- For live device testing: physical or network access to the target device, USB/Serial/JTAG adapter cables as needed
- For OT/SCADA assessments: network access to the OT segment with safety coordinator present and change management approved
- Claude API key configured (Settings → AI Configuration) for AI-driven orchestration
- For protocol testing: target device IP address or BLE MAC address known
-
1
Select Firmware / IoT from Home Screen
Click the π Firmware / IoT / OT card on the Home Screen. Choose your assessment type from the dropdown:
Assessment Types: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Firmware Analysis β Static analysis of a firmware binary image. Extracts filesystem, mines credentials, matches CVEs, audits crypto, decompiles key binaries. Live Device Testing β Active testing of a powered-on device over the network or via hardware debug interfaces. Includes service enumeration, web UI testing, default credential checks, and exploit attempts. Protocol Audit β Focused testing of IoT communication protocols: MQTT, CoAP, AMQP, BLE, Zigbee, Z-Wave, LoRaWAN. Tests authentication, encryption, message injection, topic/channel enumeration, and replay attacks. OT/SCADA β Industrial control system assessment covering Modbus TCP/RTU, DNP3, OPC-UA, BACnet, EtherNet/IP, PROFINET, S7comm. Non-disruptive by default with optional active testing under safety coordinator. IoT Fleet Scan β Bulk assessment of multiple devices of the same type across a subnet or IP range. Identifies firmware version drift, inconsistent configs, default credentials, and unpatched devices.π‘ You can combine assessment types. For example, select "Firmware Analysis" + "Live Device Testing" to analyze the binary and then verify findings against the running device. -
2
Upload Firmware Binary
Drag and drop the firmware file onto the upload area, or click Browse to select it. PhantomYerra automatically identifies the format, architecture, endianness, and compression type.
Supported Firmware Formats: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Extension Description Notes βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ .bin Raw binary image Most common format .img Disk/flash image dd-style full dumps .elf ELF executable Linux-based firmware .hex / .ihex Intel HEX Microcontroller firmware .ubi UBI filesystem image NAND flash devices .squashfs SquashFS compressed filesystem Router/AP firmware .jffs2 JFFS2 filesystem Older embedded Linux .cramfs CramFS compressed filesystem Read-only embedded FS .yaffs2 YAFFS2 filesystem NAND flash devices .fw Vendor firmware update file Vendor-specific wrapper .pkg Update package Vendor-specific format .rbi Router firmware (ISP devices) Technicolor/Sagemcom .chk NETGEAR firmware format NETGEAR devices .trx Broadcom TRX image DD-WRT/OpenWrt routers .dlf D-Link firmware format D-Link devices .zip/.tar.gz Compressed firmware archive Extract before upload Maximum file size: 4 GB Architectures: ARM (32/64), MIPS (BE/LE), x86, x64, RISC-V, Xtensa (ESP32), ARC, PowerPC, SuperHRemote URL option: Instead of uploading a local file, paste a direct download URL to the firmware binary. PhantomYerra downloads it, verifies the checksum (if provided by vendor), and proceeds with analysis.
π‘ If you extracted firmware from flash memory via JTAG/SWD, upload the raw dump. PhantomYerra handles partition table parsing and filesystem boundary detection automatically. -
3
Configure Device & Protocol Settings
If your assessment includes live device testing or protocol auditing, configure the connection interface and protocol options.
Hardware Interface Selection: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Interface Use Case Configuration βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Network Device accessible via TCP/IP IP address, port range USB Device connected via USB COM port or /dev/ttyUSBx Serial/UART Console access via serial Baud rate (default 115200), data bits, parity, stop bits WiFi Device on wireless network SSID, device IP Bluetooth BLE or Classic Bluetooth device MAC address, adapter selection JTAG Debug interface via JTAG adapter Adapter type (J-Link, ST-Link, Bus Pirate, FTDI) SWD ARM Serial Wire Debug Adapter type, target voltage Protocol Options (multi-select): βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Protocol Port/Channel Description βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ MQTT 1883 / 8883 IoT messaging (with/without TLS) CoAP 5683 / 5684 Constrained Application Protocol (UDP) AMQP 5672 / 5671 Advanced Message Queuing Protocol BLE - Bluetooth Low Energy (GATT services) Zigbee - IEEE 802.15.4 mesh networking Z-Wave - Home automation RF protocol LoRaWAN - Long-range low-power WAN UART - Serial console (hardware interface) JTAG - Debug/flash interface SWD - ARM Serial Wire Debug I2C - Inter-Integrated Circuit bus SPI - Serial Peripheral Interface bus Modbus TCP 502 Industrial control protocol Modbus RTU - Serial industrial control DNP3 20000 Distributed Network Protocol OPC-UA 4840 Industrial automation standard BACnet 47808 Building automation EtherNet/IP 44818 Industrial Ethernet PROFINET - Siemens industrial protocol S7comm 102 Siemens S7 PLC communication -
4
Complete Mission Control Wizard
The wizard guides you through all configuration steps specific to firmware and IoT assessments:
Wizard Steps for Firmware/IoT: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Step 1: Environment β Lab / Staging / Production device (Production = non-disruptive mode enforced) Step 2: Mode β Automated AI (recommended for firmware) Step 3: Surfaces β Firmware Analysis, IoT Protocols, OT/SCADA (check all that apply) Step 4: Target β Upload firmware file OR enter device IP/URL Step 5: Auth Token β Paste authorization text or upload document Step 6: Device Info β Vendor, model, firmware version (if known), architecture, operating system Step 7: AI Interview β Claude asks targeted questions: - What does this device do? - Is it internet-facing or internal only? - Does it handle sensitive data (PII, PHI, PCI)? - Are there known default credentials? - What protocols does it use? - Is the firmware update process signed? Step 8: Intensity β Standard / Deep / Exhaustive Standard: static analysis + known CVEs Deep: + binary decompilation + protocol fuzzing Exhaustive: + hardware interface testing + full exploit chain development Step 9: Review β Confirm plan, adjust scope, launch -
5
AI Engine Orchestrates 12-Phase Pipeline
Claude AI drives the entire assessment autonomously, adapting its approach based on findings from each phase. The pipeline runs in order, but Claude pivots and adds extra testing when it discovers something interesting.
Phase 1: Filesystem Extraction β Recursive extraction of all filesystem layers β Handles nested archives, SquashFS, JFFS2, UBI, CramFS β Maps partition layout and boot sequence β Identifies OS (Linux, RTOS, VxWorks, QNX, ThreadX) Phase 2: Credential Mining β Scans extracted filesystem for passwords, API keys, certificates, SSH keys, tokens, connection strings β Checks /etc/passwd, /etc/shadow, config files, .env, database files, keystore/truststore files β Identifies hardcoded credentials in binary executables β Searches for cloud provider credentials (AWS, Azure, GCP) Phase 3: Binary Analysis β Runs checksec on all ELF binaries: ASLR, NX, PIE, stack canaries, RELRO, FORTIFY_SOURCE β Identifies compiler, build flags, debug symbols β Decompiles key binaries (httpd, telnetd, custom daemons) β Searches for dangerous function calls: strcpy, sprintf, system(), exec(), gets(), scanf() Phase 4: CVE Matching β Identifies all software components with versions β Matches against NVD, ExploitDB, and vendor advisories β Checks: kernel version, BusyBox, OpenSSL, libcurl, dnsmasq, dropbear, lighttpd, uhttpd, miniupnpd, avahi, samba β Produces prioritized CVE list with exploitability scores Phase 5: Crypto Audit β Checks OpenSSL/mbedTLS/wolfSSL version and configuration β Identifies weak ciphers (RC4, DES, 3DES, MD5, SHA1) β Finds self-signed certificates and expired certificates β Detects hardcoded cryptographic keys and IVs β Validates TLS configuration on all listening services β Checks for proper random number generation (no static seeds) Phase 6: Certificate & Key Check β Extracts all X.509 certificates from firmware β Validates certificate chains and trust anchors β Checks for shared private keys across devices β Identifies certificates with weak key sizes (<2048 RSA) β Detects reuse of vendor default certificates Phase 7: Kernel Analysis β Identifies kernel version and configuration β Checks for known kernel exploits (Dirty COW, etc.) β Verifies kernel hardening: KASLR, SMEP, SMAP, SELinux β Inspects loaded kernel modules for vulnerabilities β Checks /proc and /sys exposure Phase 8: Network Service Audit β Enumerates all listening services from firmware config β Tests each service for default credentials β Checks for unnecessary services (telnet, FTP, TFTP) β Validates firewall rules (iptables/nftables configuration) β Tests UPnP, mDNS, and SSDP for information disclosure Phase 9: Protocol Fuzzing β Generates malformed packets for each detected protocol β MQTT: topic injection, oversized payloads, QoS abuse β CoAP: malformed options, block-wise abuse, observe flood β BLE: GATT handle brute-force, pairing bypass attempts β Custom binary protocols: structure-aware fuzzing Phase 10: Web Interface Testing β Crawls embedded web UI (lighttpd, uhttpd, GoAhead, Boa) β Tests for command injection in all input fields β Checks authentication bypass, session management β Tests file upload/download for path traversal β Identifies information disclosure (serial, MAC, config) β Tests firmware update mechanism for manipulation Phase 11: Privilege Escalation β Tests for shell escape from restricted CLI β Checks SUID/SGID binaries for abuse β Identifies writable cron jobs and init scripts β Tests for kernel exploit applicability β Checks for debug interfaces left enabled β Attempts to gain persistent root access Phase 12: Report Generation β Produces professional pentest report with full evidence β Maps findings to OWASP IoT Top 10 and CWE references β Includes firmware composition analysis (SBOM) β Provides device-specific remediation guidance β Generates firmware security scorecard β Includes complete attack graph with exploit chainsWhat Claude AI Does During Firmware Analysis
- Adaptive pivoting: If Phase 2 finds hardcoded credentials, Claude immediately uses them in Phase 8 (network services) and Phase 10 (web UI) before continuing the pipeline
- CVE-to-exploit chaining: When a CVE is matched in Phase 4, Claude researches available exploits and attempts to validate them against the running device (if live testing is enabled)
- Binary code review: Claude reads decompiled C code from Phase 3 and identifies buffer overflows, format string bugs, command injection, and authentication bypasses that static CVE matching would miss
- Protocol-aware fuzzing: Claude generates context-aware fuzz payloads based on the specific protocol implementation found in the firmware, not just generic templates
- Attack chain construction: Claude connects individual findings into complete attack paths (e.g., information disclosure → credential extraction → authenticated RCE → persistent backdoor)
- Remediation authoring: Claude writes firmware-specific remediation steps including exact config changes, kernel parameters, and code fixes
-
6
Monitor the Scan Dashboard
The dashboard updates in real time as each phase completes. Key elements to watch:
Dashboard Panels for Firmware/IoT: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Attack Graph β Visual map of discovered attack paths. Each node is a finding, edges show how findings chain together. Click any node for full details and evidence. Firmware Tree β Hierarchical view of the extracted filesystem. Color-coded: red = secrets found, orange = vulnerable binary, yellow = interesting config, green = clean. Click any file to inspect. Binary Findings β Table of all ELF/PE binaries with security checks: ASLR, NX, PIE, Canary, RELRO status. Sorted by risk (missing protections first). CVE Panel β Matched CVEs with CVSS scores, exploitability indicators, and links to PoC exploits. Protocol Status β Live status of protocol tests. Shows MQTT topics discovered, BLE services enumerated, Modbus registers read, etc. Activity Feed β Real-time log of every action Claude takes. Includes tool invocations, findings, pivots, and decisions with reasoning.π‘ Critical findings (CVSS 9.0+) trigger an immediate toast notification. You do not need to watch the dashboard constantly. -
7
Review Findings & Download Report
When the pipeline completes, review the findings summary. Each finding includes:
Finding Structure: βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Title β Descriptive name (e.g., "Hardcoded Root Password in /etc/shadow with MD5 Hash") Severity β Critical / High / Medium / Low / Informational CVSS Score β CVSS v3.1 vector string and numeric score CVE Reference β CVE-YYYY-NNNNN (if applicable, with NVD link) CWE Reference β CWE-XXX category mapping OWASP IoT β OWASP IoT Top 10 mapping (I1 through I10) Evidence β Raw data: extracted password hashes, HTTP request/response, binary output, screenshot PoC Steps β Copy-paste ready reproduction commands Impact β Business impact description (data exposure, device takeover, lateral movement, safety risk) Remediation β Specific fix steps for this firmware/device Attack Chain β Where this finding connects in the full graphDownload the report as PDF (executive + technical), HTML (interactive), or JSON (for integration with other tools). The report includes a full firmware composition SBOM, OWASP IoT Top 10 compliance matrix, and device security scorecard.
What Claude Tests (Firmware / IoT / Embedded / OT/ICS)
Coverage spans OWASP IoT Top 10 (2018) as the baseline, plus full firmware analysis, hardware interface attacks, embedded protocol fuzzing, and OT/ICS testing. 22+ scanner modules including binary analyzer, firmware unpacker, secrets miner, CVE-BIN scanner, and the protocol fuzzer chain.
OWASP IoT Top 10 baseline- I1 Weak/Guessable/Hardcoded Passwords β extracted from /etc/shadow, /etc/passwd, hardcoded admin creds in binaries, default device passwords, vendor backdoors
- I2 Insecure Network Services β telnet/FTP open, debug ports (UART pinout matched to network), unauthenticated REST endpoints, SNMP v1/v2c with default community strings
- I3 Insecure Ecosystem Interfaces β cloud API auth bypass, mobile app to device pairing flaws, OTA update channel hijack, vendor cloud backend SSRF
- I4 Lack of Secure Update Mechanism β unsigned firmware updates, unencrypted update channel, downgrade attacks, rollback to vulnerable firmware
- I5 Insecure/Outdated Components β old kernel CVEs, BusyBox CVEs, OpenSSL Heartbleed/Shellshock, libupnp CVEs, EOL libraries via CVE-BIN
- I6 Insufficient Privacy Protection β unencrypted PII storage, exposed serial/UUID/MAC, geolocation leaks, microphone/camera unauthorized access
- I7 Insecure Data Transfer/Storage β cleartext MQTT, unencrypted Modbus, weak TLS ciphers, hardcoded keys, plaintext credentials in flash
- I8 Lack of Device Management β no remote patching, no log forwarding, no remote reboot/factory-reset auth
- I9 Insecure Default Settings β default admin/admin, debug=true in production firmware, JTAG/UART enabled in shipped device
- I10 Lack of Physical Hardening β exposed UART/JTAG/SWD pinouts, unprotected SPI flash, glitching susceptibility, unencrypted bootloader
- Binary memory-corruption β buffer overflow (stack/heap), format string, integer overflow, off-by-one, use-after-free, double-free, type confusion in C/C++ ELF binaries
- Binary protections audit β NX, ASLR, PIE, RELRO, stack canary, FORTIFY_SOURCE, CFI status per binary; missing protections flagged
- Crypto in firmware β hardcoded AES/DES keys, weak RSA keys (<2048 bits), reused IVs, ECB mode, predictable RNG, hardcoded SSH host keys, hardcoded TLS certs
- Filesystem secrets mining β private keys (.pem/.key), API tokens, OAuth client secrets, webhook URLs, database credentials in config files
- Bootloader attacks β U-Boot environment manipulation, secure-boot bypass, bootloader interruption via UART, signed-boot downgrade
- Hardware interfaces β UART shell access, JTAG/SWD memory dump + register write, SPI flash dump/reflash, IΒ²C bus sniffing, glitch attacks (voltage/clock)
- Embedded protocols β MQTT (auth bypass, topic hijack, retained-message poisoning), CoAP (resource enumeration, DoS amplification), BLE (pairing capture, MitM, GATT enum), Zigbee, Z-Wave, LoRaWAN (key extraction)
- UPnP / SSDP β UPnP device enumeration, SSDP reflection/amplification, IGD port-mapping abuse, NewExternalIPAddress spoofing
- OT/ICS protocols β Modbus TCP (function-code abuse, register write to halt PLCs), DNP3 (master spoofing), EtherNet/IP (CIP fuzzing), PROFINET (DCP discovery), S7comm (Siemens PLC stop/program), BACnet (HVAC takeover) β non-disruptive by default with optional active testing under safety coordinator
- OTA / update channel β MitM the update server, replay old firmware, strip signature, downgrade attack, malicious certificate injection
- Side-channel β timing attacks on auth, power-analysis indicators, cache-timing on shared services
- Mobile companion app β pairing flaws, BLE/Wi-Fi handoff, device registration abuse, cloud-API auth bypass via app token
- Cloud backend β vendor IoT cloud SSRF, S3/blob misconfig, telemetry topic enumeration, cross-tenant device control
Want the complete enumeration? See the Coverage Matrix for the full per-surface vuln-class list with scanner module names (264 modules across 30+ surface domains).
Real-World Scenarios
Scenario 1: IP Camera Firmware Audit
Target: Consumer IP camera with web interface, RTSP stream, and cloud connectivity.
Goal: Find remote exploitation paths and data exposure risks.
Scenario 2: Smart Home Hub β BLE + MQTT Exploitation
Target: Smart home hub coordinating BLE sensors and MQTT-connected devices.
Goal: Test wireless protocol security and hub compromise impact.
Scenario 3: Industrial Sensor β Modbus TCP + Firmware CVE
Target: Industrial temperature/pressure sensor with Modbus TCP interface on OT network.
Goal: Assess OT protocol security and firmware vulnerabilities without disrupting operations.
Scenario 4: Medical Device β DICOM/HL7 + Firmware Signing Bypass
Target: Medical imaging workstation with DICOM and HL7 interfaces, handling PHI/ePHI.
Goal: Assess data exposure, protocol security, and firmware integrity for HIPAA compliance.
Common Issues
Cause: The firmware may be encrypted, use a proprietary compression format, or have a non-standard header that prevents automatic detection of filesystem boundaries.
Solutions:
- Try recursive mode: Navigate to Firmware → Extract Firmware → Recursive Mode. This performs deeper scanning with multiple extraction passes.
- Check architecture: Use Firmware → Identify Architecture to verify the binary format. Some firmware images have a custom bootloader header that must be stripped (typically 64-256 bytes).
- Manual hex inspection: Use the PhantomYerra hex editor to examine the first 512 bytes. Look for filesystem magic bytes:
hsqs(SquashFS),UBI#(UBI),0x1985(JFFS2). Calculate the offset and extract manually:dd if=firmware.bin of=rootfs.squashfs bs=1 skip=OFFSET. - Encrypted firmware: Some vendors encrypt firmware updates. Check for a decryption key in the bootloader, EEPROM, or vendor documentation. Try strings on the existing device firmware (prior version) for the decryption key.
- Proprietary format: Contact the vendor for the update tool specification, or reverse-engineer the update application to understand the packaging format.
Cause: Decompiling large binaries (10+ MB) requires significant memory and CPU. The default 15-minute timeout may not be sufficient for complex binaries.
Solutions:
- Increase timeout: Navigate to Settings → Tools → Binary Analysis → Analysis Timeout. Set to 30-60 minutes for large binaries.
- Prioritize targets: Instead of analyzing all binaries, focus on the highest-value targets: httpd/lighttpd/uhttpd (web server), telnetd/dropbear (remote access), custom application binaries (vendor-specific daemons), binaries with SUID bit set.
- Increase resources: In Settings → Tools → Binary Analysis → CPU/Memory Allocation, increase the limits. Recommended: at least 4 GB RAM and 4 CPU cores for large firmware.
- Batch processing: For very large firmware with hundreds of binaries, use the batch queue: add binaries to the analysis queue and let them process sequentially overnight.
Cause: Properly configured MQTT brokers require TLS (port 8883) and may require mutual TLS with client certificates.
Solutions:
- Extract certs from firmware: Run the credential mining phase first. Client certificates and CA certificates are often stored in the firmware filesystem at
/etc/ssl/,/etc/mosquitto/, or/usr/share/certs/. - Use extracted credentials:
mosquitto_sub --cafile ca.crt --cert client.crt --key client.key -h [device-ip] -p 8883 -t "#" -v - Test certificate validation: Try connecting with a self-signed certificate to test if the broker validates the client certificate chain properly. Improper validation is a common finding.
- Default credential check: Even with TLS, try default username/password combinations: admin/admin, mqtt/mqtt, device/device, guest/guest. PhantomYerra's MQTT credential list covers 200+ common IoT defaults.
- Check for plaintext fallback: Some brokers accept both TLS (8883) and plaintext (1883) connections. Always test both ports.
Cause: Incorrect baud rate, wrong pin identification, voltage mismatch, or UART disabled in firmware.
Solutions:
- Baud rate: Try all common baud rates: 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600. Use an auto-detection tool:
python3 baudrate.py -p /dev/ttyUSB0. Garbled output usually means wrong baud rate. - Pin verification: Double-check TX and RX are not swapped. Adapter TX connects to device RX, and adapter RX connects to device TX. Use a logic analyzer to verify which pin is transmitting data during boot.
- Voltage levels: Ensure your adapter matches the device voltage (3.3V is most common for modern devices; 5V for older ones). A 5V adapter on a 3.3V device can damage the device. Use a level shifter if voltages differ.
- No output: The UART may be disabled in the firmware configuration. Check
/etc/inittabin the extracted firmware for serial console entries. Some vendors disable UART in production builds β the test pads exist but are not connected in software. - Flow control: Try disabling hardware flow control (RTS/CTS). In minicom:
Ctrl+A, O, Serial port setup, F (toggle Hardware Flow Control to No).
Cause: Device may not be advertising, Bluetooth adapter may need configuration, or pairing requires physical interaction with the device.
Solutions:
- Adapter setup: Ensure your Bluetooth adapter is up and in LE scan mode:
hciconfig hci0 up, thenhcitool lescan. Some USB adapters need a firmware reload:btmgmt power off && btmgmt power on. - Advertising mode: The device may only advertise briefly after power-on or button press. Power cycle the target device and scan immediately. Some devices require pressing a "pairing" button first.
- Distance and interference: BLE range is typically 10-30 meters. Move closer to the device. WiFi interference on the 2.4 GHz band can disrupt BLE β try testing in a less congested RF environment.
- Pairing requirements: If the device requires Passkey or Out-of-Band pairing, you may need to observe the pairing exchange rather than initiate it. Use
btmonto monitor HCI events during pairing and capture the key exchange. - Multiple adapters: Some attacks (MITM) require two Bluetooth adapters. Ensure both are configured with distinct HCI interfaces:
hciconfigshould showhci0andhci1.
264 modules Β· 30+ surfaces Β· 14 vuln families Β· 120+ classes
The sections above describe what this surface tests. For the complete enumeration of every vulnerability class PhantomYerra covers across all surfaces β with scanner module names β see the Coverage Matrix.
View Full Coverage Matrix →