WiFi Pineapple Pager Payload
Automatically upload captured WPA/WPA2 handshakes from your WiFi Pineapple to a Hashtopolis distributed cracking server.
This payload integrates your WiFi Pineapple with Hashtopolis to create a seamless handshake-to-crack workflow:
- WiFi Pineapple captures a WPA handshake β Pager module detects the capture
- Payload validates β Tests server connection and API authentication
- Uploads handshake β Converts .22000 file to base64 and uploads via API
- Creates cracking task β Launches your preconfigured task against the new hashlist
- Notifies you β Shows success alert with hashlist ID and network details
Without this payload:
- Manually download handshakes from Pineapple
- Manually upload to Hashtopolis web interface
- Manually create task and assign hashlist
- Time-consuming, error-prone, requires device access
With this payload:
- Fully automated - capture β upload β crack
- Works remotely (Pineapple just needs internet)
- Instant cracking starts (agents begin work immediately)
- No manual intervention needed
- Perfect for red team engagements, pentests, or building a handshake collection
Deploy a WiFi Pineapple in a target area. As it captures handshakes throughout the day, they're automatically uploaded to your remote Hashtopolis server and distributed to your GPU cracking rigs. By the time you return to the office, you already have cracked passwords ready.
- WiFi Pineapple with internet connectivity
- Hashtopolis server (v0.5.0+) with API access
- Active Hashtopolis agents ready to crack
- Basic knowledge of Hashcat and wordlists
If you don't have Hashtopolis installed yet, follow the official installation guide:
π Installation Guide: https://docs.hashtopolis.org/installation_guidelines/basic_install/
- Log into your Hashtopolis web interface
- Navigate to: Users > API Management
- Click "Create API Key"
- Copy the generated key (you'll need this for
config.sh)
- Go to Files in the Hashtopolis menu
- Click "+ New File"
- Select File Type: Wordlist (0)
- Upload your favorite wordlist (e.g.,
rockyou.txt,crackstation.txt) - Optionally upload rule files (e.g.,
best64.rule,dive.rule)
π‘ Tip: You can also add files from URL:
https://github.com/hashcat/hashcat/raw/master/rules/best64.rule
This is the template that defines how handshakes will be cracked.
- Navigate to: Tasks > New Preconfigured Task
- Fill in the basic settings:
| Field | Value | Description |
|---|---|---|
| Name | Pager WPA Crack | Descriptive name for your task |
| Chunk Time | 600 |
Seconds per work chunk (default: 600) |
| Status Timer | 5 |
Update interval in seconds |
| Benchmark Type | speed |
Use "speed" for most cases |
| Priority | 100 |
Higher = more important (0-9999) |
| Max Agents | 0 |
0 = unlimited agents |
| CPU Only | β unchecked |
Allow GPU cracking |
| Small Task | β unchecked |
Leave unchecked for WPA |
- On the right side, check the boxes next to:
- Your wordlist file(s)
- Your rule file(s) (if using any)
Note: The attack command is automatically generated based on the files you select. You don't need to manually configure it.
-
Click "Create Preconfigured Task"
-
π Note the Task ID - you'll see it in the URL or task list
- Example:
https://your-server/hashtopolis/pretasks.php?id=7β Task ID is7
- Example:
- Navigate to: Config > Crackers
- Click on "hashcat"
- Find the Version ID for your hashcat version
- Modern Hashtopolis comes with version 7.1.2
- The version IDs are assigned sequentially (1, 2, 3, etc.)
- Note the Version ID number (not the version string)
Example: If you see:
Version ID: 1 | Version: 7.1.2
Version ID: 2 | Version: 6.2.6
Use CRACKER_VERSION_ID=1 for the latest version (7.1.2).
Copy the following files to your WiFi Pineapple:
payload.txt(the main script)config.sh(configuration file)
Place them in the same directory.
Edit config.sh with your settings:
# Server URL - Replace with your Hashtopolis server
export HASHTOPOLIS_URL="http://192.168.1.100/api/user.php"
# API Key - From Step 2.1
export API_KEY="abc123def456ghi789"
# Hash Type (22000 for WPA-PBKDF2-PMKID+EAPOL)
export HASH_TYPE=22000
# Preconfigured Task ID - From Step 2.3
# IMPORTANT: No quotes, must be a number
export PRETASK_ID=7
# Cracker Version ID - From Step 2.4
export CRACKER_VERSION_ID=1
# Access Group (usually 1 for default group)
export ACCESS_GROUP_ID=1
# Privacy Settings
export SECRET_HASHLIST=false
export USE_BRAIN=false
export BRAIN_FEATURES=0-
Enable the pager payload in your WiFi Pineapple
-
Capture a test handshake
-
Check for success alert with hashlist ID
-
Verify in Hashtopolis:
- Go to Hashlists - you should see a new entry with format
WPA_MAC_TIMESTAMP - Go to Tasks - a task should be running
- Check that agents are assigned and cracking
- Go to Hashlists - you should see a new entry with format
Use hash type 22000 for WPA/WPA2 handshakes:
22000= WPA-PBKDF2-PMKID+EAPOL (Hashcat 6.0+, standard)
This is the modern standard for WPA handshake cracking and is supported by all current versions of Hashtopolis (which includes Hashcat 7.1.2).
0- Lowest priority (background tasks)100- Normal priority (recommended)500- High priority1000+- Critical/urgent tasks
Uploaded hashlists are automatically named:
WPA_[SSID]_[AP_MAC_ADDRESS]_[UNIX_TIMESTAMP]
Example: WPA_AA:BB:CC:DD:EE:FF_1766719274
This makes it easy to:
- Identify which network the handshake came from
- Track when it was captured
- Search and filter in Hashtopolis
Error: "Cannot connect to server"
- Verify your Pineapple has internet connectivity
- Test the URL:
curl -X POST http://your-server/api/user.php -H "Content-Type: application/json" -d '{"section":"test","request":"connection"}' - Expected response:
{"section":"test","request":"connection","response":"SUCCESS"}
Error: "Invalid API endpoint"
- Ensure the URL ends with
/api/user.php - Check for typos in the URL
- Verify Hashtopolis is installed and accessible
Error: "Invalid API key"
- Verify the API key is copied correctly (no extra spaces)
- Regenerate the API key in Hashtopolis: Users > API Management
- Check that the key hasn't been deleted or expired
Error: "Pretask ID not configured"
- Create a preconfigured task in Hashtopolis
- Note the task ID from the URL or task list
- Set
PRETASK_IDinconfig.sh(without quotes, as a number)
Error: "Task creation failed"
- Verify the preconfigured task ID exists and is correct
- Check the Cracker Version ID is valid (Config > Crackers)
- Ensure you have permissions to run tasks
- Check that all required files (wordlists/rules) are uploaded
- Review task settings in Hashtopolis UI
Error: "Hashcat Brain Error"
- Brain is enabled (
USE_BRAIN=true) but not properly configured on the server - Either configure Brain on your Hashtopolis server (see API documentation, Hashlists section)
- Or disable Brain in
config.sh:USE_BRAIN=false - Brain requires:
- Brain server configured in Hashtopolis settings
- Agents with Brain support enabled
- Network connectivity between agents and Brain server
- Verify agents are connected (Agents menu in Hashtopolis)
- Check agent status (should be active and assigned)
- Review agent logs for errors
- Ensure hashcat binary is properly installed on agents
- Use HTTPS for production deployments to encrypt API traffic
- Consider VPN for Pineapple β Server communication
- Pre-installed options: Tailscale, WireGuard, or OpenVPN
- These provide secure tunnels without complex firewall rules
- Firewall Hashtopolis to trusted IPs only
- Set
SECRET_HASHLIST=trueif hashes contain sensitive data - Use access groups to restrict visibility
- Regularly audit user permissions
Enable distributed brain to avoid duplicate work:
export USE_BRAIN=true
export BRAIN_FEATURES=3 # Use both attack and plain brainRequirements:
- Brain server configured in Hashtopolis (Config > Server)
- Agents with brain support enabled
- Network connectivity between agents
Edit the preconfigured task to optimize for your hardware:
- Fast GPUs: Increase chunk time (e.g.,
1200seconds) - Slow CPUs: Decrease chunk time (e.g.,
300seconds) - Heterogeneous: Use default
600seconds
Create different task templates for various scenarios:
- Quick Crack - Common passwords, fast rules
- Deep Crack - Large wordlists, extensive rules
- Brute Force - Targeted mask attacks
- Emergency - High priority, all agents
Set the appropriate PRETASK_ID in config.sh based on your needs.
This payload uses the following Hashtopolis API calls:
test/connection- Verify API endpoint is accessibletest/access- Validate API key authenticationhashlist/createHashlist- Upload handshake filetask/runPretask- Launch cracking task from template
Full API documentation: https://docs.hashtopolis.org/
Found a bug or have a feature request? Contributions welcome!
- Hashtopolis: https://github.com/hashtopolis/server
- WiFi Pineapple: https://www.hak5.org/
- Hashcat: https://hashcat.net/
This payload follows the Hashtopolis contribution guidelines and is free for use with proper attribution.