diff --git a/.github/workflows/discord-notify.yml b/.github/workflows/discord-notify.yml new file mode 100644 index 0000000..7682764 --- /dev/null +++ b/.github/workflows/discord-notify.yml @@ -0,0 +1,53 @@ +name: Discord Push Notification + +on: + push: + branches: ['**'] + +jobs: + notify: + runs-on: ubuntu-latest + steps: + - name: Send Discord notification + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }} + COMMIT_MSG: ${{ github.event.head_commit.message }} + run: | + BRANCH="${GITHUB_REF#refs/heads/}" + REPO="${{ github.repository }}" + AUTHOR="${{ github.event.head_commit.author.username }}" + COMMIT_SHA="${{ github.sha }}" + SHORT_SHA="${COMMIT_SHA:0:7}" + COMMIT_URL="${{ github.event.head_commit.url }}" + COMPARE_URL="${{ github.event.compare }}" + COMMIT_COUNT="${{ github.event.size }}" + TIMESTAMP="$(date -u +%Y-%m-%dT%H:%M:%S.000Z)" + + # Truncate commit message for embed + FIRST_LINE=$(echo "$COMMIT_MSG" | head -n1 | cut -c1-256) + + curl -s -o /dev/null -w "%{http_code}" -H "Content-Type: application/json" \ + -X POST "$DISCORD_WEBHOOK" \ + -d @- < **Legend**: Complexity 1 = simple wrapper, 5 = full protocol stack. Cost = additional hardware beyond ESP32. + +--- + +## Table of Contents + +- [Radio & Wireless](#radio--wireless) +- [USB & HID](#usb--hid) +- [Hardware Hacking](#hardware-hacking) +- [Network & Protocols](#network--protocols) +- [Industrial & SCADA](#industrial--scada) +- [Exfiltration & Covert Channels](#exfiltration--covert-channels) +- [Sensors & Environment](#sensors--environment) +- [Crypto & WiFi Attacks](#crypto--wifi-attacks) +- [Automotive](#automotive) +- [Physical Security](#physical-security) + +--- + +## Radio & Wireless + +### mod_ble — Bluetooth Low Energy + +**Hardware**: ESP32 built-in | **Cost**: 0 EUR | **Complexity**: 3/5 + +BLE scanning, GATT enumeration, beacon spoofing, and device tracking. + +**Commands**: +- `ble_scan [duration]` — Discover BLE devices (name, RSSI, services) +- `ble_enum ` — Enumerate GATT services and characteristics +- `ble_read ` — Read characteristic value +- `ble_write ` — Write to characteristic +- `ble_beacon [major] [minor]` — Spoof iBeacon/Eddystone +- `ble_track [duration]` — Track device RSSI over time +- `ble_flood [count]` — Broadcast random BLE advertisements + +**Use cases**: IoT device recon, BLE lock testing, asset tracking, Bluetooth phishing. + +--- + +### mod_zigbee — IEEE 802.15.4 / Zigbee + +**Hardware**: CC2530/CC2531 module via UART | **Cost**: ~4 EUR | **Complexity**: 4/5 + +Sniff, inject, and replay Zigbee/802.15.4 frames. Targets smart home (Philips Hue, SmartThings, Ikea). + +**Commands**: +- `zigbee_scan [channel]` — Discover Zigbee networks and devices +- `zigbee_sniff [duration]` — Capture 802.15.4 frames +- `zigbee_inject ` — Inject raw frame +- `zigbee_replay` — Replay captured frames +- `zigbee_key_sniff [duration]` — Capture transport key exchange +- `zigbee_jam ` — Channel jamming + +**Use cases**: Smart home testing, IoT protocol analysis, Zigbee network penetration. + +--- + +### mod_nfc — RFID / NFC + +**Hardware**: RC522 (MIFARE) or PN532 (full NFC) via SPI | **Cost**: ~3 EUR | **Complexity**: 3/5 + +Read, write, clone, and emulate RFID/NFC tags. Supports MIFARE Classic, NTAG, and ISO 14443. + +**Commands**: +- `nfc_scan` — Detect tags in range (UID, type, ATQA, SAK) +- `nfc_read [key]` — Read MIFARE sector +- `nfc_write [key]` — Write to sector +- `nfc_clone` — Read tag → store → emulate (UID-level clone) +- `nfc_crack ` — MIFARE Classic key recovery (nested/hardnested) +- `nfc_dump` — Dump full tag contents +- `nfc_emulate ` — Emulate tag UID + +**Use cases**: Access card cloning, NFC payment research, badge system testing. + +--- + +### mod_subghz — Sub-GHz Radio (433/868/915 MHz) + +**Hardware**: CC1101 module via SPI | **Cost**: ~3 EUR | **Complexity**: 4/5 + +Sniff, decode, record, and replay sub-GHz radio signals. Targets garage doors, remotes, weather stations, sensors. + +**Commands**: +- `subghz_rx [modulation]` — Listen on frequency (ASK/FSK/GFSK) +- `subghz_tx [repeat]` — Transmit raw data +- `subghz_scan ` — Frequency scanner (find active freqs) +- `subghz_record [duration]` — Record raw signal +- `subghz_replay [speed]` — Replay recorded signal +- `subghz_decode ` — Decode known protocols (Oregon, LaCrosse, etc.) +- `subghz_bruteforce [delay]` — Brute-force fixed codes + +**Use cases**: Garage door testing, remote control analysis, sensor spoofing, ISM band recon. + +--- + +### mod_lora — LoRa Long-Range Mesh + +**Hardware**: SX1276/SX1278 module via SPI | **Cost**: ~5 EUR | **Complexity**: 3/5 + +LoRa-based backup C2 channel and mesh network for long-range, low-bandwidth communication. + +**Commands**: +- `lora_start [sf] [bw]` — Init LoRa radio (spreading factor, bandwidth) +- `lora_send ` — Send raw LoRa packet +- `lora_listen [duration]` — Receive packets +- `lora_mesh_start` — Enable mesh relay mode (multi-hop) +- `lora_c2_enable` — Use LoRa as backup C2 channel +- `lora_range_test` — Ping-pong range measurement + +**Use cases**: Backup C2 (1-10 km range), field mesh network, exfiltration when WiFi unavailable. + +--- + +### mod_ir — Infrared TX/RX + +**Hardware**: IR LED + IR receiver (VS1838B) | **Cost**: ~1 EUR | **Complexity**: 2/5 + +Capture, decode, and replay infrared remote signals. Universal remote functionality. + +**Commands**: +- `ir_learn [timeout]` — Record IR signal from any remote +- `ir_send ` — Send known protocol (NEC, Sony, RC5, Samsung) +- `ir_replay` — Replay last captured signal +- `ir_scan` — Brute-force common power codes (TV-B-Gone style) +- `ir_raw_send ` — Send raw pulse/space timing + +**Use cases**: TV/AC control, IR protocol analysis, physical access (some locks use IR). + +--- + +### mod_espnow_swarm — Coordinated ESP-NOW Swarm + +**Hardware**: Additional ESP32 agents | **Cost**: 0 EUR per agent | **Complexity**: 4/5 + +Coordinate multiple Espilon agents via ESP-NOW for distributed operations. Mesh-aware task distribution. + +**Commands**: +- `swarm_discover` — Find nearby Espilon agents +- `swarm_broadcast ` — Send command to all agents +- `swarm_assign ` — Targeted task assignment +- `swarm_sync` — Synchronize clocks for coordinated actions +- `swarm_scan_distributed ` — Parallel network scanning from multiple positions +- `swarm_relay ` — Use agent as relay for out-of-range C2 + +**Use cases**: Distributed WiFi scanning, coordinated deauth, coverage extension, multi-angle recon. + +--- + +### mod_tpms — Tire Pressure Monitoring + +**Hardware**: CC1101 (315 or 433 MHz) | **Cost**: ~3 EUR | **Complexity**: 3/5 + +Sniff and spoof TPMS sensors at 315/433 MHz. Vehicle identification via unique sensor IDs. + +**Commands**: +- `tpms_listen [duration]` — Capture TPMS broadcasts +- `tpms_decode` — Show decoded sensor data (pressure, temp, ID) +- `tpms_track ` — Track specific vehicle presence +- `tpms_spoof ` — Inject fake reading + +**Use cases**: Vehicle tracking via TPMS IDs, TPMS protocol research. + +--- + +## USB & HID + +### mod_badusb — USB HID Injection + +**Hardware**: ESP32-S2 or ESP32-S3 (native USB) | **Cost**: 0 EUR | **Complexity**: 3/5 + +Keystroke injection attack via USB HID. Triggered remotely from C2. + +**Commands**: +- `badusb_run ` — Execute named payload +- `badusb_type ` — Type arbitrary text +- `badusb_key ` — Send key combo (e.g., `WIN+R`, `CTRL+ALT+DEL`) +- `badusb_delay ` — Wait between keystrokes +- `badusb_upload