Démarche classique
Le fichier sur lequel on travaille est une image :
$ file rituel-en-chaine.img
rituel-en-chaine.img: Linux rev 1.0 ext4 filesystem data, UUID=cf4be332-d2f6-4908-bea7-fa51577f1765 (extents) (64bit) (large files) (huge files)
C’est toujours un bon réflexe d’utiliser l’utilitaire file
pour avoir une petite idée du contenu d’un fichier.
Bien entendu, une première approche consiste à monter le fichier avec l’option loopback.
$ mount -o loopback rituel-en-chaine.img /mnt
Mais le contenu est vide, on note tout de même le répertoire des objets trouvés (lost+found
) qui généralement contient des fichiers orphelins (sans répertoire parent).
On démonte, et on s’inspire des instructions pour faire un ‘strings’ sur le fichier image. Cependant le fichier a été modifié. Il aurait été plus prudent de le monter en read-only. On le télécharge et on vérifie son intégrité avec sha256sum
au besoin.
On lance strings
qui déverse beaucoup de chaines, alors au feeling (pas vraiment) on grep FCSC
:
$ strings rituel-en-chaine.img | grep FCSC
FCSC{6b8aa82937ec0ff5a3eaffa74b3b2de2e83c6a94eef6d96b59b50f65e8e35fa9}
VFCSCr$q+
C’est bien notre flag.
Alternative
Même si beaucoup moins simple, l’utilitaire extundelete
a aussi permis de retrouver un fichier effacé avec la commande :
$ extundelete --restore-all rituel-en-chaine.img
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 64 groups loaded.
Loading journal descriptors ... 65 descriptors loaded.
Searching for recoverable inodes in directory / ...
2 recoverable inodes found.
Looking through the directory structure for deleted files ...
2 recoverable inodes still lost.
Unable to restore inode 13 (file.13): No data found.
Un répertoire nommé RECOVERED_FILES
contient alors un fichier file.12
qui s’avère contenir le flag :
$ cat file.12
FCSC{6b8aa82937ec0ff5a3eaffa74b3b2de2e83c6a94eef6d96b59b50f65e8e35fa9}
Pas inintéressant comme utilitaire.