Bandit level 12

Nivel 12 de Bandit

Esta es la traducción del enunciado para acceder al nivel 13 de Bandit.

Enunciado Bandit Level 12 → Level 13:

La contraseña para el siguiente nivel se almacena en el archivo data.txt, que es un hexdump de un archivo que ha sido comprimido repetidamente. Para este nivel puede ser útil crear un directorio bajo /tmp en el que puedas trabajar usando mkdir. Por ejemplo: mkdir /tmp/myname123. Luego copie el archivo de datos usando cp, y renómbrelo usando mv (¡lea las páginas de manual!)

Datos para la conexión (el password lo conseguimos cuando resolvimos el nivel 11):

  • Host: bandit.labs.overthewire.org
  • Port: 2220
  • User: bandit12
  • Password: JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv

Realizamos la conexión desde la terminal.

ssh [email protected] -p 2220

Una vez conectados hacemos uso del comando mkdir para crear el directorio con el que podremos trabajar con permisos de escritura. A este directorio lo llamaré mio y debe estar dentro del directorio tmp.

Aunque no haremos uso de este directorio todavía, solo lo creamos.

mkdir /tmp/mio

Si hacemos un listado del directorio actual podemos ver que tenemos un archivo llamado data.txt. Haciendo uso del comando cat podemos ver que el contenido del fichero tiene valores hexadecimales.

Con la ayuda de xxd -r revertiremos el hexdump generado, de esta forma podremos ver qué tipo de fichero tenemos. Aunque si observamos el primer bit podemos detectar el tipo de archivo que tenemos delante.

Explorando el primer bit del hexdump para ver el tipo de archivo

Podemos ver que es 1F 8B, esto hace referencia a un archivo comprimido con gzip.

  • 1F 8B archivo comprimido en gzip.
  • 50 4B 03 04 archivo comprimido en zip.
  • 42 5A 68 archivo comprimido en bzip2.
  • FD 37 7A 58 5A archivo comprimido en zx.

Aunque este método no es infalible, sí que puede ayudarnos en algunas ocasiones para ver qué tipo de archivo tenemos delante.

Comenzamos el trabajo de campo

Lo primero que haremos será convertir la representación hexadecimal existente en data.txt en un archivo sin extensión llamado data. Solo podemos crear este nuevo archivo en el directorio que hemos creado anteriormente /tmp/mio, en el resto no tenemos permisos.

Lo siguiente será verificar con el comando file el tipo de archivo tenemos delante.

Podemos ver que la información arrojada desde el primer bit no ha fallado. Nos arrojó 1F 8B y en efecto se trata de un archivo comprimido con gzip.

xxd -r data.txt > /tmp/mio/data
file /tmp/mio/data

Pues lo siguiente que toca es agregar la extensión correspondiente haciendo uso del comando mv.

mv /tmp/mio/data /tmp/mio/data.gz

Una vez con la extensión modificada descomprimimos el fichero haciendo uso del comando gzip y vemos de qué tipo es el fichero que hay en su interior.

gzip -d /tmp/mio/data.gz
ls
file /tmp/mio/data

Nos indica que tenemos un fichero de tipo bzip2.

Hemos quitado el primer recubrimiento del fichero gzip para encontrar otro comprimido con bzip2

Pues vuelta a lo mismo que antes, una vez que conocemos el tipo de fichero que es, agregamos la extensión correcta y volvemos a descomprimir.

Estos pasos vamos a tener que repetirlos varias veces, ya que este nivel de Bandit consiste en visualizar la clave que está en un archivo que ha sido comprimido de diferentes formas repetidamente.

En este momento disponemos de un fichero llamado data que está comprimido con bzip2.

Pues lo dicho, agregamos la extensión .bz y descomprimimos con la herramienta bzip2 para ver de qué tipo es el siguiente fichero que encontramos.

mv /tmp/mio/data /tmp/mio/data.bz
bzip2 -d /tmp/mio/data.bz
ls /tmp/mio
file /tmp/mio/data

Encontramos un fichero que vuelve a estar comprimido con gzip.

Pues nada, volvemos a repetir los mismos pasos de cambiar de extensión, descomprimir y verificar el nuevo tipo de archivo.

mv /tmp/mio/data /tmp/mio/data.gz
gzip -d /tmp/mio/data.gz
ls /tmp/mio
file /tmp/mio/data

En esta ocasión nos encontramos un fichero POSIX tar archive.

En la siguiente captura de pantalla podemos observar los comandos empleados para las dos últimas descompresiones (bzip2 y gzip) que dan como resultado el tipo de archivo tar.

Hemos quitado algunos recubrimientos más descomprimiendo con bzip2 y gzip

Para seguir adelante con el nivel tenemos que colocar la extensión .tar y descomprimir haciendo uso del comando tar.

No puedo hacer uso del comando tar desde la ubicación principal, así que tengo que dirigirme al directorio que he creado haciendo uso del comando cd.

cd /tmp/mio

Ahora puedo seguir eliminando «cáscaras» de compresión. Sin tener que espicificar la ruta en cada comando.

mv data data.tar
tar -xf data.tar
ls 
file data5.bin
Hemos quitado algunos recubrimientos más descomprimiendo con tar desde el directorio creado

El tipo de archivo data5.bin nos indica que es POSIX tar, volvemos a cambiar la extensión y descomprimimos para ver qué tipo de archivos nos encontramos ahora.

mv data5.bin data.tar
tar -xf data.tar
ls
file data6.bin

Vemos que apareció un archivo llamado data6.bin y que es de tipo bzip2.

Hemos quitado algunos recubrimientos más descomprimiendo con tar desde el directorio creado

Pues de nuevo la misma operación, cambiamos la extensión por .bz del archivo resultante y descomprimimos haciendo uso de bzip2.

mv data6.bin data.bz
bzip2 -d data.bz
ls
file data

Volvemos a encontrar otro archivo POSIX tar llamado data.

Agregamos extensión y hacemos uso del comando tar.

mv data data.tar
tar -xf data.tar
ls
file data8.bin

Descubrimos un fichero gzip llamado data8.bin.

Hemos quitado algunos recubrimientos más descomprimiendo con tar desde el directorio creado

Puede sonar monótono e incluso aburrido, pero sí, de nuevo tenemos que renombrar el fichero y descomprimirlo.

mv data8.bin data.gz
gzip -d data.gz
ls
file data

El tipo de fichero data resultante esta vez es ASCII text, por lo que podemos hacer uso del comando cat para ver su contenido y nos muestra la clave.

cat data

Contraseña rescatada: wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw

Resultado de level 12 Bandit

Con esta contraseña ya podemos acceder al nivel 13 de Bandit.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *