LeHack 19 - #ECSC Amok

Posted on dim. 07 juillet 2019 in CTF

File : 103_spx.zip

ECSC# 103_spx
80 Points
tu fais du forensic? bah t'as pas besoin de description, nah!

Url: https://static.wargame.rocks/103_spx.zip

Bon, on a pas beaucoup de texte pour nous aider. On récupère donc l'archive et on extrait son contenu.

$ unzip 103_spx.zip
Archive:  103_spx.zip
  inflating: USB_a_analyser

On récupère ainsi un fichier. La commande file nous permet de connaitre le type de fichier et comment on va pouvoir le manipuler :

$ file USB_a_analyser
USB_a_analyser: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS    ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 62, heads 8, dos < 4.0 BootSector (0x80), FAT (1Y bit by descriptor); NTFS, sectors/track 62, sectors 507903, $MFT start cluster 4, $MFTMirror start cluster 31743, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 06d84ef355f47cf91

On peut donc monter ce fichier comme lecteur (lecture seule optionnelle mais évite d'altérer les données) et regarder le contenu :

# montage en lecture seule afin de ne pas altérer les données
$ mount USB_a_analyser forensic -o ro
$ cd forensic
$ ls -alh
total 101K
drwxrwxrwx  1 root root 4.0K Jul  6 14:14  .
drwxrwxrwt 22 root root 4.0K Jul 14 21:19  ..
-rwxrwxrwx  1 root root  577 Jul  6 14:10  message.txt
-rwxrwxrwx  1 root root  15K Jul  6 01:46  Peugeot103SPXFILI.jpg
drwxrwxrwx  1 root root 8.0K Jul  6 14:12 'Peugeot 103 SPX : tous les modèles de 1987 à 2003 | Actualités de la mobylette par Mobylette Mag_files'
-rwxrwxrwx  1 root root  68K Jul  6 14:12 'Peugeot 103 SPX : tous les modèles de 1987 à 2003 | Actualités de la mobylette par Mobylette Mag.html'
drwxrwxrwx  1 root root    0 Jul  6 14:14  .Trash-1000

On remarque un fichier message.txt :

$ cat message.txt
Si un jour je relis ce message, le mot de passe utilisé pour chiffrer mon plus grand secret était "vgrohhfyek0wkfi5fv13anexapy3sso6" et j'avais utilisé openssl.
En revanche, j'ai effacé par erreur le fichier contenant mon plus grand secret (voir s'il existe des techniques de la mort pour le retrouver mon fichier secret.xz sha256(0fb08681c2f8db4d3c127c4c721018416cc9f9b369d5f5f9cf420b89ee5dfe4e) de 136 octets) et de toute façon, impossible de me rappeler de l'algo utilisé -_- (donc si je le retrouve... il faudra aussi retrouver l'algo pour utiliser ce mot de passe).

Il nous donne plusieurs informations :

  • Le mot de passe utilisé lors du chiffrement du fichier recherché. On a pas l'algorithme utilisé cependant.
  • Le nom du fichier à trouver.
$ ls .Trash-1000/files -alh
total 201K
drwxrwxrwx 1 root root 4.0K Jul  6 14:14  .
drwxrwxrwx 1 root root    0 Jul  6 14:14  ..
drwxrwxrwx 1 root root 4.0K Jul  6 14:13 "CERT-FR – Centre gouvernemental de veille, d'alerte et de réponse aux attaques informatiques_files"
-rwxrwxrwx 1 root root  33K Jul  6 14:13 "CERT-FR – Centre gouvernemental de veille, d'alerte et de réponse aux attaques informatiques.html"
drwxrwxrwx 1 root root 4.0K Jul  6 14:12 'Peugeot 103 — Wikipédia_files'
-rwxrwxrwx 1 root root 151K Jul  6 14:12 'Peugeot 103 — Wikipédia.html'
-rwxrwxrwx 1 root root  136 Jul  6 14:09  secret.xz

On peut vérifier le hash du fichier avec celui indiqué dans le message :

$ sha256sum .Trash-1000/files/secret.xz
0fb08681c2f8db4d3c127c4c721018416cc9f9b369d5f5f9cf420b89ee5dfe4e  .Trash-1000/files/secret.xz

On a donc bien notre fichier. On le copie et on en extrait le contenu :

$ xz -d secret.xz
$ cat secret
Salted__��k��.�@���>�#��z���
�S�n���!��O�ND�5����k�b=��N-�㖿�,��s�٪#

Le message est bien encodé et salé. Il est possible de tester tout les algorithmes proposés par la commande openssl à la main, mais cela risque de prendre du temps. On peut donc utiliser des scripts qui les testent pour nous :

# git clone https://github.com/penthium2/salt_pepper.git .
$ ./salt_pepper/salt-pepper -f secret -p "vgrohhfyek0wkfi5fv13anexapy3sso6"
$ cat FLAGS/*
flag : lh_6c31ba64e522b5f9326b7bee0abef6547f60d214
[...]

Et voilà :). On a bien notre flag qui s'affiche : lh_6c31ba64e522b5f9326b7bee0abef6547f60d214. Le chiffrement utilisé est