Eternal Loop es uno de los retos de MISC existentes actualmente en la plataforma de hacking HackTheBox.
Este reto otorga 20 puntos a quién lo resuelve y es de dificultad fácil.
Para su resolución lo primero será descargar el fichero zip existente en el mismo y extraer su contenido:
1 2 3 4 |
$ unzip Eternal_Loop.zip Archive: Eternal_Loop.zip [Eternal_Loop.zip] 37366.zip password: extracting: 37366.zip |
Obtenemos otro fichero .zip, cuya contraseña es el nombre del siguiente .zip, y otro, y otro, y así unas cuantas veces:
1 2 3 4 |
$ unzip 37366.zip Archive: 37366.zip [37366.zip] 5900.zip password: inflating: 5900.zip |
Para hacerlo de una forma más sencilla vamos a crear un script que extraiga cada zip hasta el final. El script es el siguiente:
1 2 3 4 5 6 7 8 |
#!/bin/sh file="37366.zip" while unzip -Z1 "${file}" | head -n1 | grep "\.zip$"; do next_file="$(unzip -Z1 "${file}" | head -n1)" unzip -P "${next_file%.*}" "${file}" file="$next_file" done |
Esto descomprimirá muchos zips, unos 500 para ser exactos, hasta dar con uno que no podrá extraer debido a que la contraseña es diferente al resto, el 6969.zip. Para descifrar este vamos a realizar un ataque de fuerza bruta con la herramienta fcrackzip.
1 2 3 4 |
fcrackzip -v -D -u -p /usr/share/wordlists/rockyou.txt 6969.zip found file 'DoNotTouch', (size cp/uc 335181/884736, flags 9, chk 5b04) PASSWORD FOUND!!!!: pw == letmeinplease |
Lanzamos el ataque y obtenemos la contraseña del fichero, vamos a descomprimir el mismo:
1 2 3 4 |
$ unzip 6969.zip Archive: 6969.zip [6969.zip] DoNotTouch password: inflating: DoNotTouch |
Comprobamos que tipo de fichero se trata y observamos que es un fichero de base de datos de sqlite.
1 2 |
$ file DoNotTouch DoNotTouch: SQLite 3.x database, last written using SQLite version 3021000 |
Lanzamos un strings sobre el mismo buscando la palabra “HTB” y listo:
1 2 |
$ strings DoNotTouch |grep HTB 1969-01-01 00:00:002069-01-01 00:00:00Chillin with SatanHellHTB{xxxxxxxxxxxxx} |
Tenemos el flag necesario para superar el reto HTB{xxxxxxxxxxxx}.