Introduction
Lors du craquage des handshakes WPA/WPA2 avec aircrack-ng, la méthode standard consiste à tester chaque mot de passe d'une liste de mots (wordlist). Pour chaque mot de passe, aircrack-ng doit calculer une Pairwise Master Key (PMK) et la comparer au handshake capturé. Ce calcul à la volée peut prendre beaucoup de temps, surtout avec de grandes listes de mots.
L'outil airolib-ng offre une optimisation puissante. Il vous permet de pré-calculer toutes les PMK pour un réseau spécifique (ESSID) et une liste de mots donnée, en les stockant dans une base de données. Lorsque vous lancez l'attaque, aircrack-ng peut utiliser cette base de données pour simplement rechercher les PMK au lieu de les calculer, ce qui entraîne une augmentation spectaculaire de la vitesse de craquage.
Dans ce laboratoire, vous apprendrez à utiliser une base de données airolib-ng pré-construite pour craquer un handshake WPA et à comparer ses performances à une attaque standard basée sur une liste de mots.
Capture d'un Handshake WPA pour un ESSID dans votre Base de Données
Dans cette étape, nous allons inspecter le fichier de capture fourni pour confirmer qu'il contient un handshake WPA valide. Pour ce laboratoire, un fichier de capture nommé wpa.cap a été placé dans votre répertoire ~/project. Ce fichier contient un handshake à quatre voies capturé pour le réseau que nous allons cibler.
Utilisons aircrack-ng pour visualiser le contenu de ce fichier. Cette commande ne lance pas d'attaque ; elle analyse simplement le fichier et affiche un résumé des réseaux qu'il contient.
Exécutez la commande suivante dans votre terminal :
aircrack-ng wpa.cap
Vous devriez voir une sortie listant les réseaux sans fil trouvés dans le fichier de capture. Notez l'ESSID (le nom du réseau) et la confirmation qu'un handshake a été capturé.
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
(press CTRL+C to abort)
Vous pouvez appuyer sur CTRL+C pour quitter l'invite de aircrack-ng. L'information importante est que nous avons un handshake pour l'ESSID teddy. C'est le réseau que nous allons cibler.
Construction de la Commande aircrack-ng pour l'Attaque
Dans cette étape, nous allons commencer à construire la commande aircrack-ng pour notre attaque. La syntaxe de base pour une attaque WPA est aircrack-ng [options] <fichier de capture>.
Pour rendre l'attaque plus efficace, surtout lorsqu'un fichier de capture contient plusieurs réseaux, nous pouvons spécifier notre cible en utilisant le paramètre -e suivi de l'ESSID. D'après l'étape précédente, notre ESSID cible est teddy.
Ajoutons ceci à notre commande :
aircrack-ng -e teddy
Cette commande n'est pas encore complète. aircrack-ng doit encore savoir d'où obtenir les mots de passe ou les PMK à tester. Dans une attaque standard, nous utiliserions l'indicateur -w pour fournir une liste de mots (wordlist). Cependant, pour ce laboratoire, nous utiliserons notre base de données airolib-ng pré-calculée. Nous ajouterons le paramètre pour la base de données à l'étape suivante.
Spécification de la Base de Données avec le Paramètre -r
Dans cette étape, nous allons compléter notre commande en indiquant à aircrack-ng d'utiliser la base de données airolib-ng. Le paramètre pour cela est -r (qui signifie "read database" - lire la base de données).
Lors du processus de configuration de ce laboratoire, une base de données nommée mydb a été créée dans votre répertoire ~/project. Cette base de données contient les PMK pré-calculés pour l'ESSID teddy et les mots de passe du fichier wordlist.txt.
Maintenant, combinons tous les éléments : la commande aircrack-ng, l'ESSID cible (-e teddy), la base de données (-r mydb) et le fichier de capture (wpa.cap).
La commande finale est :
aircrack-ng -e teddy -r mydb wpa.cap
Cette commande demande à aircrack-ng de :
- Cibler le réseau avec l'ESSID
teddy. - Utiliser les PMK pré-calculés de la base de données
mydb. - Tester ces PMK par rapport au handshake trouvé dans
wpa.cap.
À l'étape suivante, nous exécuterons cette commande et observerons les résultats.
Lancement de l'Attaque et Observation de la Vitesse de Cassage
Dans cette étape, il est temps de lancer l'attaque en utilisant notre commande entièrement construite. En utilisant la base de données pré-calculée, nous nous attendons à ce que le processus de cassage soit extrêmement rapide.
Exécutez la commande suivante dans votre terminal :
aircrack-ng -e teddy -r mydb wpa.cap
Le programme démarrera, ouvrira la base de données et le fichier de capture, et trouvera presque instantanément la clé correcte.
Votre sortie devrait ressembler à ceci :
Opening mydb
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening mydb
Attack will be restarted every 5000 PMKs.
Starting attack on ESSID teddy...
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Remarquez la rapidité avec laquelle le message KEY FOUND! est apparu. Le mot de passe est biscotte. Comme les PMK ont déjà été calculés et stockés dans la base de données mydb, aircrack-ng n'a eu qu'à effectuer une recherche et une comparaison rapides, et non les calculs cryptographiques intensifs.
Comparaison des Performances avec une Attaque par Liste de Mots Standard
Dans cette étape, pour apprécier pleinement la vitesse de la méthode de base de données airolib-ng, nous allons effectuer la même attaque en utilisant la méthode traditionnelle de liste de mots. Cela nous permettra de constater directement la différence de performance.
Dans une attaque standard, nous utilisons le paramètre -w pour spécifier un fichier de liste de mots. aircrack-ng lira alors chaque mot de passe du fichier, calculera son PMK et le testera.
Le processus de configuration a créé un fichier nommé wordlist.txt à cet effet. Lançons l'attaque en utilisant ce fichier.
Exécutez la commande suivante :
aircrack-ng -e teddy -w wordlist.txt wpa.cap
Vous verrez aircrack-ng démarrer et commencer à tester les clés. Portez attention à l'affichage de l'état, qui montre le nombre de clés testées et la vitesse actuelle en clés par seconde (k/s).
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening wpa.cap
Opening wordlist.txt
Reading passwords from wordlist.txt
[0:00:00] 2 keys tested (XXXX.XX k/s)
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Bien que la clé soit toujours trouvée rapidement car notre liste de mots est très petite, remarquez qu'il y a eu un processus mesurable de test des clés. Avec une grande liste de mots contenant des millions de mots de passe, ce processus prendrait un temps considérable. L'attaque par base de données, en revanche, a été quasi instantanée car la partie la plus coûteuse en calculs avait déjà été effectuée.
Résumé
Dans ce laboratoire, vous avez réussi à casser une poignée de main WPA en utilisant une base de données airolib-ng pré-calculée. Vous avez appris à construire la commande aircrack-ng en utilisant le paramètre -r pour spécifier la base de données et avez observé ses performances quasi instantanées.
En comparant cela à une attaque standard par liste de mots utilisant le paramètre -w, vous avez constaté l'avantage significatif en termes de vitesse du pré-calcul des PMK. Cette technique est inestimable pour les professionnels de la sécurité lorsqu'ils ciblent un réseau spécifique avec un grand dictionnaire de mots de passe potentiels, car elle sépare la phase de calcul chronophage de la phase de cassage finale.
