Wireless / RF (non-Wi-Fi radio)

SkillAI & models

Guides your agent through security testing of non-Wi-Fi radios like Bluetooth, Zigbee, Z-Wave, and sub-GHz devices.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Wireless / RF (non-Wi-Fi radio) skill

About this capability

Use when the target has a non-Wi-Fi radio attack surface, Bluetooth/BLE (GATT, pairing, KNOB/BIAS/BleedingTooth), Zigbee/Thread/Matter & Z-Wave mesh (Touchlink, S0 downgrade), LoRaWAN/Sub-GHz LPWAN, SDR capture/replay/rolljam, smart locks/medical/IoT radios. For Wi-Fi/WPA/evil-twin see network-atta

What this skill tells your AI

The instructions your AI receives, as published by hypnguyen1209/offensive-claude in skills/wireless-rf/SKILL.md and read by ahel’s review.

Radio attack surface beyond Wi-Fi: Bluetooth (BLE + Classic), 802.15.4 mesh (Zigbee/Thread/Matter), Z-Wave, and LPWAN/Sub-GHz (LoRaWAN, ISM rolling-code / OOK-ASK). For Wi-Fi, WPA2/WPA3, evil-twin and 802.1X, use network-attack (references/wireless-attacks.md, which also now carries KRACK/FragAttacks and WPS). Adapted in part from Claude-Red (MIT, Kai Aizen/SnailSploit) — see THIRD-PARTY-NOTICES.md.

When to Activate

  • Auditing a BLE device (smart lock, wearable, medical, tracker): GATT enumeration, unauthenticated characteristic R/W, pairing-mode identification, LTK recovery, sniffing, companion-app RE.
  • Bluetooth Classic targets: encryption-key entropy downgrade (KNOB), impersonation (BIAS), BlueZ/stack memory-corruption (BlueBorne / BleedingTooth).
  • Zigbee / Thread / Matter / Z-Wave home/building automation: Touchlink commissioning abuse, key transport in the clear, S0 key-exchange downgrade, replay/AiTM on mesh commands.
  • LoRaWAN / Sub-GHz: join-accept / uplink replay, ABP counter & nonce reuse, and generic ISM capture→replay / rolljam of OOK-ASK remotes (garage, gate, some auto keyfobs).
  • You have (or can request) the right radio: a dual-mode BT adapter + BLE sniffer (Sniffle/Ubertooth), a KillerBee-supported 802.15.4 stick, an RfCat dongle (CC1111), and/or an SDR (RTL-SDR, HackRF).
  • STOP if the RF target or its band is out of scope. RF is trivially cross-boundary (you will hear neighbours). Confirm scope.json and the physical/RF authorization before transmitting. Jamming, deauth-style disruption, and replay against safety/medical systems can be illegal and dangerous — see OPSEC & Detection.

Technique Map

TechniqueATT&CKCWEReferenceScript
BLE GATT enum + unauth characteristic R/WT1040 / T1592CWE-306references/bluetooth.mdscripts/rf_recon.sh
BLE LE-Legacy Just-Works LTK recovery (crackle)T1557CWE-322references/bluetooth.md-
BLE sniffing / active MITM (Sniffle/btlejack)T1040 / T1557CWE-319references/bluetooth.mdscripts/rf_recon.sh
BT Classic key-entropy downgrade (KNOB, CVE-2019-9506)T1557CWE-326references/bluetooth.md-
BT Classic impersonation (BIAS, CVE-2020-10135)T1557CWE-287references/bluetooth.md-
BlueZ/stack RCE (BleedingTooth CVE-2020-12351/12352)T1200CWE-787references/bluetooth.md-
Bluetooth data exfiltrationT1011.001CWE-319references/bluetooth.md-
Zigbee Touchlink commissioning abuse / resetT1557CWE-284references/mesh-iot-radio.mdscripts/rf_recon.sh
Zigbee/ZLL key transport in clear + replayT1040 / T1557CWE-319references/mesh-iot-radio.mdscripts/rf_recon.sh
Z-Wave S0 key-exchange downgrade ("Z-Shave")T1557CWE-757references/mesh-iot-radio.md-
LoRaWAN join-accept / uplink replayT1602CWE-294references/lpwan-subghz.md-
LoRaWAN ABP counter / nonce reuseT1040CWE-323references/lpwan-subghz.md-
Sub-GHz OOK-ASK capture→replay / rolljamT1557CWE-294references/lpwan-subghz.mdscripts/rf_recon.sh

Quick Start

# 0. AUTHORIZATION FIRST — confirm the RF target/band is in scope (RF crosses walls).
python3 ../coding-mastery/scripts/_lib/scope_guard.py --target "<device-id-or-mac>" || exit 3

# 1. BLE recon: discover, enumerate GATT, flag unauthenticated writable characteristics
sudo bash scripts/rf_recon.sh ble-scan
sudo bash scripts/rf_recon.sh ble-enum <BD_ADDR>      # services/characteristics + R/W perms

# 2. BLE pairing/crypto: identify pairing method; LE-Legacy Just Works -> crackle recovers LTK
#    (capture pairing with Sniffle/Ubertooth to a pcap, then:)
crackle -i pairing.pcap                                # LTK/STK if LE Legacy

# 3. 802.15.4 mesh recon (KillerBee): find Zigbee networks + channel
sudo bash scripts/rf_recon.sh zb-scan                  # zbstumbler across channels 11-26

# 4. Sub-GHz capture -> analyze -> replay (RfCat / SDR). rtl_433 first to fingerprint.
sudo bash scripts/rf_recon.sh subghz-id                 # rtl_433 protocol/mod fingerprint
#    then capture+replay in Universal Radio Hacker (URH), watching for rolling codes.

OPSEC & Detection (summary)

TechniqueTelemetry / IOCDetectionOPSEC / legal note
BLE scan/enumconnectable advertising probes; repeated GATT connectsBLE WIDS (rare); app-side connection anomalypassive hcitool lescan/Sniffle is quiet; enumeration is a normal client action
BLE MITM / LTK recoverycloned advertiser; a 2nd device holding the connectionduplicate BD_ADDR; RSSI/2-radio anomalyLE Legacy Just Works is the weak path; LE Secure Connections (ECDH) defeats crackle
KNOB / BIAS (Classic)renegotiated low-entropy key; unexpected re-pairpatched stacks reject 1-byte entropy / require MITM-protectionneeds proximity + a window; patched hosts (post-2019/2020) mitigate
BleedingTooth / BlueBornetarget BlueZ/stack crash or rebootcrash telemetry; kernel/stack patch levelmemory-corruption = crash/DoS risk; lab-validate, get written sign-off
Zigbee Touchlink / key-in-clearTouchlink scan/identify; devices leaving/rejoining802.15.4 IDS (rare); coordinator join logsTouchlink range abuse can factory-reset lights building-wide — scope tight
Z-Wave S0 downgradeS0 key-exchange when S2 expectedcontroller S2 bootstrap logsneeds presence during (re)pairing; S2 defeats it
LoRaWAN replayduplicate frame counters at the NS; join floodsNS frame-counter monitoring; join-nonce checks1.0.x is weaker than 1.1; downlink replay can toggle actuators
Sub-GHz replay / rolljamjamming energy in-band + delayed replayRF spectrum monitoring (rare on ISM)jamming is illegal in most jurisdictions; rolljam defeats rolling codes but needs jam+capture — explicit authorization only

Deep Dives

  • references/bluetooth.md — BLE (GATT enumeration & unauth R/W, pairing-method identification, LE-Legacy Just-Works LTK recovery with crackle, Sniffle/btlejack sniffing & active MITM, companion-app RE, device-class playbooks for locks/medical/wearables) and Bluetooth Classic (KNOB CVE-2019-9506, BIAS CVE-2020-10135, BlueBorne, BleedingTooth CVE-2020-12351/12352/24490, BLESA, SweynTooth). Detection + OPSEC per technique.
  • references/mesh-iot-radio.md — 802.15.4 mesh: Zigbee (Touchlink/ZLL commissioning abuse & master-key leak, key transport in the clear, NWK/APS replay, KillerBee/zbstumbler/zbdump), Thread/Matter (commissioning, OpenThread lab), and Z-Wave (S0 key-exchange downgrade "Z-Shave", S2 bootstrap, Scapy-radio/EZ-Wave, RfCat).
  • references/lpwan-subghz.md — LoRaWAN (1.0.x vs 1.1 root/session keys, join-accept & uplink replay, ABP counter/nonce reuse, gr-lora/ChirpStack lab) and generic Sub-GHz/ISM (rtl_433 fingerprinting, RfCat CC1111, HackRF + Universal Radio Hacker capture→replay, OOK-ASK rolling-code vs fixed-code, rolljam theory & legality).

Cross-references

  • Wi-Fi / WPA2 / WPA3 / evil-twin / 802.1X / KRACK / WPS → network-attack (references/wireless-attacks.md).
  • Companion-app / firmware reversing → reverse-engineering; mobile app pairing logic → mobile-pentest.
  • REQUIRED: scope-discipline before transmitting; finding-discipline before any [CONFIRMED] (an advertised characteristic is not impact — you must read/write it or recover the key). Authorized only (TERMS.md).

Signals

GitHub stars
373
Forks
62
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
wireless-rf
Source
github.com/hypnguyen1209/offensive-claude