CTF / WriteUp

WriteUp EncryptCTF 2019 – Crack-Jack

Challenge: Crack-Jack

Points: 50 pts

Catégorie: Forensics~Steganography

Ce challenge était disponible lors du CTF EncryptCTF debut Avril 2019.

Énoncé: Visuals are Deceptive

Fichiers: une image:

On commence direct dans le vif du sujet avec une image. On peut apercevoir sur l’image un fake flag “encryptCTF{NOt_7h@7_345y}”, ça annonce la couleur.

Pour faire de la stage dans les règles de l’art, analysons cette image dans son intégralité.

1. L’analyse de l’image

On commence avec le tool Aperisolve.fr, pour avoir un aperçu de la composition des couleurs de l’image:

Décomposition par couleurs puis superposition

On voit bien qu’il n’y a rien de spécial de caché du côté LSB de la force. Pas très grave.

2. Analyse des exifs

Passons aux exifs, ou les métadonnées pour les puristes:

Sur le site Aperisolve, on a un aperçu d’exiftool, un outil d’extraction des métadonnées:

exiftool sur l’image


Quelque chose d’intéressant en ressort: l’image possède une thumbnail, créée après l’image principale, et ajoutée grâce à Gimp.

Poursuivons l’analyse des exifs avec le site http://exif.regex.info/exif.cgi

exif de regex.info

Le site nous confirme bien la présence d’une thumbnail, qui est strictement similaire à l’image originale, mais redimensionnée.

3. L’analyse du fichier PNG

Passons aux choses sérieuses, l’analyse du fichier.
Voici le résultat de binwalk:

binwalk de l’image

Voilà qui est intéressant, il y a un zip caché dans l’image, et ce zip contient un “flag.txt”. Je vais donc extraire tout ça avec foremost, qui est plus adapté dans ce genre de situations. Une fois extrait, l’archive est chiffrée et il faut un mot de passe pour extraire flag.txt. Soit.

4. La partie chiante et pas drôle

BRUTEFORCE. Et oui. C’est de la steg donc faut bien un peu de guessing et de bruteforce non ?

trêves de plaisanteries, à partir de là, j’ai appris pas mal de choses en termes de bruteforce. Suivons la procédure que je me suis fixée:

  • Zip2john: Pour pouvoir utiliser JohnTheRipper sur l’archive il faut la convertir en “hash” que john peut cracker. Pour ce faire, rien d etel que zip2john: “zip2john archive.zip > archive.john”
  • John: Maintenant utilisons john avec toute sorte de wordlists (Rockyou, 500-worst-passwords, darkc0de et j’en passe). mais rien n’y fait.

De là je suis resté bloqué un moment, à tenter des trucs avec des wordlists trouvées sur des recoins sombres d’internet, mais rien n’y a fait. Il a fallu réfléchir !

La solution
La solution de cette épreuve m’a fait presque pleurer de désespoir, tant c’est un peu nul comme exo.
Il fallait constituer un dictionnaire avec des mots provenant de l’image (non non, pas ceux écrits en gros sur l’image), soit les “strings”…
commande:
strings flag.png > words.txt; john –wordlist=words.txt archive.john

Et voilà, le password de l’archive se trouvait être une string de l’image… “G^WBC[WLr3” pour être précis.

Je vais pas le cacher je suis assez déçu de ce challenge. L’étape bruteforce était vraiment de trop… surtout avec les strings de l’image. J’imagine que ça fait partie de “l’originalité” du challenge.

Flag: encryptCTF{C4acK!ng_7h3_Uncr4ck4bl3}

Auteur

Sicarius
Étudiant @ENSIBS et apprenti ingénieur en cybersécurité chez GIE CBP

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *