Advanced WiFi security testing tool — 10 attack types (deauth, PMKID capture, evil twin, channel hop), CLI/TUI/GUI, cross-platform Linux/macOS/Windows
Project description
WiFi Jammer — Advanced WiFi Security Testing Tool | Python 802.11 Frame Injection
WiFi Jammer is an educational Python tool for WiFi security testing and penetration testing. It supports multiple 802.11 frame injection attack types including deauthentication, disassociation, beacon flooding, authentication flooding, association flooding, and probe response flooding. Cross-platform CLI, TUI, and GUI interfaces with SOLID architecture.
Features
Attack Types
- Deauthentication attack (targeted and broadcast)
- Disassociation attack
- Beacon flood attack
- Authentication flood attack
- Association flood attack
- Probe response flood attack
- Channel hopping automation (auto-cycles channels during deauth)
- PMKID and WPA handshake capture
- Evil twin attack (AP spoofing + deauth)
- Client discovery with selective device kicking (NetCut-style)
User Interfaces
- Rich CLI with progress bars, tables, and interactive prompts
- Modern TUI built with Textual
- Cross-platform Qt GUI built with PyQt6 (Linux, macOS, Windows)
Platform Support
- Linux: Full support with monitor mode via iwconfig
- macOS: CoreWLAN scanning with Location Services integration (Intel and Apple Silicon)
- Windows: Basic network scanning (no packet injection)
Quick Install
One-liner (Linux/macOS)
curl -sSL https://raw.githubusercontent.com/oyi77/wifi-jammer/main/quick_install.sh | bash
Git Clone
git clone https://github.com/oyi77/wifi-jammer.git
cd wifi-jammer
bash install.sh
Manual Setup
git clone https://github.com/oyi77/wifi-jammer.git
cd wifi-jammer
pip install -r requirements.txt
# macOS only — optional CoreWLAN support
pip install -r requirements-optional.txt
Usage
CLI Mode
Scan for available WiFi networks:
sudo wifi-jammer scan -i wlan0
Launch a targeted deauthentication attack:
sudo wifi-jammer attack -i wlan0 -t AA:BB:CC:DD:EE:FF -a deauth
Full attack command with options:
sudo wifi-jammer attack \
--interface wlan0 \
--target AA:BB:CC:DD:EE:FF \
--attack deauth \
--channel 6 \
--count 1000 \
--delay 0.1 \
--verbose
TUI Mode
sudo wifi-jammer --tui
The Textual-based terminal UI provides an interactive interface for scanning networks, selecting targets, configuring attacks, and monitoring progress in real time.
GUI Mode
sudo wifi-jammer --gui
# or
sudo wifi-jammer-gui
The PyQt6 GUI provides point-and-click network scanning, attack configuration, and live progress monitoring. Works on Linux, macOS, and Windows.
Wrapper Script
The included wrapper script auto-detects the best Python interpreter on your system:
sudo ./wifi-jammer.sh scan
sudo ./wifi-jammer.sh attack --tui
sudo ./wifi-jammer.sh attack --interface en0 --target AA:BB:CC:DD:EE:FF --attack deauth
Architecture
WiFi Jammer follows SOLID principles with clear separation of concerns:
wifi_jammer/
├── core/ # Interfaces and data structures
│ ├── interfaces.py # AttackType, AttackConfig, INetworkScanner, IAttackStrategy
│ └── platform_interface.py # Platform abstraction (Linux/macOS/Windows)
├── scanner/
│ └── network_scanner.py # ScapyNetworkScanner — network and client discovery
├── attacks/
│ ├── base_attack.py # BaseAttack — shared attack logic, stats tracking
│ ├── deauth_attack.py # DeauthAttack, DisassocAttack
│ ├── flood_attacks.py # BeaconFlood, AuthFlood, AssocFlood, ProbeResponse
│ ├── channel_hop_attack.py # ChannelHopAttack — multi-channel deauth
│ ├── pmkid_capture_attack.py # PmkidCaptureAttack — WPA handshake capture
│ ├── evil_twin_attack.py # EvilTwinAttack — AP spoofing + deauth
│ └── netcut_attack.py # NetcutAttack — selective client kicking
├── factory/
│ └── attack_factory.py # AttackFactory — strategy pattern for attack creation
├── gui/ # PyQt6 GUI components
│ ├── main_window.py # Main application window
│ ├── network_scanner_widget.py # Network discovery widget
│ ├── attack_config_widget.py # Attack configuration panel
│ └── progress_monitor_widget.py # Live attack progress display
├── utils/ # Logger, validators, platform utilities
├── config.py # ConfigManager with YAML persistence
├── cli.py # Click-based CLI entry point
└── tui.py # Textual TUI application
Key design patterns:
- Strategy pattern: Each attack type implements
IAttackStrategy, making them interchangeable - Factory pattern:
AttackFactorycreates attack instances by type, supports runtime registration - Interface segregation: Separate interfaces for scanning (
INetworkScanner), attacks (IAttackStrategy), monitoring (IMonitor), logging (ILogger), and configuration (IConfigManager) - Platform abstraction:
PlatformInterfaceFactoryreturns the correct platform implementation (Linux/macOS/Windows) at runtime
Platform Support
| Platform | Scanning | Packet Injection | Monitor Mode | GUI | TUI |
|---|---|---|---|---|---|
| Linux | Full | Full | iwconfig | Yes | Yes |
| macOS | CoreWLAN | Limited | Limited | Yes | Yes |
| Windows | Basic | No | No | Yes | Yes |
macOS note: Location Services permission is required for SSID/BSSID visibility. Run bash install.sh to configure this automatically, or enable Python in System Settings > Privacy & Security > Location Services.
Attack Types
| Attack | Description | Use Case |
|---|---|---|
deauth |
Sends 802.11 deauthentication frames to disconnect clients from an AP | Testing client disconnection resilience |
disassoc |
Sends 802.11 disassociation frames to remove client associations | Testing reassociation handling |
beacon_flood |
Broadcasts fake beacon frames with randomized SSIDs | Testing AP discovery and rogue AP detection |
auth_flood |
Floods an AP with authentication requests | Testing authentication rate limiting |
assoc_flood |
Floods an AP with association requests | Testing association capacity limits |
probe_response |
Responds to probe requests with fake network information | Testing probe response validation |
channel_hop |
Auto-cycles channels during deauth to maximize coverage | Testing multi-channel resilience |
pmkid_capture |
Captures WPA PMKID and handshake for offline analysis | Testing WPA key exchange security |
evil_twin |
Spoofs AP beacon and deauths real AP to capture clients | Testing rogue AP detection |
netcut |
Selectively kicks specific clients from a WiFi network | Testing per-device access control |
All attacks support configurable packet count, delay, source MAC spoofing, and channel selection.
Testing
Run the full test suite:
python run_tests.py
Or use pytest directly:
pytest tests/ -v
Tests cover the scanner, attack strategies, factory pattern, CLI, configuration management, validators, platform utilities, and crypto modules.
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-attack-type) - Add your attack class in
wifi_jammer/attacks/extendingBaseAttack - Register it in
wifi_jammer/factory/attack_factory.py - Add corresponding
AttackTypeenum value inwifi_jammer/core/interfaces.py - Write tests in
tests/ - Submit a pull request
Adding a new attack type:
from wifi_jammer.attacks.base_attack import BaseAttack
class MyCustomAttack(BaseAttack):
def _create_packet(self):
# Construct and return your 802.11 packet
return packet
License
MIT License. See LICENSE for details.
Disclaimer
This tool is provided for educational and authorized security testing purposes only. Use it exclusively on networks you own or have explicit written permission to test. Unauthorized use of this tool against networks you do not own is illegal and unethical. The authors and contributors assume no liability for misuse. Always comply with local, state, and federal laws regarding network security testing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wifi_jammer-2.0.0.tar.gz.
File metadata
- Download URL: wifi_jammer-2.0.0.tar.gz
- Upload date:
- Size: 84.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9ace5cf81777302c8f60ca881bd377166837b9dd42044c613beef61080feea4
|
|
| MD5 |
181c9c2c252740d1529b91c1b23f0b47
|
|
| BLAKE2b-256 |
81a6174700febc82e25f36b4455b422ea2d5bfaf3f1cc02096001ff0648ce24a
|
File details
Details for the file wifi_jammer-2.0.0-py3-none-any.whl.
File metadata
- Download URL: wifi_jammer-2.0.0-py3-none-any.whl
- Upload date:
- Size: 78.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c3856114ed7f64e25484400d34fc55bf300f19a210482bde290b134e20cd307
|
|
| MD5 |
5d45832b76af1460c505b540241f0fb9
|
|
| BLAKE2b-256 |
4d75e707ca7a3ebc39b16af996d2b7aad6474951ff717a46ff46ee3c99b3f1ee
|