LLM Skills
~/catalogue/acquisition & growth//SKILL

IoT offensif

/SKILL

Méthodologie de test de sécurité des appareils connectés et embarqués. Couvre la reconnaissance matérielle (UART, JTAG, SWD, mémoire flash SPI, EEPROM I2C, eMMC extraction de puces), l'acquisition de

SnailSploitSnailSploit
2.8k
8 mai 2026
MIT License
// contenu du skill

name: offensive-iot

description: "IoT and embedded device security testing methodology. Covers hardware reconnaissance (UART, JTAG, SWD, SPI flash, I2C EEPROM, eMMC chip-off), firmware acquisition (vendor portals, OTA capture, flash dump, binwalk extraction), firmware analysis (filesystem mounting, binary triage, hardcoded secrets, default credential discovery), bootloader attacks (U-Boot console, secure-boot bypass, fault injection), runtime attacks on embedded Linux/RTOS (busybox CVEs, MTD writes, /dev/mem), wireless protocol attacks (Zigbee, BLE, Z-Wave, LoRaWAN, Thread/Matter, sub-GHz), MQTT/CoAP/Modbus/BACnet/OPC-UA exploitation, mobile companion app analysis, cloud-IoT API abuse, and side-channel/glitching basics. Use for IoT pentest, smart-home assessment, ICS/OT testing, or embedded vulnerability research."


IoT & Embedded — Offensive Testing Methodology

Quick Workflow

  1. Recon the device physically — identify SoC, flash, debug interfaces, radios
  2. Get the firmware — vendor download, OTA capture, hardware dump, or chip-off
  3. Unpack and analyze — filesystems, services, secrets, default creds, vuln components
  4. Establish runtime access — UART shell, telnet/SSH default creds, exploit chain
  5. Pivot — to companion app, cloud API, neighboring devices via mesh / wireless

Hardware Reconnaissance

PCB Inspection

  • ID the SoC by markings (Realtek, Mediatek, Espressif, Broadcom, Allwinner, NXP, STM32, etc.)
  • ID flash (8-pin SOIC = SPI NOR; BGA = eMMC; TSOP = NAND)
  • Find debug headers: TX/RX/GND/VCC pads (UART), 4–10 pin (JTAG), 4 pin (SWD)
  • Find test points labeled TX, RX, TCK, TMS, TDO, TDI, RST, BOOT

Tools

ToolUse
MultimeterIdentify GND, VCC rails before connecting
Logic analyzer (Saleae, DSLogic)Find UART baud, SPI clock, identify protocols
USB-UART (FT232, CP2102)UART console
Bus Pirate / GlasgowUART, SPI, I2C, JTAG generic
J-Link / Black Magic ProbeJTAG / SWD MCU debugging
CH341A programmerCheap SPI flash dumper
XGecu T48Modern universal programmer (NAND/eMMC/SPI)
ChipQuik / hot-airChip-off desolder

UART Discovery

bash
# Find baud rate
for b in 9600 19200 38400 57600 115200 230400 460800 921600; do
  echo "=== $b ==="
  timeout 5 minicom -b $b -D /dev/ttyUSB0 -C uart_$b.log
done
grep -l -E "U-Boot|Linux|Bootloader|console|login" uart_*.log

Look for: U-Boot console (often Hit any key countdown), Linux init messages, root shell on console, login prompt.

Bootloader Console Drop

# At U-Boot countdown, mash space or key listed
Hit any key to stop autoboot:  0
=> printenv                   # full env, often includes boot args
=> setenv bootargs ${bootargs} init=/bin/sh
=> boot                       # Linux comes up to root shell, no login

If U-Boot is locked, try:

  • CONFIG_DELAY_AUTOBOOT_KEYED keyword (vendor-specific)
  • Ctrl+C / Ctrl+B / specific magic strings
  • Glitch the U-Boot version-check / signature-check (see Fault Injection)

Flash Dumping

SPI NOR (most common consumer IoT)

bash
# In-circuit dump (hold SoC in reset to avoid bus contention)
flashrom -p ch341a_spi -r firmware.bin

# Verify
file firmware.bin && binwalk firmware.bin

If the SoC fights you: desolder the SPI chip, dump in socket, re-solder.

eMMC / NAND

eMMC is desolder-then-read: BGA-153/169 to SD adapter (cheap eBay), use a USB SD reader.

NAND requires bit-flipping and ECC handling — nanddump/yaffshiv/ubireader post-extraction.

OTA Capture

Many devices fetch firmware over HTTP(S). MITM the device:

bash
# Captive AP + transparent proxy
sudo create_ap wlan0 eth0 IoTLab
mitmproxy --mode transparent --showhost --ssl-insecure
# Or for non-SNI / pinning, use bettercap with custom DNS

Capture the URL, download directly, dissect.


Firmware Analysis

Initial Triage

bash
binwalk -Me firmware.bin           # Extract recursively
binwalk -E firmware.bin            # Entropy plot — flat = encrypted/compressed
strings firmware.bin | grep -iE "(passwd|key|token|admin|http|ssid)"

Filesystem Mounting

bash
# SquashFS (most consumer Linux IoT)
unsquashfs -d rootfs squashfs.bin

# JFFS2 / UBIFS (NAND-backed)
jefferson jffs2.bin -d rootfs
ubireader_extract_files ubi.bin -o rootfs

Embedded-Linux Quick Wins

bash
# Hardcoded credentials and keys
grep -RIE "(BEGIN (RSA |DSA |EC )?PRIVATE KEY|api[_-]?key|secret|token|passwd|root:[^*])" rootfs/
find rootfs -name "*.pem" -o -name "*.key" -o -name "shadow"

# Telnet/SSH default creds
cat rootfs/etc/passwd rootfs/etc/shadow
grep -r "telnetd" rootfs/etc/init.d
grep -r "dropbear\|sshd" rootfs/

# Setuid binaries
find rootfs -perm -4000 -type f

# Vulnerable busybox / dropbear / openssl versions
rootfs/bin/busybox 2>&1 | head -1
strings rootfs/sbin/dropbear | grep "Dropbear v"
strings rootfs/usr/lib/libssl* | grep "OpenSSL "

# Web a
// source originale publique
SnailSploit/Claude-Red
/Skills/iot/offensive-iot/SKILL.md
Licence : MIT License
Projet indépendant, non affilié à Anthropic. Ce skill reste la propriété de son auteur original.
// installer ce skill
Collez cette commande dans votre terminal à la racine de votre projet :
mkdir -p .claude/commands && curl -o ".claude/commands/SKILL.md" "https://raw.githubusercontent.com/SnailSploit/Claude-Red/main/Skills/iot/offensive-iot/SKILL.md"
Ensuite dans Claude Code, tapez /SKILL pour l'activer.
open_in_newVoir la source originale
// sauvegarder
Sauvegarde disponible après connexion.
loginSe connecter pour sauvegarder
// informations
CréateurSnailSploit
Étoiles 2.8k
LicenceMIT License
Mis à jour8 mai 2026
Format.md
AccèsGratuit
// similaires

Skills Acquisition & growth

Voir toutarrow_forward