(FR) Challenge NES 2 – Partie 3/5 : Capture Wifi

La partie 3 concerne le répertoire 02 qui contient les fichiers suivants :

readme.txt -> Nous indique que cette epreuve nous donnera 2 mots de passe : 1 pour le sniff02, et un autre pour le sniff03. Il s’agit donc de 2 sous épreuves bien distinctes.
sniff02.pcapng.gz -> Archive de la capture 02
sniff02_readme.txt ->  un texte qui nous donne deux infos utiles concernant la capture 02 :
– Le point d’accès apartient à un certain « Daniel »
– Il serait protegé par une « petite clef WEP »
sniff03.pcapng.gz ->Archive de la capture 03

sniff02.pcapng.gz

On commence par décompresser / convertir le fichier en .pcap afin de pouvoir le passer sur nos tools :

kriss@ROG ~> gunzip sniff02.pcapng.gz
kriss@ROG ~> tcpdump -r sniff02.pcapng -w sniff02_.pcap

Puis on jette un œil à la capture dans Wireshark :

il s’agit bien d’une capture de trafic 802.11 avec un AP : 90:f6:52:7f:a5:cd, et un SSID qui change plusieurs fois au cours de la capture : WEP, IS, SECURE, IF, YOU, DONT, HAVE, ENOUGH, IVs.

Dans ce genre de cas, le tool aircrack-ng est souvent d’une grande aide : il permet de cracker une clef WEP à partir de paquets contenant des Vecteurs d’Initialisation.

Voyons voir :

                                             Aircrack-ng 1.2 rc4


                             [00:00:04] Tested 132595 keys (got 303 IVs)

   KB    depth   byte(vote)
    0   30/ 31   FB( 768) 01( 512) 02( 512) 03( 512) 08( 512) 10( 512) 11( 512) 
    1   81/  1   FC( 512) 00( 256) 02( 256) 04( 256) 05( 256) 06( 256) 08( 256) 
    2    4/ 17   F2(1280) 46(1024) DD(1024) E8(1024) EB(1024) 05( 768) 11( 768) 
    3    2/ 10   47(1280) 08(1024) 0B(1024) 64(1024) 82(1024) B0(1024) E0(1024) 
    4   10/  4   F7(1024) 10( 768) 11( 768) 1B( 768) 22( 768) 3B( 768) 4B( 768) 

Failed. Next try with 5000 Ivs.

Fail donc et pour cause : aircrack se base sur une analyse statistique pour casser la clef WEP et 303 IVs sont bien sûr très insufisants pour déterminer la clef.

C’est le moment de se souvenir que l’indice associé à la capture parle d’une « petite clef  WEP ». Je sais pas vous, mais pour moi ça fait echo à « bruteforce »:P

La longueur des clefs WEP est fixe. La plupart des équipements acceptent des clefs de 40 bits, 104 ou 128 bits. En accord avec l’indice, nous allons d’abord nous concentrer sur des clefs de 40 bits = 10 caractères Hexa ou 5 caractères ASCII.

Qui dit bruteforce dit (entre autres) : John.

Pour aller droit a l’essentiel, et ne tester que des mots de passe de 5 caractères, passons par l’écriture d’une petite règle dans : /etc/john/john.conf

[Incremental:ASCII5]
File = $JOHN/ascii.chr
MinLen = 5
MaxLen = 5
CharCount = 95

Et on lance le bruteforce avec notre règle en passant l’output de john dans aircrack pour faire du bruteforce pur :

 kriss@ROG ~> john --incremental=ASCII5 --stdout | aircrack-ng -n 64 -a 1 -b 90:f6:52:7f:a5:cd sniff02_.pcap -w-

Après un total de … 8 secondes sur un vieux PC portable, on a notre clef qui confirme en plus l’autre indice du chall : le proprio de l’AP s’appelle Daniel :

 
                                 Aircrack-ng 1.2 rc4


                 [00:00:08] Tested 324327 keys (got 303 IVs)

   KB    depth   byte(vote)
    0    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
    1    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
    2    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
    3    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
    4    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 

                     KEY FOUND! [ 64:61:6E:69:31 ] (ASCII: dani1 )
	Decrypted correctly: 96%

On peut confirmer la clef en déchiffrant le pcap en utilisant cette dernière :

 
kriss@ROG ~> airdecap-ng sniff02_.pcap -w 64616E6931
Total number of packets read          7375
Total number of WEP data packets       506
Total number of WPA data packets         0
Number of plaintext data packets         7
Number of decrypted WEP  packets       506
Number of corrupted WEP  packets         0
Number of decrypted WPA  packets         0

Les paquets ainsi déchiffrés se présentent ainsi :

 

Rien de bien intéressant dans cette capture cela dit, mais on s’en moque, on a notre flag : Dani1

sniff03.pcapng.gz

Même chose pour extraire et convertir en pcap.

A l’ouverture, on se rend compte qu’on a à faire a du WPA2 cette fois :


J’ai pris le parti de passer ça directement dans aircrack avec la wordlist rockyou.txt :

 kriss@ROG ~> aircrack-ng -w /usr/share/wordlists/rockyou.txt sniff03.pcap

Sur un vieux PC portable (toujours), il faut compter un peu plus d’une heure pour parser toute la wordlist : c’est bourin, mais c’est jouable.

Au final, on trouve la clef en 45 minutes :

                             Aircrack-ng 1.2 rc4

      [00:41:30] 4628324/9822768 keys tested (1938.81 k/s) 

      Time left: 44 minutes, 40 seconds                         47.12%

                         KEY FOUND! [ janeimeelyzza ]


      Master Key     : B4 01 B7 44 64 DA FA 74 C3 D0 27 9D F5 EC 68 D1 
                       E2 04 E0 22 7A 55 7F C9 7D 62 B8 29 45 EE 6E 3F 

      Transient Key  : 13 3D 5D 24 71 74 03 12 10 69 FB F5 99 8A 32 93 
                       E0 02 10 70 7A DA BD D4 6C 3B AF 61 05 4B 1F B1 
                       31 80 15 87 50 E4 16 B4 88 41 DA B5 37 8D 48 11 
                       87 2A E5 FE C6 60 AA D3 75 26 C5 78 0D 5B 26 3D 

      EAPOL HMAC     : 82 57 97 17 C9 46 90 E0 1E 44 99 E7 B5 91 7A 07 

Ce qui nous donne notre deuxieme flag : janeimeelyzza


./Kriss