Niveau 13
Level Goal
The password for the next level is stored in the file data.txt, which is a hexdump of a file that has been repeatedly compressed. For this level it may be useful to create a directory under /tmp in which you can work using mkdir. For example: mkdir /tmp/myname123. Then copy the datafile using cp, and rename it using mv (read the manpages!)
Commands you may need to solve this level
grep
,sort
,uniq
,strings
,base64
,tr
,tar
,gzip
,bzip2
,xxd
,mkdir
,cp
,mv
,file
Helpful Reading Material
Cette exercice présente une difficulté largement supérieure à celle des précédents. L'objectif ici est de décompresser plusieurs fois un fichier, sans connaitre à priori les formats de compression successifs utilisés.
En se connectant en tant qu'utilisateur bandit12
on trouve un fichier data.txt
dont le contenu est compressé. Commençons par créer un dossier qui contiendra les différents fichiers décompressés, puis copions le fichier data.txt
dans celui-ci :
bandit12@bandit:~$ mkdir /tmp/level13
bandit12@bandit:~$ cp data.txt /tmp/level13
bandit12@bandit:~$ cd /tmp/level13
Si l'on utilise la commande file
, on obtient l'information suivante :
bandit12@bandit:/tmp/level13$ file data.txt
data.txt: ASCII text
En se basant sur le lien présent dans l'énoncé, on peut supposer que le fichier est un hexdump et essayer de le décompresser :
bandit12@bandit:/tmp/level13$ xxd -r data.txt > data2.txt
bandit12@bandit:/tmp/level13$ file data2.txt
data2.txt: gzip compressed data, was "data2.bin", last modified: Thu May 7 18:14:30 2020, max compression, from Unix
On obtient donc un fichier gzip, lui aussi décompressible :
bandit12@bandit:/tmp/level13$ cat data2.txt | gzip -d > data3.txt
bandit12@bandit:/tmp/level13$ file data3.txt
data3.txt: bzip2 compressed data, block size = 900k
Ce 3ème fichier étant au format bzip2, on peut utiliser la commande suivante :
bandit12@bandit:/tmp/level13$ cat data3.txt | bzip2 -d > data4.txt
bandit12@bandit:/tmp/level13$ file data4.txt
data4.txt: gzip compressed data, was "data4.bin", last modified: Thu May 7 18:14:30 2020, max compression, from Unix
Puis de nouveau gzip :
bandit12@bandit:/tmp/level13$ cat data4.txt | gzip -d > data5.txt
bandit12@bandit:/tmp/level13$ file data5.txt
data5.txt: POSIX tar archive (GNU)
Puis tar :
bandit12@bandit:/tmp/level13$ tar xvf data5.txt
data5.bin
bandit12@bandit:/tmp/level13$ file data5.bin
data5.bin: POSIX tar archive (GNU)
Puis encore tar :
bandit12@bandit:/tmp/level13$ tar xvf data5.bin
data6.bin
bandit12@bandit:/tmp/level13$ file data6.bin
data6.bin: bzip2 compressed data, block size = 900k
Puis un enchainement :
bandit12@bandit:/tmp/level13$ cat data6.bin | bzip2 -d > data7.txt
bandit12@bandit:/tmp/level13$ file data7.txt
data7.txt: POSIX tar archive (GNU)
De nouveau tar :
bandit12@bandit:/tmp/level13$ tar xvf data7.txt
data8.bin
bandit12@bandit:/tmp/level13$ file data8.bin
data8.bin: gzip compressed data, was "data9.bin", last modified: Thu May 7 18:14:30 2020, max compression, from Unix
Puis gzip :
bandit12@bandit:/tmp/level13$ cat data8.bin | gzip -d > data9.txt
bandit12@bandit:/tmp/level13$ file data9.txt
data9.txt: ASCII text
bandit12@bandit:/tmp/level13$ cat data9.txt
The password is 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL
Le mot de passe pour le niveau suivant est donc 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL