Inicio Overthewire - Bandit (6-10)
Entrada
Cancelar

Overthewire - Bandit (6-10)

Continuando con la serie sobre Bandit, en este artículo se describe el proceso a seguir para superar los retos desde el nivel 6 hasta el nivel 10.

Se nota ya cierto aumento en el grado de dificultad, pero si conoces el sistema del pingüino, no debería tomar mucho tiempo superar cada uno.


Nivel 6.

El primer nivel de este artículo solicita el fichero que tenga como propietario al usuario bandit7, con el grupo bandit6 y con un peso de 33 bytes, para encontrar la contraseña.

Se lista los ficheros y directorios en la home del usuario actual, no encontrando nada.

Por tanto, se lanza el comando find para buscar en la raiz del sistema de manera recursiva, encontrando un fichero con las características solicitadas en /var/lib/dpkg/info/.

1
2
bandit6@bandit:~$ find / -type f -user bandit7 -group bandit6 -size 33c 2> /dev/null
/var/lib/dpkg/info/bandit7.password

Se muestra el contenido de dicho fichero, obteniendo la contraseña.

1
2
bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password
HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

Nivel 7.

Se accede al siguiente nivel, cuyo enunciado dice que la contraseña se encuentra almacenada en el fichero data.txt en la palabra siguiente a la “millonesima” (millonth en inglés).

Se muestra la cantidad de palabras del fichero, y se observa que tiene menos de un millon, por tanto no puede obtenerse basándose en el orden.

1
2
bandit7@bandit:~$ wc -w data.txt 
197133 data.txt

se intuye que se refiere literalmente a la palabra millonth y que el enunciado era un juego de palabras, encontrando la palabra y por tanto, la contraseña.

1
2
bandit7@bandit:~$ grep millionth data.txt 
millionth	cvX2JJa4CFALtqS87jk27qwqGhBM9plV

Nivel 8.

El enunciado de este nivel dice que la contraseña de encuentra en el fichero data.txt y es la que tiene una única ocurrencia.

Si se lanza el comando siguiente, se puede ver que todas las líneas se repiten 10 veces, menos una, que sólo hay una ocurrencia, por lo tanto, es la contraseña de este nivel.

1
2
3
4
5
6
7
8
9
10
11
sort data.txt | uniq -c 

10 U0NYdD3wHZKpfEg9qGQOLJimAJy6qxhS
10 UASW6CQwD6MRzftu6FAfyXBK0cVvnBLP
10 UJiCNvDNfgb3fcCj8PjjnAXHqUM63Uyj
10 UjsVbcqKeJqdCZQCDMkzv6A9X7hLbNE4
1 UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
10 UVnZvhiVQECraz5jl8U14sMVZQhjuXia
10 V2d9umHiuPLYLIDsuHj0frOEmreCZMaA
10 v9zaxkVAOdIOlITZY2uoCtB1fX2gmly9
10 VkBAEWyIibVkeURZV5mowiGg6i3m7Be0

Nivel 9.

La contraseña para el siguiente nivel, según el enunciado, se almacena en el archivo data.txt en una de las pocas cadenas legibles para el ser humano, precedida por varios caracteres “=”.

Se lanza por tanto, el comando strings para obtener las líneas leibles por un usuario, y además se usa el filtro grep para encontrar las cadenas que contengan símbolos igual.

Se encuentra entonces una frase formada por varias líneas, donde se dice la contraseña.

1
2
3
4
5
 strings data.txt | grep "=="
========== the*2i"4
========== password
Z)========== is
&========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

Nivel 10.

Para terminar este artículo, se describe como conseguir la contraseña del usuario 10 que se almacena en el archivo data.txt, que contiene datos codificados en base64.

Por tanto, se muestra el contenido del fichero que solicita el enunciado, y mediante un pipeline se envía la salida de cat para que se decodifique desde base64, obteniendo la contraseña del usuario 11.

1
2
bandit10@bandit:~$ cat data.txt | base64 -d | xargs
The password is IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
Esta entrada está licenciada bajo CC BY 4.0 por el autor.