Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
krackattacks-scripts — Scripts pour vérifier les clients WPA2 et les APs contre les vulnérabilités de réinstallation de clé KRACK en utilisant hostapd modifié et la relecture de trames en mode moniteur. | Kitploit
Outils/GitHubGitHub/vanhoefm/krackattacks-scripts
Audit Wi-FiAnalyse des VulnérabilitésSécurité Sans FilTests d'IntrusionTop en Audit Wi-Fi n°10Top en Sécurité Sans Fil n°10

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
vanhoefm/krackattacks-scripts

krackattacks-scripts

Scripts pour vérifier les clients WPA2 et les APs contre les vulnérabilités de réinstallation de clé KRACK en utilisant hostapd modifié et la relecture de trames en mode moniteur.

Voir le dépôt
3.5k76666il y a 1 anVérifié par Kitploit

Ce projet contient des scripts pour tester si les clients ou points d'accès (AP) sont affectés par l'attaque KRACK contre WPA2. Pour plus de détails sur cette attaque, consultez notre site web et l'article de recherche.

Rappelez-vous que nos scripts ne sont pas des scripts d'attaque ! Vous aurez besoin des identifiants réseau appropriés pour tester si un point d'accès ou un client est affecté par l'attaque KRACK.

Décembre 2024 : un bug a été corrigé dans le 7ème test ./krack-test-client.py --gtkinit. Avant cette correction, il était mentionné que (la sortie de) ce test n'était pas fiable, mais maintenant la sortie devrait être digne de confiance lorsque l'on suit les nouvelles instructions. C'est-à-dire que lorsque ce test indique désormais que l'appareil est vulnérable, il est effectivement probablement vulnérable.

Janvier 2021 : les scripts ont été rendus compatibles avec Python3 et ont été mis à jour pour mieux prendre en charge les distributions Linux récentes. Si vous souhaitez revenir à l'ancienne version, exécutez git fetch --tags && git checkout v1 après avoir cloné le dépôt (puis revenez à la dernière version en utilisant git checkout research).

Prérequis

Nos scripts ont été testés sur Kali Linux. Pour installer les dépendances requises sur Kali, exécutez :

sudo apt update
sudo apt install libnl-3-dev libnl-genl-3-dev pkg-config libssl-dev net-tools git sysfsutils python3-venv iw

Maintenant, compilez notre instance hostapd modifiée et créez un environnement virtuel python. Cela garantit que vous utilisez des bibliothèques python compatibles (celles listées dans krackattack/requirements.txt) :

git clone https://github.com/vanhoefm/krackattacks-scripts.git
cd krackattacks-scripts/krackattack
./build.sh
./pysetup.sh

Ensuite, désactivez le chiffrement matériel pour des résultats optimaux :

cd krackattack
sudo ./disable-hwcrypto.sh

Notez que si nécessaire, vous pouvez réactiver plus tard le chiffrement matériel en utilisant le script sudo ./reenable-hwcrypto.sh. Il est recommandé de redémarrer après avoir désactivé le chiffrement matériel. Nous avons testé nos scripts avec un Intel Dual Band Wireless-AC 7260 et un TP-Link TL-WN722N v1 sur Kali Linux.

Avant chaque utilisation

Chaque fois avant d'utiliser les scripts, vous devez désactiver le Wi-Fi dans votre gestionnaire de réseau. Ensuite, exécutez :

sudo rfkill unblock wifi
cd krackattack
sudo su
source venv/bin/activate

Après cela, vous pouvez exécuter les scripts plusieurs fois tant que vous ne fermez pas le terminal.

Si vous souhaitez annuler les effets de disable-hwcrypto.sh, supprimez le fichier /etc/modprobe.d/nohwcrypt.conf.

Tester les clients

Modifiez d'abord hostapd/hostapd.conf et éditez la ligne interface= pour spécifier l'interface Wi-Fi qui sera utilisée pour exécuter les tests. Notez que pour tous les tests, une fois le script en cours d'exécution, vous devez laisser l'appareil testé se connecter au SSID testnetwork en utilisant le mot de passe abcdefgh. Vous pouvez modifier les paramètres du point d'accès en modifiant hostapd/hostapd.conf. Dans tous les tests, le client doit utiliser DHCP pour obtenir une adresse IP après s'être connecté au réseau Wi-Fi. Cela est dû au fait que certains tests ne démarrent qu'après que le client a demandé une adresse IP via DHCP !

Vous devez maintenant exécuter les tests suivants situés dans le répertoire krackattacks/ :

  1. ./krack-test-client.py --replay-broadcast. Ce test vérifie si le client accepte les trames broadcast rejouées. Si le client accepte les trames broadcast rejouées, cela doit être corrigé en premier. Si vous ne corrigez pas le client, notre script ne pourra pas déterminer si la clé de groupe est en cours de réinstallation (car le script dira alors toujours que la clé de groupe est en cours de réinstallation).

  2. ./krack-test-client.py --group --gtkinit. Ce test vérifie si le client installe la clé de groupe dans la poignée de main de clé de groupe avec le compteur de séquence de réception (RSC) donné. Voir la section 6.4 de notre article de recherche de suivi pour les détails de cette vulnérabilité.

  3. ./krack-test-client.py --group. Ce test vérifie si le client réinstalle la clé de groupe dans la poignée de main de clé de groupe. En d'autres termes, il teste si le client est vulnérable à CVE-2017-13080. Le script teste les réinstallations de la clé de groupe en envoyant des requêtes ARP broadcast au client en utilisant un numéro de paquet déjà utilisé (rejoué) (ici numéro de paquet = nonce = IV). Notez que si le client accepte toujours les trames broadcast rejouées (voir --replay-broadcast), ce test pourrait conclure à tort que la clé de groupe est en cours de réinstallation.

  4. ./krack-test-client.py. Ce test vérifie les réinstallations de clé dans la poignée de main à 4 voies en envoyant à plusieurs reprises des messages 3 chiffrés au client. En d'autres termes, il teste CVE-2017-13077 (la vulnérabilité ayant le plus grand impact) et CVE-2017-13078. Le script surveille le trafic envoyé par le client pour voir si la clé par paire est en cours de réinstallation. Notez que cela effectue en réalité deux tests : si la clé par paire est réinstallée, et si la clé de groupe est réinstallée. Assurez-vous que le client demande une adresse IP via DHCP pour que le test de réinstallation de la clé de groupe démarre. Pour garantir que le client envoie suffisamment de trames unicast, vous pouvez éventuellement pinger le point d'accès : ping 192.168.100.254.

  5. ./krack-test-client.py --tptk. Identique au test 4, sauf qu'un message 1 forgé est injecté avant l'envoi du message 3 chiffré. Cette variante du test est importante car certains clients (par exemple wpa_supplicant v2.6) ne sont vulnérables aux réinstallations de la clé par paire dans la poignée de main à 4 voies que lorsqu'un message 1 forgé est injecté avant l'envoi d'un message 3 retransmis.

  6. ./krack-test-client.py --tptk-rand. Identique au test ci-dessus, sauf que le message 1 forgé contient un ANonce aléatoire.

  7. ./krack-test-client.py --gtkinit. Ce test vérifie si le client installe la clé de groupe dans la poignée de main à 4 voies avec le compteur de séquence de réception (RSC) donné. Cela est fait en retransmettant Msg3/4 de la poignée de main à 4 voies, à chaque fois avec une nouvelle clé de groupe et un compteur de rejeu très élevé. Nous savons qu'il est vulnérable si le client testé accepte ensuite les trames broadcast avec un compteur de rejeu plus faible. Malheureusement, certains clients n'acceptent pas du tout les Msg3/4 retransmis, ce qui signifie que ces clients ne peuvent pas être testés avec cette commande. Les clients qui acceptent un Msg3/4 retransmis, et qui peuvent donc être testés avec cette commande, répondront avec un Msg4/4 qui peut être détecté sur la base de la sortie suivante :

    [09:24:11] 02:20:2a:22:a8:30: received a new message 4
    

    Nous recommandons également d'exécuter ce test dans des environnements avec peu de bruit de fond et de l'exécuter plusieurs fois.

Quelques remarques supplémentaires :

  • Le test le plus important est ./krack-test-client, qui teste les réinstallations ordinaires de clé dans la poignée de main à 4 voies.

  • Effectuez ces tests dans une pièce avec peu d'interférences. Un taux élevé de perte de paquets rendra ce script moins fiable !

  • Vous pouvez éventuellement inspecter manuellement le trafic réseau pour confirmer la sortie du script (certaines cartes Wi-Fi peuvent interférer avec nos scripts) :

Télécharger l’outil