Solution de erdnaxe pour Rituel du boutisme

intro forensics disk linux

10 janvier 2024

Pré-analyse avec file

L’épreuve fournit un unique fichier rituel-du-boutisme.img. On l’analyse avec file pour savoir si c’est une image d’un disque entier ou seulement d’une partition :

$ file rituel-du-boutisme.img
rituel-du-boutisme.img: Linux rev 1.0 ext4 filesystem data, UUID=b10781e9-d553-4053-bb93-064cdc03ed6b (extents) (64bit) (large files) (huge files)

rituel-du-boutisme.img est donc une image d’une partition ext4.

Tentative de récupération avec testdisk

TestDisk est un outil qui permet de carver des images de partitions ou de disques afin d’en extraire les fichiers. Entre autre, l’outil permet de lister et de tenter de reconstruire les fichiers effacés. On tente l’outil sur notre image :

$ testdisk rituel-du-boutisme.img

Select a media (use Arrow keys, then press Enter):
>Disk rituel-du-boutisme.img - 534 MB / 510 MiB
>[Proceed ]

Disk rituel-du-boutisme.img - 534 MB / 510 MiB
Please select the partition table type, press Enter when done.
>[None   ] Non partitioned media

Disk rituel-du-boutisme.img - 534 MB / 510 MiB - CHS 66 255 63
     Partition                  Start        End    Size in sectors
>   P ext4                     0   0  1    65   4  3    1044480
>[  List  ] (List and copy files)

On obtient alors la liste des fichiers à la racine de la partition ext4. En plus du dossier habituel lost+found, on observe deux fichiers flag.txt et file :

   P ext4                     0   0  1    65   4  3    1044480
Directory /

 drwxr-xr-x     0     0      1024  4-Apr-2021 00:17 .
 drwxr-xr-x     0     0      1024  4-Apr-2021 00:17 ..
 drwx------     0     0     12288  4-Apr-2021 00:16 lost+found
*-rw-r--r--     0     0         0  4-Apr-2021 00:17 flag.txt
*-rw-r--r--     0     0         0  4-Apr-2021 00:17 file

Ces fichiers ont une taille de 0 octets, c’est mauvais signe ! Si on tente de les sélectionner (touche :) puis les extraire (touche C), on obtient bien 2 fichiers vides.

Tentative de récupération avec strings

On prend un peu de recul avec l’épreuve. On sait que :

  • On a une image d’une partition ext4.
  • Cette partition a contenu un jour le fichier flag.txt.
  • Il n’y a pas de compression, ou de chiffrement.

Dans un tel scénario, il devrait être possible de carver l’image directement avec strings. Une tentative strings -n10 rituel-du-boutisme.img ne donne rien d’intéressant.

Le boutisme correspond à la notion de “endianness”, le nom de l’épreuve nous hint qu’il y a potentiellement un boutisme à prendre en compte. On lit la documentation de strings et découvre l’option -e qui permet de préciser le boutisme.

On tente un boutisme 16-bit big-endian, et on obtient le flag :

$ strings -n20 rituel-du-boutisme.img -eb
FCSC{6a8024a83d9ec2d1a9c36c51d0408f15836a043ae0431626987ce2b8960a5937}