Key Takeaways
- IoT pentest is a multi-layer engagement: hardware, firmware, radio protocols, mobile companion app, and cloud backend. Skipping any layer leaves real risk on the table.
- Firmware analysis with binwalk, firmwalker, and emulation under QEMU surfaces hardcoded credentials, weak crypto, and exposed services before a single packet is sent.
- Hardware debug interfaces (JTAG, SWD, UART, SPI flash) are the fastest path to root on commodity Indian IoT and consumer devices.
- Protocol testing covers MQTT broker authentication, CoAP message tampering, Zigbee key extraction and BLE pairing weaknesses. Each protocol needs a dedicated test plan.
- The cloud backend behind the device is often the weakest link: exposed device-registration APIs, broken object-level authorisation, and shared MQTT topics across tenants.
Why IoT Pentest Is a Distinct Discipline
An IoT product is not a single application. It is a stack: physical hardware, a microcontroller or SoC running firmware, one or more radio protocols (WiFi, BLE, Zigbee, LoRa, cellular), an outbound connection to a cloud backend, and almost always a mobile companion app driving the user experience. A defect in any layer can compromise the device or its data.
Indian enterprises now deploy IoT across smart metering, CCTV and NVR systems, connected medical devices, manufacturing sensors, fleet telematics, building management, and retail point-of-sale. The 2024 and 2025 advisories from CERT-In and global vendors made it clear: untested IoT is the single largest growing entry point into corporate networks.
Standard web app or network pentests miss most IoT risk because the device firmware, radio protocols, and hardware debug ports never appear in scope. A proper IoT engagement budgets time for hardware teardown, firmware extraction and offline analysis, alongside the usual network and cloud testing.
Methodology Overview: OWASP IoT Top 10 + PTES Adapted
Our IoT methodology blends the OWASP IoT Top 10 (2018, current revision in draft) with the Penetration Testing Execution Standard (PTES) and the OWASP Firmware Security Testing Methodology (FSTM). The combined flow is: reconnaissance, hardware teardown, firmware acquisition, firmware analysis, dynamic testing, protocol analysis, cloud backend testing, and reporting.
Reconnaissance starts with vendor datasheets, FCC filings, teardown photographs, GitHub repositories and CVE history for the specific SoC and firmware framework (FreeRTOS, Zephyr, Linux, OpenWrt, Mongoose OS, ESP-IDF, etc.). Documentation work before the lab session shortens the engagement materially.
- Reconnaissance: vendor docs, FCC filings, GitHub, CVE history, prior research
- Hardware teardown: photograph PCB, identify SoC, flash chip, debug headers
- Firmware acquisition: OTA capture, SPI flash dump, vendor portal scrape, UART boot logs
- Firmware analysis: binwalk, firmwalker, ghidra/IDA, hardcoded secrets, weak crypto
- Dynamic testing: emulation under QEMU, fuzz services, abuse exposed daemons
- Protocol analysis: MQTT, CoAP, Zigbee, BLE, custom RF
- Cloud backend: device registration, OTA channel, MQTT broker, BOLA, IDOR
Need a Pentest Engagement?
Codesecure runs manual, OSCP-led VAPT for Indian businesses across web, API, mobile, network, cloud, AD, IoT, wireless and thick client. ISO/IEC 27001:2022 certified delivery with named consultants and a free retest within 90 days.
See Pentest Services →Firmware Analysis: Where Most Findings Surface
Firmware is the operating system and application code that runs on the device. Acquiring it is step one. Common acquisition paths include downloading the OTA update from a vendor cloud, dumping the SPI flash chip with a CH341A or Bus Pirate programmer, dumping internal flash through JTAG or SWD, or pulling the firmware over UART from a debug shell exposed at boot.
Static Analysis
Once the firmware image is extracted, binwalk identifies embedded filesystems (squashfs, jffs2, cramfs, ubifs) and bootloaders. Tools like firmwalker, trufflehog and gitleaks then sweep the extracted filesystem for hardcoded API keys, private SSH keys, vendor-default credentials, TLS private keys, and signed-URL secrets. Binary review in Ghidra or IDA Pro surfaces backdoor accounts, weak hashing (MD5, unsalted SHA1), insecure random number generation, and stack canary or ASLR misconfiguration.
Dynamic Emulation
Where the firmware uses common architectures (ARM, MIPS), we emulate the extracted root filesystem under QEMU or firmadyne. This lets us start the device daemons (web admin, telnet, custom proprietary services) in a sandbox and fuzz them with afl++, boofuzz, or curl-based scripts. Findings surface fast: command injection in cgi-bin, authentication bypass in admin endpoints, buffer overflows in custom services, and exposed debug ports left enabled in production builds.
Hardware Interfaces: JTAG, SWD, UART, SPI Flash
Physical access drops the cost of compromise to near zero on most commodity devices. We start every IoT engagement with a board teardown, high-resolution photographs, and component identification. Test points, headers and unpopulated pads on the PCB are almost always debug interfaces left over from manufacturing.
UART is the fastest win. A logic analyser or Bus Pirate identifies the baud rate, and a USB-to-TTL adapter gives a serial console. Roughly half of consumer-grade Indian IoT devices we have tested expose a boot log, a U-Boot prompt, or an interactive root shell on UART with no authentication. JTAG and SWD then provide full halt and step debug access to the SoC, including memory read, register inspection and firmware extraction. SPI flash chips can be desoldered or read in-circuit with a chip clip and a CH341A programmer, giving us the firmware without ever touching the running device.
Protocol Testing: MQTT, CoAP, Zigbee, BLE
Once the device is talking to its network, the wire protocols become the test surface. We instrument with Wireshark, sniff with hcitool or Ubertooth for BLE, kill MAC randomisation, and capture all device chatter for inspection. The headline issues are surprisingly consistent across vendors.
MQTT and CoAP
MQTT brokers are commonly deployed with anonymous access, shared topic namespaces (where one tenant can subscribe to another tenant's device topic), and unencrypted plaintext on port 1883 instead of TLS on 8883. We test with mosquitto_sub/pub, MQTT-PWN and custom Python clients. CoAP, used heavily in low-power smart-meter and sensor networks, suffers from message tampering when DTLS is not enforced, plus reflection-amplification risk when servers respond to spoofed source addresses.
Zigbee and BLE
Zigbee key extraction is performed with KillerBee, Ubertooth and Atmel RZRAVEN-class sniffers. Devices that use the default Zigbee link key (5A:69:67:42:65:65:41:6C:6C:69:61:6E:63:65:30:39) or that never rotate trust-centre keys are trivially impersonated. For Bluetooth Low Energy, we attack pairing (Just Works versus Numeric Comparison), capture and replay GATT writes, and abuse undocumented GATT characteristics that expose configuration or root commands. Tools used include nRF Connect, gatttool, btlejack and bettercap.
Stuck on Scope or Compliance Pressure?
Whether you need pentest for SOC 2, ISO 27001, RBI, a customer questionnaire or pure proactive testing, our VAPT lead is available for a 30-minute free scoping call. No obligation, no slideware.
Talk to a Pentest Lead →Cloud Backend Testing: Often the Weakest Link
Every connected device is paired to a backend that handles registration, OTA updates, telemetry ingestion and mobile-app sync. This backend is a regular REST or MQTT API, and it tends to be where the most serious findings sit. Device IDs are typically guessable or sequential, OTA channels often lack signed firmware verification, and provisioning flows frequently allow one customer to register a device into another customer's tenancy.
Our backend testing follows the OWASP API Security Top 10 with IoT-specific additions: BOLA on device IDs and serial numbers, broken authentication on device-side certificates and JWTs, mass assignment on device-configuration endpoints, MQTT topic-level authorisation gaps, and missing signature verification on OTA payloads. A weak backend means a fully patched device can still be cloned, hijacked or bricked through the cloud.
Reporting, Re-Test and Compliance Mapping
Our IoT reports map each finding to OWASP IoT Top 10, CVSS v3.1 base and temporal score, and where relevant to MITRE ATT&CK for ICS or Enterprise. Sector-specific clients receive additional mapping: ETSI EN 303 645 for consumer IoT, IEC 62443 for industrial deployments, IS 17428 for Indian privacy assurance, and DPDP Act Section 8 (reasonable security safeguards) where personal data is involved.
Each finding includes step-by-step proof-of-concept, recorded video where appropriate, hex dumps, network captures, and engineer-grade remediation guidance the device team can act on. Free re-test within 90 days is part of every Codesecure engagement, so the vendor can ship a fix and validate it without a separate purchase order.
Frequently Asked Questions
How long does an IoT pentest take?
A single-device IoT engagement that covers hardware, firmware, radio, mobile app and cloud backend typically runs 3 to 5 weeks. A product family with shared firmware can be batched into one engagement. Compressed timelines (1 to 2 weeks) are possible when scope is limited to firmware and cloud only, with no hardware lab time.
Do you need physical access to the device for IoT pentest?
Yes, at least one unit and ideally two or three. Hardware teardown, debug interface probing, SPI flash dump and JTAG access all require a physical device. We sign hardware indemnity terms before any destructive testing so the customer knows exactly which units may not survive.
Which IoT compliance frameworks do you map findings to?
ETSI EN 303 645 for consumer IoT, IEC 62443 for industrial and OT, ENISA Good Practices for IoT Security, OWASP IoT Top 10 and OWASP FSTM for technical scoring, plus DPDP Act Section 8 and ISO/IEC 27001:2022 Annex A controls for Indian enterprise stakeholders.
Can you test IoT devices without source code?
Yes. Almost every IoT pentest is black-box or grey-box. Source code is helpful for crypto review and code-path coverage, but firmware extraction, emulation, and binary analysis cover the bulk of findings even without source. We make recommendations clearer when source is provided.
What does a typical IoT pentest cost in India?
A single-device engagement at production quality (hardware + firmware + radio + cloud) ranges from INR 4 to 12 lakh depending on protocol mix and depth. Multi-device or shared-firmware product families are priced lower per device. Codesecure offers fixed-price proposals after a 30-minute scoping call.
Do you test medical IoT devices?
Yes, with the right safety controls. Medical-device testing follows IEC 62304 and FDA pre-market cybersecurity guidance plus our IoT methodology. We never test against live patients or in clinical environments. Lab-only, with explicit hardware indemnity and a documented safety case for each test scenario.
Ship Connected Products Without Shipping CVEs
Codesecure has tested IoT and connected products across smart metering, healthcare, fleet telematics, industrial sensors and consumer electronics for OEMs across India, Singapore and the UAE. ISO/IEC 27001:2022 certified delivery, named OSCP consultants, free retest, board-ready report.

