Solution de jolibert pour 103_spx

forensics disk

6 décembre 2023

On essaye de déterminer le type de fichier que l’on vient de télécharger

$ 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 le monte rapidement en lecture seule dans le chemin /media

$ sudo mount -r USB_a_analyser /media/

On remarque un fichier avec une extension .txt

$ cat /media/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).

Celui-ci nous indique un condensat qui correspond au fichier qui contient un secret. On le retrouve dans le chemin /.Trash-1000/files/secret.xz avec le bon condensat.

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

On le copie dans un répertoire ou on va pouvoir l’édudier

$ cp /media/.Trash-1000/files/secret.xz .

Il semble être compressé

$ file secret.xz
secret.xz: XZ compressed data, checksum CRC64

On le décompresse

$ unxz secret.xz
$ file secret
secret: openssl enc'd data with salted password

Le message de début nous indique que l’algorithme à été perdu. On fait une boucle sur tous les algorithmes gérés par openssl.

$ for s in $(openssl enc -ciphers); do s="${s:1}"; openssl $s -d -in secret -out file_$s -k vgrohhfyek0wkfi5fv13anexapy3sso6; done

Un grep sur tous les fichiers générés avec la chaîne de caractères “lh_” donné en énoncé nous donne le secret.

$ grep lh_ *
file_aes-192-ecb:flag : (REDACTED)