Objetivo del nivel 12 → 13
¡Menudo nivel! Es sin duda uno de los retos más icónicos y laboriosos de Bandit debido a la cantidad de capas que hay que deshacer.
El objetivo es encontrar la contraseña para el siguiente nivel dentro de data.txt. Este archivo contiene un volcado hexadecimal (hexdump) de un archivo binario que ha sido comprimido de forma repetida empleando múltiples formatos (una «matrioshka» digital). Una vez obtenida, se debe utilizar para iniciar sesión en el usuario bandit13.
1. Conectar
Para iniciar el reto, debes conectarte al servidor del juego mediante SSH introduciendo el siguiente comando en tu terminal (utilizando la contraseña obtenida en el nivel anterior):
bash
ssh bandit12@bandit.labs.overthewire.org -p 2220
2. Ingresar
Debido a que este proceso modificará y generará múltiples archivos, es necesario aislar el entorno creando un espacio temporal propio, revertir el volcado hexadecimal a binario y empezar el descifrado capa por capa.
Preparar el espacio de trabajo:
bash
mkdir /tmp/basura # Crear directorio
cp data.txt /tmp/basura/ # Copiar data.txt al directorio creado
cd /tmp/basura/ # Acceder al directorio
Convertir el hexdump a binario original:
bash
xxd -r data.txt > data.bin
Proceso de descompresión iterativo (Matrioshka):
- Capa 1 (gzip):
file data.binindica que es un archivo comprimido gzip.
bash
mv data.bin data.gz
gunzip data.gz
- Capa 2 (bzip2):
file dataindica que es un archivo comprimido bzip2.
bash
mv data data.bz2
bzip2 -d data.bz2
- Capa 3 (gzip):
file dataindica que vuelve a ser un archivo comprimido gzip.
bashmv data data.gzgunzip data.gz
- Capa 4 (tar):
file dataindica que es un contenedor de archivos POSIX tar.
bashmv data data.tartar -xf data.tar
- Capa 5 (tar):
file data5.binindica que se extrajo otro archivo de tipo tar.
bashmv data5.bin data5.tartar -xf data5.tar
- Capa 6 (bzip2):
file data6.binindica que se extrajo un archivo comprimido bzip2.
bashmv data6.bin data6.bz2bzip2 -d data6.bz2
- Capa 7 (tar):
file data6(renombrado temporalmente a data.tar) indica que es otro tar.
bashmv data6 data.tartar -xf data.tar
- Capa 8 (gzip):
file data8.binindica el último archivo comprimido en gzip.
bashmv data8.bin data8.gzgunzip data8.gz
Leer el contenido final:
Tras realizar file data8, el sistema confirma que por fin hemos llegado a un archivo de texto plano (ASCII text). Procedemos a su lectura:
bash
cat data8
Limpieza de rastro (Buenas prácticas):
Antes de desconectarte, elimina la carpeta temporal creada para no dejar residuos en el servidor común:
bash
rm -rf /tmp/basura
3. Verificación
Al ejecutar la lectura del archivo de texto final desenvuelto, el sistema te devolverá la credencial correspondiente:
¡Respuesta!
The password is:
FO5dwFsc0cbaIiH0h8J2eUks2vdTDwAn.
Para verificar que la contraseña es correcta y avanzar, conéctate al siguiente nivel usando estos datos de acceso:
Acceso siguiente nivel
- Usuario:
bandit13- Contraseña:
FO5dwFsc0cbaIiH0h8J2eUks2vdTDwAn
Conceptos Clave Aprendidos
xxd -r: Herramienta utilizada para realizar la operación inversa de un volcado hexadecimal, reconstruyendo el archivo binario ejecutable original a partir de su representación en texto plano.
- Formatos de compresión en Linux: Comprensión práctica de las tres herramientas de empaquetado y compresión más habituales en ecosistemas Unix:
gzip(extensión.gz),bzip2(extensión.bz2) ytar(extensión.tar).
mktemp -d/ Carpeta/tmp: Uso del directorio global de archivos temporales del sistema para realizar tareas de ingeniería inversa sin ensuciar los directorios del usuario principal ni interferir con otros procesos del laboratorio.