Bandit Nivel 10 a 11

Nivel del wargame OverTheWire Bandit — juego legal y educativo para aprender Linux y seguridad en terminal.


Objetivo

Encontrar la contraseña para el usuario bandit11. Está almacenada en el archivo data.txt dentro del home de bandit10, pero el contenido ha sido codificado en Base64.


Qué aprendes

Comandos clave

ComandoPara qué sirve
base64 -d <archivo>Decodifica un archivo codificado en Base64
cat <archivo> | base64 -dAlternativa por pipe: decodifica desde stdin
base64 <archivo>Codifica un archivo en Base64 (sin -d)

Conceptos

Base64 es un esquema de codificación (no de cifrado) que convierte datos binarios arbitrarios en texto ASCII imprimible usando solo 64 caracteres: A-Z, a-z, 0-9, +, /, y = como relleno.

Por qué existe: los protocolos como el email o HTTP antiguamente solo transportaban texto ASCII limpio. Si querías enviar un binario (imagen, ejecutable) necesitabas representarlo como texto. Base64 hace exactamente eso.

Importante: Base64 NO es cifrado. Cualquier persona puede decodificarlo al instante. Es solo una representación diferente del mismo dato.

Un texto codificado en Base64 se reconoce porque:

  • Solo contiene los 64 caracteres del alfabeto Base64.
  • Suele terminar con = o == de relleno.
  • Su longitud es múltiplo de 4.

Paso a paso

1. Conectarse como bandit10

ssh bandit10@bandit.labs.overthewire.org -p 2220

Introduce la contraseña de bandit10 cuando la pida (la obtuviste en el nivel anterior).


2. Ver el contenido del archivo

cat data.txt

Lo que verás:

VGhlIHBhc3N3b3JkIGlzIDxjYWRlbmFfZGVffjMyX2NhcmFjdGVyZXM+Cg==

Es texto ASCII con solo los caracteres del alfabeto Base64. No parece legible, pero no está cifrado, solo codificado. El == al final es el relleno típico de Base64.


3. Decodificarlo

Opción A — directamente con el archivo:

base64 -d data.txt

Opción B — por pipe:

cat data.txt | base64 -d

Ambas son equivalentes. La opción A es más directa; la opción B es útil cuando quieres encadenar transformaciones.

Lo que verás:

The password is <cadena_de_~32_caracteres>

La cadena que aparece tras The password is es la contraseña de bandit11. Cópiala.


4. Salir

exit

Por qué funciona

base64 -d (decode) aplica la operación inversa a base64 (encode). El proceso es:

Texto original → base64 → texto Base64 (lo que hay en data.txt)
Texto Base64   → base64 -d → texto original (la contraseña en claro)

El sistema de codificación toma grupos de 3 bytes (24 bits) y los divide en 4 grupos de 6 bits, representando cada grupo como un carácter del alfabeto Base64. Decodificar invierte ese mapeo. No hay clave secreta ni algoritmo complejo: dado el texto Base64, cualquiera puede obtener el original.


Errores comunes

Error: archivo no existe

base64: data.txt: No such file or directory

Causa: no estás en el directorio home. Solución:

cd ~
ls

El output parece basura Si base64 -d produce caracteres extraños, puede ser que el archivo no sea Base64 puro o tenga saltos de línea en lugares inesperados. En este nivel concreto el archivo es correcto, así que si ves basura revisa que no hayas copiado el archivo con caracteres extra.

Confundir codificación con cifrado Base64 no protege los datos. Si ves Base64 en un CTF o en código real y contiene datos sensibles (contraseñas, tokens), decodificarlo es inmediato — no necesitas ninguna clave.

Olvidar el flag -d

base64 data.txt   # ← ERROR: re-codifica en Base64 en lugar de decodificar
base64 -d data.txt  # ← CORRECTO

Pasar al siguiente nivel

Con la contraseña obtenida, conéctate a bandit11:

ssh bandit11@bandit.labs.overthewire.org -p 2220

Introduce <cadena_de_~32_caracteres> cuando pida la contraseña.


Conexiones