Analyse du fichier fourni
Comme dans les challenges contenant des fichiers, commencez par le télécharger. Vous constatez que l’extension du fichier se termine par dd. Allons voir ce qu’est cette extension.
Le fichier DD est un fichier d’image de disque et une réplique d’un disque dur. Le fichier ayant une extension .dd est généralement créé avec un outil d’imagerie appelé DD. L’utilitaire fournit une interface de ligne de commande pour créer des images de disque dans un système exécutant UNIX et LINUX OS.
– WhatIsFileExtension
Verifions tout de même le type de fichier avec la commande file
.
$ file not-so-fat.dd
not-so-fat.dd: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 32768 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 32, sectors/track 32, heads 64, serial number 0x3be84c04, unlabeled, FAT (16 bit)
Nous observons deux éléments, mkfs.fat
qui nous informent que le format de ficiher est FAT (File Allocation Table) et FAT (16 bit)
.
Ensuite, nous avons DOS/MBR boot sector
qui indique le secteur adressable du début du disque.
Montage en lecture seule
Trop bien ! Essayons de monter la partition en utilisant la commande mount
et d’analyser le contenu avec ls
.
mkdir mount
sudo mount -r not-so-fat.dd mount/
cd mount
ls -lsqa
Rien… Bon, il semble que nous n’arrivons pas à lire le contenu monter. Essayons autrement.
cd ..
sudo umount mount
rmdir mount/
Extraction des données supprimées
Il y a une commande qui permet de lister les fichiers/dossiers dans d’une image disque fls
.
fls -r not-so-fat.dd
Voici le retour.
r/r * 4: ziEuYrJW
r/r * 6: flag.zip
v/v 523203: $MBR
v/v 523204: $FAT1
V/v 523205: $FAT2
V/V 523206: $OrphanFiles
Voyons ce que nous avons là.
ziEuYrJW
… pourquoi pas. Ce peut ressembler à un mot de passe. Mais ne crions pas victoire trop vite.
flag.zip
… je ne sais pas pourquoi, mais j’aime bien ce fichier.
$MBR
… le secteur de démarrage du disque (Master Boot Record).
$FAT1
et $FAT2
doivent être des espaces système pour la gestion du format FAT16 (FAT (16 bit)
).
$OrphanFiles
… espace stockant les metadonnées des fichiers supprimés. (Wiki de SleuthKit).
Alors attention, vous savez que l’on vous demande de récupérer les fichiers supprimés et non les metadonnées. Donc ne perdez pas votre temps avec $OrphanFiles
.
Concentrons nous donc sur les deux premiers dossiers.
Pour ce faire, nous allons utiliser la commande icat
.
icat not-so-fat.dd 4 > ziEuYrJW
icat not-so-fat.dd 6 > file.zip
icat not-so-fat.dd 523203 > MBR
icat not-so-fat.dd 523204 > FAT1
icat not-so-fat.dd 523205 > FAT2
icat not-so-fat.dd 523203 > OrphanFiles
Nous avons extrait tous les fichiers ou dossiers. Cela va nous permettre de vérifier les types de chacun.
$ file *
FAT1: dBase III DBT, version number 0, next free block index 4294967288
FAT2: dBase III DBT, version number 0, next free block index 4294967288
file.zip: Zip archive data, at least v1.0 to extract
flag.txt: ASCII text
MBR: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 32768 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 32, sectors/track 32, heads 64, serial number 0x3be84c04, unlabeled, FAT (16 bit)
not-so-fat.dd: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 32768 (volumes <=32 MB), Media descriptor Oxf8, sectors/FAT 32, sectors/track 32, heads 64, serial number 0x3be84c04, unlabeled, FAT (16 bit)
OrphanFiles: empty
ziEuYrJW: empty
Le fichier file.zip
est bel et bien un fichier ZIP donc extrayons son contenu.
$ unzip file.zip
Archive: file.zip
[file.zip] flag.txt password:
password incorrect-- reenter:
Essayons le mot de passe ziEuYrJW
.
Mince ! Ce n’est pas le bon. Essayons de cracker le mot de passe avec la commande fcrackzip
$ fcrackzip -v -u -D -p /usr/share/wordlists/rockyou.txt flag.zip
found file 'flag.txt', (size cp/uc 59/ 47, flags 9, chk 4eb7)
PASSWORD FOUND!!!!: pw == password
$ unzip flag.zip
Archive: flag.zip
[flag.zip] flag.txt password:
extracting: flag.txt
Yes ! Lisez le fichier extrait flag.txt
et vous obtenez ECSC{eefea8cda693390c7ce0f6da6e388089dd615379}
.