Identifier un AP non autorisé et un portail captif

Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez les étapes fondamentales pour identifier un point d'accès (AP) non autorisé et un portail captif malveillant. Un AP non autorisé est un point d'accès sans fil installé sur un réseau sans l'autorisation explicite du propriétaire du réseau. Les attaquants les utilisent souvent pour lancer des attaques de type "man-in-the-middle" afin d'intercepter le trafic.

Un portail captif est une page web que les utilisateurs doivent consulter et avec laquelle ils doivent interagir avant d'obtenir l'accès à un réseau public. Bien que de nombreux hotspots légitimes les utilisent, les attaquants peuvent créer les leurs pour usurper des identifiants (phishing).

Ce laboratoire simulera ce scénario dans un environnement sécurisé. Vous utiliserez des outils en ligne de commande pour scanner les réseaux, repérer un réseau suspect de type "evil twin" (jumeau maléfique), et analyser un faux portail captif pour l'identifier comme une menace.

Scan pour les réseaux Wi-Fi sur un appareil client

Dans cette étape, vous allez simuler la recherche des réseaux Wi-Fi disponibles. Dans un scénario réel, vous utiliseriez des outils tels que nmcli, iwlist ou airodump-ng. Pour ce laboratoire, nous avons préparé un script nommé scan-wifi.sh qui imite la sortie d'un scan réseau. Cela nous permet de réaliser le laboratoire sans nécessiter de matériel Wi-Fi physique.

Tous les fichiers de ce laboratoire se trouvent dans le répertoire ~/project. Exécutons le script pour voir la liste des réseaux Wi-Fi simulés.

Exécutez la commande suivante dans votre terminal :

~/project/scan-wifi.sh

Vous devriez voir une sortie similaire à celle-ci, listant les réseaux disponibles, leur puissance de signal et leur type de sécurité.

IN-USE  BSSID              SSID        MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
*       AA:BB:CC:11:22:33  CorpWifi    Infra  6     54 Mbit/s   90      ▂▄▆█  WPA2
        AA:BB:CC:44:55:66  CorpWifi    Infra  11    54 Mbit/s   95      ▂▄▆█  --
        DE:F0:12:34:56:78  GuestWifi   Infra  1     54 Mbit/s   70      ▂▄▆_  WPA2

Remarquer deux réseaux portant le même nom (ESSID)

Dans cette étape, vous allez analyser les résultats du scan pour repérer une anomalie. L'ESSID (Extended Service Set Identifier) est le nom public d'un réseau Wi-Fi.

Examinez attentivement la sortie de l'étape précédente. Vous devriez remarquer que deux réseaux différents partagent le même SSID, "CorpWifi". C'est un signe classique d'une attaque potentielle de type "Evil Twin". Un réseau est le réseau légitime, et l'autre est un AP non autorisé mis en place par un attaquant.

La différence clé se trouve dans la colonne SECURITY. Le réseau légitime utilise le chiffrement WPA2, tandis que le réseau non autorisé est ouvert (indiqué par --). Les attaquants créent souvent des réseaux ouverts car les utilisateurs sont plus susceptibles de s'y connecter sans avoir besoin d'un mot de passe.

Pour rendre cela plus clair, utilisons la commande grep pour filtrer la sortie et n'afficher que les réseaux nommés CorpWifi.

~/project/scan-wifi.sh | grep CorpWifi

Cette commande produira la sortie suivante, mettant en évidence les deux réseaux.

*       AA:BB:CC:11:22:33  CorpWifi    Infra  6     54 Mbit/s   90      ▂▄▆█  WPA2
        AA:BB:CC:44:55:66  CorpWifi    Infra  11    54 Mbit/s   95      ▂▄▆█  --

Connexion à la version ouverte (non chiffrée) du réseau

Dans cette étape, nous allons simuler la connexion au réseau suspect et ouvert "CorpWifi". Dans un scénario réel, le système d'exploitation de votre appareil gérerait la connexion. Pour notre simulation, la "connexion" impliquera le lancement d'un serveur web local qui agira comme portail captif de l'AP non autorisé.

Les fichiers de ce faux portail se trouvent dans le répertoire ~/project/portal. Nous allons exécuter un simple serveur web Python à partir de ce répertoire. Pour libérer notre terminal pour d'autres commandes, nous exécuterons le serveur en tant que processus d'arrière-plan.

Tout d'abord, changez votre répertoire courant vers ~/project/portal :

cd ~/project/portal

Ensuite, démarrez le serveur web Python en arrière-plan en utilisant le symbole & :

python3 server.py &

Vous verrez un identifiant de processus et un message de confirmation, indiquant que le serveur est en cours d'exécution.

[1] 1234
Serving captive portal on port 8000

Le serveur est maintenant en cours d'exécution et écoute les connexions sur le port 8000, simulant l'environnement du réseau non autorisé.

Observer la redirection automatique vers une page de connexion

Dans cette étape, vous verrez le portail captif en action. Après s'être connecté à un réseau doté d'un portail captif, toute tentative de navigation sur le web est généralement interceptée et redirigée vers une page de connexion ou de conditions d'utilisation.

Nous allons simuler cela en utilisant la commande curl pour tenter d'accéder à un site web. Étant donné que notre environnement réseau simulé est contrôlé par le serveur Python que nous venons de démarrer, toute requête HTTP sur localhost:8000 sera "capturée" et servie avec le fichier index.html de notre portail.

Utilisez curl pour effectuer une requête vers le serveur local. Cela imite la requête initiale d'un navigateur après la connexion au nouveau réseau.

curl http://localhost:8000

La commande retournera le code source HTML de la fausse page de connexion. Dans un vrai navigateur, ce code serait rendu sous forme de formulaire de connexion graphique.

<!DOCTYPE html>
<html>
  <head>
    <title>CorpWifi Login</title>
    <style>
      body {
        font-family: sans-serif;
        background: #f0f2f5;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        margin: 0;
      }
      .login-box {
        background: white;
        padding: 20px 40px;
        border-radius: 8px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        text-align: center;
      }
      input {
        margin: 10px 0;
        padding: 8px;
        width: 200px;
        border: 1px solid #ddd;
        border-radius: 4px;
      }
      button {
        padding: 10px 20px;
        background-color: #1877f2;
        color: white;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        width: 100%;
      }
    </style>
  </head>
  <body>
    <div class="login-box">
      <h2>CorpWifi Access</h2>
      <p>Please log in to continue.</p>
      <input type="text" placeholder="Username" />
      <br />
      <input type="password" placeholder="Password" />
      <br />
      <button>Log In</button>
      <p style="font-size: 12px; color: #888; margin-top: 15px;">
        Powered by CorpWifi-Login.net
      </p>
    </div>
  </body>
</html>

Reconnaître que l'URL n'est pas un domaine légitime

Dans cette dernière étape, vous effectuerez la vérification cruciale qui confirme qu'il s'agit d'un portail captif malveillant. L'objectif d'un tel portail est de vous inciter à saisir vos identifiants sur une fausse page. La manière la plus fiable de repérer une fausse page est d'inspecter le nom de domaine (URL).

Dans un navigateur réel, vous vérifieriez la barre d'adresse. Dans notre simulation, nous pouvons inspecter le contenu HTML à la recherche d'indices. En examinant le HTML de l'étape précédente, nous pouvons trouver une ligne de texte suspecte en bas. Utilisons grep pour la trouver dans le fichier index.html.

Tout d'abord, retournons au répertoire principal du projet.

cd ~/project

Maintenant, recherchez le texte suspect dans le fichier HTML du portail :

grep 'CorpWifi-Login.net' portal/index.html

La commande trouvera et affichera la ligne contenant le domaine suspect.

    <p style="font-size: 12px; color: #888; margin-top: 15px;">Powered by CorpWifi-Login.net</p>

Le domaine CorpWifi-Login.net est très suspect. Les attaquants enregistrent souvent des domaines qui semblent officiels mais ne le sont pas. Un portail d'entreprise légitime serait hébergé sur le domaine officiel de l'entreprise (par exemple, wifi.corp.com). Cette découverte confirme que le réseau ouvert est un AP non autorisé, et que la page de connexion est une tentative de phishing.

Résumé

Dans ce laboratoire, vous avez réussi à identifier un AP non autorisé et un portail captif malveillant par simulation. Vous avez appris un processus pratique, étape par étape, pour identifier les menaces Wi-Fi courantes.

Vous avez accompli les actions suivantes :

  • Scanné les réseaux Wi-Fi et identifié un "evil twin" non chiffré portant le même nom qu'un réseau sécurisé.
  • Simulé la connexion à l'AP non autorisé en démarrant un serveur local.
  • Observé comment un portail captif intercepte le trafic web et présente une page de connexion.
  • Analysé le contenu de la page de connexion pour trouver un nom de domaine suspect et non légitime, confirmant ainsi la tentative de phishing.

Le principal enseignement est de toujours se méfier des réseaux Wi-Fi ouverts et d'examiner attentivement l'URL de toute page de connexion avant de saisir des informations sensibles.

Enfin, arrêtons le processus du serveur en arrière-plan. Le %1 fait référence au premier processus en arrière-plan.

kill %1