Nivel 9 de Bandit
Esta es la traducción del enunciado para acceder al nivel 10 de Bandit.
Enunciado Bandit Level 9 → Level 10:
La contraseña para el siguiente nivel se almacena en el archivo data.txt en una de las pocas cadenas legibles por humanos, precedida de varios caracteres «=».
Datos para la conexión (el password lo conseguimos cuando resolvimos el nivel 8):
- Host: bandit.labs.overthewire.org
- Port: 2220
- User: bandit9
- Password: EN632PlfYiZbn3PhVK3XOGSlNInNE00t
Realizamos la conexión desde la terminal.
ssh [email protected] -p 2220
Lo primero que vamos a comprobar es mediante el comando grep si encontramos algunas líneas en data.txt que tengan dos signos de igual juntos «==».
grep "==" data.txt
Este comando nos devuelve un mensaje que nos indica «grep: data.txt: binary file matches«, o lo que es lo mismo, que el fichero data.txt contiene caracteres no imprimibles o que no son texto plano.
Lo que haremos para evitar este problema es hacer uso del comando strings, que nos permite extraer secuencias de caracteres imprimibles (cadenas de texto) desde un archivo que contiene caracteres imprimibles y no imprimibles.
strings data.txt | grep "=="

Contraseña rescatada: G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s
Podemos filtrar la última línea resultado haciendo uso del comando tail -1.
strings data.txt | grep "==" | tail -1
Ahora con el comando cut le indicamos que solo queremos que muestre la segunda parte de la línea. Le indicamos de separador el espacio en blanco con (-d ‘ ‘) y para que muestre la segunda parte de la cadena con (-f 2).
strings data.txt | grep "==" | tail -1 | cut -d ' ' -f 2

El recorte de la segunda parte podríamos haberlo hecho también con el comando awk.
strings data.txt | grep "==" | tail -1 | awk '{print $2}'
Con esta contraseña ya podemos acceder al nivel 10 de Bandit.
Ahora haciendo uso del comando time vamos a comparar los tiempos realizándolo de las dos formas que hemos visto.
