Codificación y decodificación en base64
3/25/20252 min read


Nuevamente volvemos a acceder a bandit, pero esta vez a bandit10, con el siguiente comando:
$ sshpass -p 'FGUW5ilLVJrxX9kMYMmlN4MgbpfMiqey' ssh bandit10@bandit.labs.overthewire.org -p 2220


Y volvemos a aplicar xterm para poder limpiar la pantalla con CTRL + L


Ahora como vemos en la página de bandit nos indica que la contraseña se encuentra en el archivo data.txt pero que contiene datos codificados en base64, por lo tanto haremos lo siguiente...
¿Qué es BASE64?
Base64 es un sistema de codificación que se utiliza para representar datos binarios (como archivos, imágenes, documentos, etc.) en una forma de texto ASCII. Su nombre proviene de que utiliza 64 caracteres diferentes para representar los datos: las letras mayúsculas y minúsculas del alfabeto inglés, los dígitos numéricos del 0 al 9 y dos caracteres especiales, generalmente el signo más «+» y la barra diagonal «/».
Como podemos comprobar si listamos el contenido de la carpeta actual y hacemos un cat data.txt podemos comprobar que el texto que vemos como output esta codificado en base64, como nos indica la página de OverTheWire... Por lo tanto vamos a hacer lo siguiente para poder verlo en texto claro...


$ echo 'hola probando ' | base64 - Nosotros podemos codificar y decodificar en base64 con los siguientes comandos que vemos en la imagen:
Codificar: $ echo 'hola probando' | base64
Decodificar $ echo 'aG9sYSBwcm9iYW5kbwo=' | base64 -d
Como vemos al transformar el texto para que sea legible nos devuelve la misma cadena que habíamos codificado anteriormente


Otro ejemplo que he puesto ha sido con el archivo /etc/hosts. Como vemos tiene diferentes líneas de texto, por lo tanto podemos codificarlo de 2 maneras:
Primera: $ cat /etc/hosts | base64 - Para codificarlo en varias líneas
Segunda: $ cat /etc/hosts | base64 -w 0 - Para codificarlo en 1 sola línea de texto.
Y para poder verlo en texto claro hacemos lo que vimos anteriormente: $ echo 'IyBIb3N0IGFkZHJlc3NlcwoxMjcuMC4wLjEgIGxvY2FsaG9zdAoxMjcuMC4xLjEgIHBhcnJvdAo6OjEgICAgICAgIGxvY2FsaG9zdCBpcDYtbG9jYWxob3N0IGlwNi1sb29wYmFjawpmZjAyOjoxICAgIGlwNi1hbGxub2RlcwpmZjAyOjoyICAgIGlwNi1hbGxyb3V0ZXJzCiMgT3RoZXJzCg==' | base64 -d


$ cat data.txt | base64 -d - Y ahí la tenemos, la contraseña para bandit11:
dtR173fZKb0RRsDFSGsg2RWnpNVj3qRr

