A coordinated multi-device system for professional WiFi security assessment, combining the portability of Raspberry Pi with the power of GPU acceleration.
Three-Device Ecosystem:
- π§ Raspberry Pi 3B+: Network scanning, handshake capture, deauth attacks
- π» Main PC (RTX 4070 Super): GPU-accelerated password cracking with hashcat
- π± Wio Terminal: Real-time control interface and status display
- Distributed Processing: Offload intensive cracking to dedicated GPU hardware
- Real-Time Monitoring: Live attack progress via Wio Terminal interface
- Smart Channel Detection: Automatic target channel identification and focusing
- Multi-Round Deauth: Enhanced handshake capture with multiple attack rounds
- GPU Acceleration: 800x faster cracking vs Pi-only processing
- Professional Logging: Comprehensive packet analysis and encryption detection
- API-Driven: RESTful interface for all device coordination
- Monitor Mode Testing: Automatic validation of capture capabilities
- Advanced Analysis: tshark integration for packet inspection
- Security Controls: API key authentication and rate limiting
- Pi-only: ~1,000 passwords/second
- With RTX 4070 Super: ~800,000 passwords/second
- Speed improvement: 800x faster processing
# Run the setup script
./setup.sh
# Or manual setup:
sudo apt update && sudo apt install -y aircrack-ng wireless-tools python3-pip
pip install flask flask-cors# Copy and edit configuration
cp config.env.example config.env
nano config.env
# Set your API key and other settings
API_KEY=your-secure-api-key-here
WORDLIST_DIR=/usr/share/wordlists# Activate virtual environment
source venv/bin/activate
# Load environment variables
source config.env
# Start the API
python3 wifi_api.pyAll endpoints require X-API-Key header with your configured API key.
# Scan for networks
curl -H "X-API-Key: your-api-key" http://localhost:5000/scan# Start attack
curl -X POST -H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"ssid": "target-network"}' \
http://localhost:5000/start
# Check status
curl -H "X-API-Key: your-api-key" http://localhost:5000/status
# Get results
curl -H "X-API-Key: your-api-key" http://localhost:5000/results
# Cancel attack
curl -X POST -H "X-API-Key: your-api-key" http://localhost:5000/cancel# Health check (no auth required)
curl http://localhost:5000/health
# Configuration info
curl -H "X-API-Key: your-api-key" http://localhost:5000/config
# Available wordlists
curl -H "X-API-Key: your-api-key" http://localhost:5000/wordlists
# List capture files
curl -H "X-API-Key: your-api-key" http://localhost:5000/files| Variable | Default | Description |
|---|---|---|
API_KEY |
your-secret-api-key |
API authentication key |
RATE_LIMIT |
10 |
Requests per minute per IP |
SCAN_IFACE |
wlan0 |
Interface for scanning (auto-detected) |
MON_IFACE |
wlan1 |
Interface for monitor mode (auto-detected) |
CAP_DIR |
/home/jhye/captures |
Directory for capture files |
ATTACK_TIMEOUT |
900 |
Attack timeout in seconds |
WORDLIST_DIR |
/usr/share/wordlists |
Directory containing wordlists |
- API Key Authentication: All sensitive endpoints require valid API key
- Rate Limiting: Prevents abuse with configurable rate limits
- Input Validation: SSID validation prevents injection attacks
- Process Cleanup: Automatic cleanup of spawned processes
- Logging: Comprehensive audit trail of all operations
- Network Scanning: Uses
iw scanto discover available networks - Target Selection: Identifies target network BSSID and channel
- Monitor Mode: Switches interface to monitor mode for packet capture
- Handshake Capture: Uses
airodump-ngto capture WPA handshakes - Deauthentication: Uses
aireplay-ngto force client reconnections - Handshake Validation: Verifies captured handshake is valid
- Dictionary Attack: Uses
aircrack-ngwith multiple wordlists - Result Reporting: Returns cracked password or failure status
- Raspberry Pi with 2+ wireless interfaces OR single interface for fake mode
- USB WiFi adapters that support monitor mode
- aircrack-ng suite installed
This API is designed to work with the Wio Terminal WiFi interface. The Wio Terminal can:
- Display discovered networks from
/scanendpoint - Initiate attacks via
/startendpoint - Monitor progress through
/statusendpoint - Retrieve results from
/resultsendpoint
# List wireless interfaces
ip link show | grep wlan
# Check interface modes
iw dev# Check required tools
which aircrack-ng airodump-ng aireplay-ng# View real-time logs
tail -f wifi_api.logThe API automatically detects wordlists in standard locations:
/usr/share/wordlists/rockyou.txt/usr/share/wordlists/rockyou.txt.gz/usr/share/wordlists/fasttrack.txt- Custom directory via
WORDLIST_DIR
Setup script automatically downloads rockyou.txt if not present.
- Only use on networks you own or have explicit written permission to test
- Unauthorized access to wireless networks is illegal in most jurisdictions
- This tool is for security professionals and authorized penetration testing only
- Users are responsible for compliance with local laws and regulations