pyrit
Crack WPA/WPA2 wireless network passwords
TLDR
Display system cracking speed
List available cores
Set [e]SSID
[r]ead and analyze a specific packet capture file
Read and [i]mport passwords to the current database
Exp[o]rt passwords from database to a specific file
Translate passwords with Pired Master Keys
[r]ead the capture file and crack the password
SYNOPSIS
pyrit
pyrit is a multi-command tool where command can be one of many sub-commands, each with its own specific options and arguments. Common commands include:
Database Management: import_passwords, import_essid, list_essids, list_passwords, purge_db, reset_db
Attack/Cracking: attack_db, eval
Capture/Conversion: deauth, convert_raw_to_cap
Utility: benchmark, test, get_wlan_info
PARAMETERS
--help
Displays the help message for the general command or a specific sub-command.
--version
Shows the Pyrit version information.
--verbose
Increases the verbosity of the output.
--all-cores
Utilizes all available CPU cores for computations.
--gpu
Specifies the GPU device to use by its index (e.g., --gpu 0).
--opencl-device
Selects a specific OpenCL device by index for computation.
-i
Specifies an input file, often a capture file (e.g., .cap, .pcap).
-o
Specifies an output file for results or converted data.
--essid
Specifies the Extended Service Set Identifier (network name) to target.
--password
Provides a specific password to test or for pre-computation.
--input
Alias for -i, specifies the input file.
--output
Alias for -o, specifies the output file.
--pmk-file
Specifies a file containing pre-computed PMKs to use.
--file
Generic file path argument used by various commands.
--daemon
Runs Pyrit as a daemon process for remote control.
DESCRIPTION
Pyrit is a powerful, highly optimized Python-based tool designed for auditing and cracking WPA/WPA2-PSK encrypted wireless networks. Its primary strength lies in its ability to leverage the computational power of modern GPUs (via NVIDIA CUDA or OpenCL) to significantly accelerate the process of pre-computing Pairwise Master Keys (PMKs) and performing dictionary attacks against captured WPA/WPA2 handshakes.
Unlike simple dictionary attacks, Pyrit can store a vast database of pre-computed PMKs for known SSIDs and passphrases, drastically reducing the time required to crack subsequent handshakes for the same SSID-passphrase combination. It supports various database backends like PostgreSQL or SQLite for efficient storage and retrieval of SSIDs, captured handshakes, and pre-computed PMK tables.
While Pyrit is particularly effective for brute-force and dictionary attacks against WPA/WPA2-PSK, it also offers functionalities for capturing 802.11 traffic, managing databases, and benchmarking system performance. It aims to provide an efficient and scalable solution for Wi-Fi security auditing and passphrase recovery.
CAVEATS
Hardware Dependency: Pyrit heavily relies on GPU acceleration for optimal performance. Without a compatible NVIDIA (CUDA) or AMD (OpenCL) GPU, its cracking speed can be significantly slower, often making it less efficient than CPU-only alternatives for some tasks.
Dependencies: Setting up Pyrit can be complex due to its dependencies on various libraries, including those for GPU computation (CUDA Toolkit, OpenCL SDK), database connectors (e.g., psycopg2 for PostgreSQL), and specific Python versions.
Ethical Use: Pyrit is a powerful tool. It should only be used for legitimate security auditing of networks for which you have explicit permission, or for recovering your own forgotten passphrases. Unauthorized use is illegal and unethical.
Development Status: Active development on Pyrit has slowed down considerably in recent years, with hashcat often being the preferred tool for WPA/WPA2 cracking due to its continued development and broader hardware support.
DATABASE INTEGRATION
Pyrit leverages a database (typically PostgreSQL or SQLite) to efficiently manage and store crucial information. This includes SSIDs, the actual captured 802.11 handshakes, and most importantly, vast tables of pre-computed Pairwise Master Keys (PMKs). Storing these PMKs allows Pyrit to avoid re-calculating them for every attack, significantly speeding up subsequent cracking attempts against the same SSID-passphrase combinations.
GPU ACCELERATION
The core strength of Pyrit lies in its highly optimized use of GPU acceleration. It supports both NVIDIA CUDA and OpenCL frameworks, enabling it to offload intensive PMK calculations to graphics cards. This parallel processing capability allows Pyrit to achieve cracking speeds orders of magnitude faster than traditional CPU-bound methods, making it exceptionally efficient for large-scale dictionary attacks and brute-force attempts.
HISTORY
Pyrit was developed by Lukas Lueg, emerging as a significant tool in the realm of WPA/WPA2-PSK cracking. Its inception was driven by the desire to leverage the immense parallel processing capabilities of GPUs to accelerate the computationally intensive process of pre-computing PMKs and performing dictionary attacks. It quickly gained popularity for its superior performance compared to CPU-only alternatives available at the time. Pyrit distinguished itself by introducing the concept of storing pre-computed PMKs in a database, allowing for rapid re-cracking of handshakes from known SSIDs and passphrases without redundant calculations. While still functional, its active development has somewhat tapered off, with other tools like hashcat now leading the charge in GPU-accelerated cracking.
SEE ALSO
aircrack-ng(8), hashcat(1), wireshark(1), reaver(1)