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
| Comando | Para qué sirve |
|---|---|
base64 -d <archivo> | Decodifica un archivo codificado en Base64 |
cat <archivo> | base64 -d | Alternativa 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 2220Introduce la contraseña de bandit10 cuando la pida (la obtuviste en el nivel anterior).
2. Ver el contenido del archivo
cat data.txtLo 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.txtOpción B — por pipe:
cat data.txt | base64 -dAmbas 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
exitPor 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 ~
lsEl 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 # ← CORRECTOPasar al siguiente nivel
Con la contraseña obtenida, conéctate a bandit11:
ssh bandit11@bandit.labs.overthewire.org -p 2220Introduce <cadena_de_~32_caracteres> cuando pida la contraseña.