Passons donc aux choses (un peu plus) sérieuses :
La partie 2 concerne le répertoire 01 qui contient 4 fichiers :
john.rules -> Un set de règles pour JTR, sans doute pour plus tard
Readme.txt -> Qui nous explique que l’épreuve doit nous permettre d’obtenir un mot en texte clair
sniff01.pcapng.gz -> Sans doute ce qui va nous servir
wl_fr_nes.7z -> Une wordlist, qui, comme on peut l’imaginer, nous servira avec le john.rules
sniff01.pcapng.gz
Première étape, ouvrir le pcap avec un wireshark :
Une session HTTP donc, avec ce qui nous saute au yeux : un get sur un fichier nommé « image01.png ».
On va donc extraire ce fichier de la capture pour voir de quoi il retourne, wireshark fait ça très bien :
Qui nous donne notre beau image01.png qui ressemble à …
image01.png
ça :
Voyant les nuances de gris (dont la valeur RVB correspond à peu près en général des valeurs décimales de caractères ASCII affichables), j’ai sauté sur cette intuition !
Intuition qui m’a fait perdre 15 minutes parce que la chaine de caractères qu’on trouvait était : « EXIF EST TON AMI ». Comme on dit, la solution la plus simple est souvent la meilleure (Bon ok, sauf sur des CTF).
Un exiftool nous donnait notre réponse, ou en tout cas, la première partie de notre réponse :
kriss@ROG ~> exiftool image01.png |grep -i token Keywords : {NES_challenge_token}:7114C77C4950447E9B17348B7C789F0D64142262
Cleartext word qu’ils ont dit !
On se retrouve donc avec un hash qui ressemble à un condensat SHA-1 :
######################################################################### # __ __ __ ______ _____ # # /\ \/\ \ /\ \ /\__ _\ /\ _ `\ # # \ \ \_\ \ __ ____ \ \ \___ \/_/\ \/ \ \ \/\ \ # # \ \ _ \ /'__`\ / ,__\ \ \ _ `\ \ \ \ \ \ \ \ \ # # \ \ \ \ \/\ \_\ \_/\__, `\ \ \ \ \ \ \_\ \__ \ \ \_\ \ # # \ \_\ \_\ \___ \_\/\____/ \ \_\ \_\ /\_____\ \ \____/ # # \/_/\/_/\/__/\/_/\/___/ \/_/\/_/ \/_____/ \/___/ v1.1 # # By Zion3R # # www.Blackploit.com # # Root@Blackploit.com # ######################################################################### ------------------------------------------------------------------------- HASH: Possible Hashs: [+] SHA-1
C’est bien du SHA-1 !
C’est le moment de se souvenir que dans le répertoire, on avait un fichier de règle john + une wordlist.
Un coup d’œil au fichier de règle nous permettait de voir qu’il était mal foutu niveau syntaxe (ouais ouais c’était voulu, pour voir si on suit bien, tout ça) mais nous indique que :
[List.Rules:NesSpecialRules_french]
# Uppercase first letter and l33t5p34k transform
# I love Cyber-ish things !
>12 <13 lcse3sE3sé3sè3
Il se trouve que le set de règles Jumbo de JTR (Jumbo patch) inclut ce type de transformations. C’est également l’occasion d’utiliser la wordlist fournie dans le même répertoire que le pcap
kriss@ROG ~/W/c/01> ~/TOOLS/john-1.8.0-jumbo-1/run/john hashdump.dmp --wordlist=wl_fr.txt --rules=Jumbo Loaded 1 password hash (Raw-SHA1 [SHA1 128/128 AVX 8x]) Will run 8 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status Cyb3rs3curit3 (?) 1g 0:00:00:06 DONE (2017-04-25 22:29) 0.1526g/s 11006Kp/s 11006Kc/s 11006KC/s Viroler4..Défris3rions Use the "--show" option to display all of the cracked passwords reliably Session completed kriss@ROG ~/W/c/01> ~/TOOLS/john-1.8.0-jumbo-1/run/john hashdump.dmp --show ?:Cyb3rs3curit3 1 password hash cracked, 0 left
Le mot « cybersecurite » est bien présent dans le dico, et la dérivation appliquée par le set de règles Jumbo – dont celle qui nous intéresse, décrite dans le john.rules (Uppercase first letter and l33t5p34k transform) – nous permet de casser le hash : Cyb3rs3curit3
Voilà donc le premier flag : Cyb3rs3curit3
./Kriss