A macOS Wi-Fi security testing tool for analyzing WPA/WPA2 network security.
This tool is provided for EDUCATIONAL PURPOSES ONLY. Only use AirJack on networks you own or have explicit permission to test. Unauthorized access to computer networks is illegal and punishable by law.
- Scan for nearby Wi-Fi networks
- Capture WPA/WPA2 handshakes
- Perform dictionary or brute-force attacks
- Configurable via command line or config files
- Detailed logging and verbose mode
- macOS (uses CoreWLAN and CoreLocation)
- Python 3.7+
These tools must be installed separately:
- hashcat - Password recovery utility
- zizzania - WPA handshake capture tool
- hcxpcapngtool - Conversion tool for handshake captures
bash -c "$(curl -fsSL https://raw.githubusercontent.com/rtulke/AirJack/main/install.sh)"
pip install -r requirements.txt
- Clone the repository:
git clone https://github.com/yourusername/AirJack.git
cd AirJack
- Install Python dependencies:
pip install -r requirements.txt
- Install external tools:
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install hashcat and hcxtools
brew install hashcat hcxtools
# Install zizzania
git clone https://github.com/cyrus-and/zizzania.git ~/zizzania
cd ~/zizzania
make
- Setup System wide
# Copy AirJack script to `/usr/local/bin/airjack`
sudo cp AirJack.py /usr/local/bin/airjack
sudo chmod +x /usr/local/bin/airjack
# Install man page and updating mandb
sudo cp airjack.1 /usr/local/share/man/man1/
sudo mandb
# Use the AirJack script from any directory
$ airjack -h
# Create default configuration (optional)
$ airjack.py -C ~/.airjack.conf
# Uou can also try to edit the new generated configuration file
$ vim ~/.airjack.conf
# Try using the manual
$ man airjack
python AirJack.py
This will:
- Scan for available networks
- Allow you to select a target network
- Capture a handshake
- Provide options for cracking the handshake
Configuration:
-c CONFIG, --config CONFIG
Path to configuration file
-C PATH, --create-config PATH
Create a default configuration file at the specified path
Network Selection:
-i INTERFACE, --interface INTERFACE
Network interface to use
-n INDEX, --network-index INDEX
Select network by index (skips interactive selection)
Capture Options:
-d, --deauth Enable deauthentication (default: disabled)
--capture-file FILE Output capture file (default: capture.pcap)
Cracking Options:
-m MODE, --mode MODE Attack mode: 1=Dictionary, 2=Brute-force, 3=Manual
-w FILE, --wordlist FILE
Path to wordlist for dictionary attack
-p PATTERN, --pattern PATTERN
Pattern for brute-force attack
-o, --optimize Enable hashcat optimization
Misc Options:
--auth-timeout SECONDS
Timeout for location authorization (default: 60 seconds)
--cleanup Clean up sensitive files after completion
--dry-run Simulate actions without running external tools
-v, --verbose Enable verbose output
AirJack supports configuration files in INI format. The tool checks for configuration in this order:
- Custom config specified with
-c/--config
- User config at
~/.airjack.conf
- System config at
/etc/airjack.conf
Example configuration:
[General]
capture_file = capture.pcap
hashcat_file = capture.hc22000
auth_timeout = 60
cleanup = false
[Paths]
hashcat_path = /usr/local/bin/hashcat
zizzania_path = /usr/local/bin/zizzania
[Defaults]
interface = en0
deauth = false
optimize = true
verbose = false
python AirJack.py -n 1 -m 1 -w /path/to/wordlist.txt -o
python AirJack.py -m 2 -p "?d?d?d?d?d?d?d?d" -o
python AirJack.py -c /path/to/custom/config.conf
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -am 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request