Préparation de l’environnement
fcsc.raw étant une image dump avec des partitions, nous allons la binder sur un loopback-device pour pouvoir le monter :
$ losetup -P /dev/loop0 fcsc.raw
$ fdisk -l /dev/loop0 | grep "^/dev/loop0"
/dev/loop0p1 2048 4095 2048 1M BIOS boot
/dev/loop0p2 4096 1861631 1857536 907M Linux filesystem
/dev/loop0p3 1861632 20969471 19107840 9,1G Linux filesystem
$ cryptsetup luksOpen /dev/loop0p3 rootfs
Enter passphrase for /dev/loop0p3: fcsc2022
$ mount /dev/dm-4 rootfs/
Happy birthday !
Pour obtenir la date de création, un petit stat
sur le bon fichier ou répertoire. Ici, je ne vais pas rentrer dans le système de fichiers avec un chroot
pour éviter de toucher au système de fichiers et ni exécuter des binaires à l’intérieur, je préfère effectuer le stat
à l’extérieur directement sur le “/” virtuel.
# note: notre root est monté sur le répertoire rootfs/ :
$ stat rootfs/ | grep Birth
Birth: 2022-03-27 05:44:49.000000000 +0200
# %w = birthday
$ stat --printf "%w\n" rootfs/
2022-03-27 05:44:49.000000000 +0200
Si on veut une confirmation, on peut étendre la recherche :
$ stat --printf "%w\n" rootfs/ rootfs/* | sort
2022-03-27 05:44:49.000000000 +0200
2022-03-27 05:44:49.000000000 +0200
2022-03-27 05:44:50.412031155 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:44:51.332031125 +0200
2022-03-27 05:45:49.420029218 +0200
La date de 2022-03-27 05:44:49
est la plus ancienne et apparait au moins deux fois.
Ou sinon avec debugfs
sans avoir besoin de monter le système de fichiers :
$ debugfs /dev/dm-4
debugfs : stat /
Inode: 2 Type: directory Mode: 0755 Flags: 0x80000
Generation: 0 Version: 0x00000000:00000019
User: 0 Group: 0 Project: 0 Size: 4096
File ACL: 0
Links: 19 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x623fde42:d69540ac -- Sun Mar 27 05:47:14 2022
atime: 0x623fdec0:5ccbbd18 -- Sun Mar 27 05:49:20 2022
mtime: 0x623fde42:d69540ac -- Sun Mar 27 05:47:14 2022
crtime: 0x623fddb1:00000000 -- Sun Mar 27 05:44:49 2022 <=== creation date
Size of extra inode fields: 32
Inode checksum: 0x6b547bcc
EXTENTS:
(0):9235
debugfs : quit
L’auteur indique en rouge qu’il faut la date UTC, on constate qu’avec notre +0200, la date indiquée est donc “zonée”. Il suffit de retrancher 2h dans la date de création, donc 03:44:49
, notre flag sera donc :
FCSC{2022-03-27T03:44:49Z}