Strobesstrobes
Platform
Solutions
Resources
Customers
Company
Pricing
Book a Demo
Strobesstrobes

Strobes connects every exposure signal to autonomous action, so security teams fix what matters, prove what works, and stop chasing noise.

Book a DemoTalk to an expert
ISO 27001SOC 2CREST
  • Platform
  • Platform Overview
  • Agentic Exposure Management
  • AI Agents
  • Integrations
  • API & Developers
  • Workflows & Automation
  • Analytics & Reporting
  • Solutions
  • Exposure Assessment (EAP)
  • Attack Surface Management
  • Application Security Posture
  • Risk-Based Vulnerability Management
  • Adversarial Exposure Validation (AEV)
  • AI Pentesting
  • Pentesting as a Service
  • CTEM Framework
  • By Industry
  • Financial Institutions
  • Technology
  • Retail
  • Healthcare
  • Manufacturing
  • By Roles
  • CISOs
  • Security Directors
  • Cloud Security Leaders
  • App Sec Leaders
  • Resources
  • Blog
  • Customer Stories
  • eBooks
  • Datasheets
  • Videos & Demos
  • Exposure Management Academy
  • CTEM Maturity Assessment
  • Pentest Health Check
  • Security Tool ROI Calculator
  • Company
  • About Strobes
  • Meet the Team
  • Trust & Security
  • Contact Us
  • Careers
  • Become a Partner
  • Technology Partner
  • Partner Deal Registration
  • Press Release

Weekly insight for security leaders

CTEM research, agentic AI trends, and what's actually moving the needle.

© 2026 Strobes Security Inc. All rights reserved.

Privacy PolicyTerms of ServiceCookie PolicyAccessibilitySitemap
Back to Blog
IoT Penetration Testing Guide
Offensive Security

IoT Penetration Testing Guide

Shubham JhaDecember 6, 20259 min read

Table of Contents

  • What is IoT penetration testing?
  • What is the OWASP IoT Top 10?
  • How do you analyze IoT firmware?
  • How do you access UART and JTAG on a device?
  • How do you dump SPI flash memory?
  • How do you test IoT radio communications?
  • How do you report and prioritize IoT findings?
  • Frequently asked questions
  • Sources and references

Authors

S
Shubham Jha

Share

Table of Contents

  • What is IoT penetration testing?
  • What is the OWASP IoT Top 10?
  • How do you analyze IoT firmware?
  • How do you access UART and JTAG on a device?
  • How do you dump SPI flash memory?
  • How do you test IoT radio communications?
  • How do you report and prioritize IoT findings?
  • Frequently asked questions
  • Sources and references

Authors

S
Shubham Jha

Share

TL;DR
  • ✓IoT pentesting spans five layers: reconnaissance, firmware, hardware, radio, and the cloud/mobile services that support the device.
  • ✓The OWASP IoT Top 10 anchors scope, led by weak or default credentials and insecure network services.
  • ✓Hardware access via UART and JTAG often drops you to a root shell; SPI flash can be dumped with flashrom and a Bus Pirate.
  • ✓Firmware analysis with binwalk, firmware-mod-kit, and EMBA surfaces hardcoded keys, backdoor accounts, and outdated components.
  • ✓Radio testing with an RTL-SDR and tools like rtl_433 captures and decodes 433 MHz, BLE, and other wireless traffic.

IoT penetration testing assesses a connected device as a whole system, not just its app. A single smart lock, camera, or industrial sensor exposes a web interface, a mobile app, cloud APIs, firmware on a flash chip, exposed debug ports, and one or more radios. Each layer is its own attack surface, and the interesting bugs usually sit where two of them meet.

This guide follows the layers an assessor actually works through: recon and network services, firmware extraction and analysis, hardware interfaces like UART and JTAG, and radio. It maps the work to the OWASP IoT Top 10 and names the tools (binwalk, EMBA, flashrom, Bus Pirate, RTL-SDR) you reach for at each step.

What is IoT penetration testing?

IoT penetration testing is a security assessment that covers every layer of a connected device: its network services, web and mobile interfaces, cloud APIs, firmware, hardware interfaces, and wireless radios. The goal is to find how an attacker with physical access, network access, or just the companion app could compromise the device or the accounts behind it.

It blends disciplines. You will do web and API testing against the management interface, mobile testing against the companion app, plus hardware and RF work that has no equivalent in pure software engagements. Because the firmware and hardware are physically in your hands, IoT testing is unusually white-box compared with other types of penetration testing.

IoT pentest methodology
1
Recon
Map device, network services, web/mobile interfaces, and cloud APIs.
2
Firmware
Extract with binwalk and EMBA; hunt hardcoded keys and outdated components.
3
Hardware
Find UART/JTAG, get a shell, dump SPI flash with flashrom and a Bus Pirate.
4
Radio
Capture and replay RF with RTL-SDR; test MQTT/CoAP and BLE.
5
Reporting
Map to OWASP IoT Top 10, rate by access level and fleet-wide blast radius.

What is the OWASP IoT Top 10?

The OWASP IoT Top 10 is the reference list of the most common IoT security weaknesses, and it frames the scope of most engagements. It starts with weak, guessable, or hardcoded passwords, which remain the single most exploited IoT issue, and moves through insecure network services, insecure ecosystem interfaces, and lack of secure update mechanisms.

The remaining items cover insecure or outdated components, insufficient privacy protection, insecure data transfer and storage, lack of device management, insecure default settings, and lack of physical hardening. Map each finding to an item so the client can compare against an industry baseline, the same way you would anchor a web engagement to the network and service controls you assess elsewhere.

  • I1 weak/default credentials and I2 insecure network services dominate real findings.
  • I4 lack of secure update is what makes a single firmware bug permanent.
  • I10 lack of physical hardening is exactly what UART, JTAG, and SPI access exploit.
Strobes insight
Weak or default credentials are still the number-one IoT finding. Before any hardware work, try the obvious: default web logins, Telnet/SSH with vendor passwords, and reused keys baked into firmware.

How do you analyze IoT firmware?

Firmware analysis usually starts before you touch hardware: pull the firmware image from the vendor's update server or support download, then unpack it. binwalk identifies and extracts embedded filesystems (commonly SquashFS or JFFS2), bootloaders, and compressed blobs. firmware-mod-kit helps rebuild images, and EMBA automates a deep static analysis pass over the extracted filesystem.

Once the filesystem is mounted, you are hunting for the same kinds of secrets as any code review: hardcoded credentials in /etc/passwd and /etc/shadow, private keys and certificates, API endpoints and tokens, backdoor accounts, and outdated binaries with known CVEs. grep, strings, and a quick check of busybox and OpenSSL versions go a long way. This is firmware-flavored static analysis, close in spirit to the AI-assisted review we describe in our agentic pentesting guide.

  • binwalk -e to extract the filesystem and identify components.
  • EMBA for automated firmware-wide vulnerability and config analysis.
  • grep and strings for keys, passwords, URLs, and tokens.
  • Version-check busybox, dropbear, OpenSSL, and the kernel against CVE data.

How do you access UART and JTAG on a device?

UART and JTAG are debug interfaces on the board that often give direct, authenticated-free access to the running system. UART (a serial console) frequently drops you straight to a root shell or a bootloader prompt. JTAG gives low-level CPU debug access for reading and writing memory and halting execution. Finding them is half the work.

Open the case and look for headers or test pads, then identify pins with a multimeter and a logic analyzer. For UART, connect a USB-to-TTL adapter (matching the device's voltage, usually 3.3V) to TX, RX, and GND, then attach with screen or minicom at a baud rate you find by trial (115200 is common). JTAGulator helps locate JTAG pinouts automatically. From a UART root shell you can read firmware live and dump secrets without ever touching the flash chip.

How do you dump SPI flash memory?

When debug ports are disabled, you go straight for the storage. Most IoT devices keep firmware on an external SPI flash chip (often a Winbond 25-series in an SOIC-8 package). Dumping it gives you the full firmware image even when the vendor never published one. You read the chip with flashrom driving a hardware programmer.

Connect with an SOIC-8 test clip so you do not have to desolder, wire it to a Bus Pirate, a CH341A programmer, or a Raspberry Pi acting as the SPI master, then run flashrom to read the chip into a file. Feed that image back into binwalk and your firmware workflow. If the chip is powered by the board during reads, you may need to isolate it to avoid the main CPU contending for the bus.

  • Identify the chip and package (read the part number, check the datasheet).
  • Attach an SOIC-8 clip to a Bus Pirate, CH341A, or Pi.
  • flashrom -r dump.bin to read the full image.
  • Extract with binwalk and analyze as above.

How do you test IoT radio communications?

Radio testing captures and analyzes the wireless protocols the device uses, which can include Wi-Fi, Bluetooth Low Energy, Zigbee, and sub-GHz bands like 433 MHz. A cheap RTL-SDR dongle turns into a software-defined radio receiver that, with rtl_433 or GNU Radio and a tool like Universal Radio Hacker, lets you sniff, decode, and replay signals.

The classic finding is an unauthenticated replay attack: capture the signal a remote or sensor sends, retransmit it, and trigger the action (unlock, open, arm) without any rolling code or authentication. For application-layer IoT protocols, test MQTT and CoAP brokers for missing authentication, open topics, and cleartext transport, since an exposed broker often exposes every device on it at once.

  • RTL-SDR plus rtl_433 or GNU Radio to capture and decode signals.
  • Universal Radio Hacker to analyze and replay sub-GHz protocols.
  • Test MQTT/CoAP for anonymous access, open topics, and cleartext.
  • Check BLE pairing and GATT permissions for unauthenticated reads/writes.

How do you report and prioritize IoT findings?

Report each finding against the layer it lives on and the OWASP IoT Top 10 item it maps to, with the access level required (physical, local network, or remote) made explicit, because that drives real-world risk. A root shell over UART matters less if the device is in a locked enclosure than a remotely exploitable network service does.

Prioritize by exploitability and blast radius: a hardcoded key shared across every shipped unit, or an exposed MQTT broker, affects the whole fleet, not one device. Where the same bug class recurs across firmware versions, recommend a secure update pipeline so fixes can actually ship. For organizations running fleets, fold this into the kind of continuous validation we cover in our network testing guidance.

Frequently asked questions

What is IoT penetration testing?
IoT penetration testing is a security assessment of a connected device across all its layers: network services, web and mobile interfaces, cloud APIs, firmware, hardware debug ports, and wireless radios. It combines web, mobile, hardware, and RF testing to find how an attacker could compromise the device or its supporting accounts.
What is the OWASP IoT Top 10?
The OWASP IoT Top 10 lists the most common IoT security weaknesses, beginning with weak, guessable, or hardcoded passwords and insecure network services. It also covers insecure ecosystem interfaces, lack of secure update mechanisms, outdated components, weak privacy and data protection, insecure defaults, and lack of physical hardening. It is the standard scope baseline for IoT engagements.
What tools are used for IoT firmware analysis?
binwalk extracts embedded filesystems and identifies components, firmware-mod-kit helps unpack and rebuild images, and EMBA runs automated firmware-wide static analysis. After extraction, grep, strings, and version checks against CVE data find hardcoded credentials, keys, backdoors, and outdated binaries like busybox or OpenSSL.
How do you get a shell on an IoT device?
The fastest route is usually a UART serial console. Locate the header or test pads, identify TX/RX/GND with a multimeter and logic analyzer, connect a 3.3V USB-to-TTL adapter, and attach with screen or minicom at the right baud rate. Many devices drop you to a root shell or bootloader prompt with no authentication.
How do you dump firmware from an SPI flash chip?
Identify the flash chip (often a Winbond SOIC-8), attach an SOIC-8 test clip, and wire it to a hardware programmer such as a Bus Pirate, CH341A, or a Raspberry Pi acting as SPI master. Run flashrom to read the chip into a file, then extract and analyze the image with binwalk.
What radios and protocols should IoT testing cover?
Cover Wi-Fi, Bluetooth Low Energy, Zigbee, and sub-GHz bands like 433 MHz. An RTL-SDR with rtl_433, GNU Radio, or Universal Radio Hacker captures, decodes, and replays signals to test for replay attacks and missing authentication. Also test application protocols MQTT and CoAP for anonymous access, open topics, and cleartext transport.
Do you need physical access for IoT penetration testing?
Not for everything, but the deepest findings come from it. Network, web, mobile, and cloud testing run remotely, while UART/JTAG access, SPI flash dumps, and many radio attacks need the device in hand. A good report always states the access level a finding requires, since that drives its real-world risk.

Sources and references

  • OWASP Internet of Things Top 10
  • binwalk Firmware Analysis Tool
  • EMBA Firmware Security Analyzer
  • flashrom
S
Shubham Jha
Security Researcher, Strobes
Shubham Jha leads offensive security research at Strobes, focused on web and API exploitation and red team tradecraft.
Tags
IoT SecurityHardware HackingOffensive Security

Stop chasing vulnerabilities Start reducing exposure

See how Strobes AI agents validate and fix your most critical exposures automatically.

Book a Demo
Continue Reading

Related Posts

How to Catch Blind Bugs Scanners Miss
Penetration TestingOffensive Security

How to Catch the Blind Bugs Scanners Miss

Out-of-band validation detects blind SSRF, blind SQLi, and out-of-band XXE that return no in-band response. Learn how it works and why it matters.

May 29, 202613 min
5 Vulnerabilities in Every Vibe-Coded App
Application SecurityLLM Security

5 Vulnerabilities in Every Vibe-Coded App

The 5 security flaws AI coding assistants ship by default: missing authz, leaked secrets, weak JWTs, IDOR, eval RCE — with detection queries and fixes for each.

May 29, 202613 min
Black-Box Agentic Scanners Strengths and Their Ceiling
Penetration TestingOffensive Security

Black-Box Agentic Scanners: Strengths and Their Ceiling

Black box agentic pentesting finds real CVEs fast and proves them, but where does it hit a ceiling? An honest, category-level verdict.

May 29, 20268 min