Con este post se comienza una nueva serie de artículos donde se describirán los pasos a seguir en los denominados wargames de Overthewire.
Para empezar, se realizará la descripción de todos los niveles de Bandit, que según la descripción, es la mejor serie de retos para principiantes (perfecto para mi), contando además que para comenzar los retos, se debe conectar mediante SSH a los diferentes usuarios que harán las veces de niveles.
Un ejemplo, si se accede con el usuario bandit2, el reto de ese nivel es encontrar la contraseña, o bien, una forma de acceder con el usuario bandit3.
Los primeros niveles serán, en la mayoría de los casos, demasiado sencillos, pero a medida que se avance en la serie, se complica bastante.
Nivel 0
El primer nivel es mero trámite, ya que es donde se explica que se debe conectar mediante SSH a bandit.labs.overthewire.org mediante el puerto 2220, usando la palabra bandit0 tanto como usuario como contraseña.
También el enunciado de este nivel comenta que la contraseña se encuentra dentro de un fichero llamado readme que se encuentra en el directorio del usuario.
Dentro de la máquina, se listan los ficheros y directorios de la carpeta home del usuario, encontrando un fichero llamado readme, como decía el enunciado.
1
2
bandit0@bandit:~$ ls
readme
Se muestra el contenido del fichero, obteniendo la contraseña del usuario bandit1.
1
2
bandit0@bandit:~$ cat readme
boJ9jbbUNNfktd78OOpsqOltutMc3MY1
Nivel 1
En el nivel 1, el enuncuado dice que la contraseña del usuario bandit2 se encuentra alojada en un fichero llamado “-“ en la carpeta home del usuario.
Entonces, conectado con el usuario 1 se listan los ficheros y directorios de la carpeta home, encontrando el fichero que comenta el enunciado.
1
2
3
bandit1@bandit:~$ ls -lrt
total 4
-rw-r----- 1 bandit2 bandit1 33 May 7 2020 -
Se verifica el contenido del fichero - mediante el uso de los caracteres de ejecución de Linux (./).
1
2
bandit1@bandit:~$ cat ./-
CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
Aunque también se puede hacer mediante el uso de la virgulilla, caracter que representa el directorio home del usuario que ejecuta el comando, o bien, la ruta absoluta de dicho fichero (/home/bandit1/-
)
1
2
bandit1@bandit:~$ cat ~/-
CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
Nivel 2
El enunciado de este nivel dice que la contraseña se encuentra dentro del fichero llamado “spaces in this filename” que se encuentra alojado en el directorio del usuario.
1
2
3
bandit2@bandit:~$ ls -lrt
total 4
-rw-r----- 1 bandit3 bandit2 33 May 7 2020 spaces in this filename
Para ver el contenido, se usan comillas para llamar al fichero con el comando cat
, aunque también, se puede usar el caracter de escape para quitar el significado especial al espacio (spaces\ in\ this\ filename).
1
2
bandit2@bandit:~$ cat "spaces in this filename"
UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
Nivel 3
El nivel 3 dice tener la contraseña en un directorio oculto en un directorio llamado inhere.
Se lista el contenido del directorio actual, encontrando el directorio que dice el enunciado.
1
2
3
4
5
6
7
8
bandit3@bandit:~$ ls -lrta
total 24
-rw-r--r-- 1 root root 675 May 15 2017 .profile
-rw-r--r-- 1 root root 3526 May 15 2017 .bashrc
-rw-r--r-- 1 root root 220 May 15 2017 .bash_logout
drwxr-xr-x 41 root root 4096 May 7 2020 ..
drwxr-xr-x 3 root root 4096 May 7 2020 .
drwxr-xr-x 2 root root 4096 May 7 2020 inhere
Se listan los dicheros del directorio inhere usando el parámetro -a para mostrar los ficheros ocultos, encontrando un fichero llamado “.hidden”.
1
2
3
4
5
bandit3@bandit:~$ ls -lrta inhere/
total 12
drwxr-xr-x 3 root root 4096 May 7 2020 ..
-rw-r----- 1 bandit4 bandit3 33 May 7 2020 .hidden
drwxr-xr-x 2 root root 4096 May 7 2020 .
Entonces se muestra el contenido del fichero .hidden, obteniendo la contraseña del usuario bandit4.
1
2
bandit3@bandit:~$ cat inhere/.hidden
pIwrPrtPN36QITSp3EQaw936yaFoFgAB
Nivel 4
La contraseña del usuario bandit5 se encuentra dentro del único fichero que es legible por humanos del directorio inhere.
Se mira el contenido del directorio inhere para ver que ficheros se encuentran en él.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bandit4@bandit:~$ ls -lrta inhere/
total 48
drwxr-xr-x 3 root root 4096 May 7 2020 ..
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file00
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file01
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file02
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file03
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file04
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file05
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file06
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file07
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file08
-rw-r----- 1 bandit5 bandit4 33 May 7 2020 -file09
drwxr-xr-x 2 root root 4096 May 7 2020 .
Al lanzar un comando cat
a uno de ellos, se puede ver que el contenido no es legible, por lo que se usa el comando file
para ver cual de ellos puede ser un fichero de tipo ASCII, caracteres alfanuméricos, obteniendo el fichero -file07.
1
2
3
4
5
6
7
8
9
10
11
bandit4@bandit:~$ for file in `ls -1 inhere`; do file ~/inhere/$file; done
/home/bandit4/inhere/-file00: data
/home/bandit4/inhere/-file01: data
/home/bandit4/inhere/-file02: data
/home/bandit4/inhere/-file03: data
/home/bandit4/inhere/-file04: data
/home/bandit4/inhere/-file05: data
/home/bandit4/inhere/-file06: data
/home/bandit4/inhere/-file07: ASCII text
/home/bandit4/inhere/-file08: data
/home/bandit4/inhere/-file09: data
Se muestra el contenido del fichero usando la misma técnica que en el nivel 1, ya que el nombre empieza por un guión.
1
2
bandit4@bandit:~$ cat /home/bandit4/inhere/-file07
koReBOKuIDDepwhWk7jZC0RTdopnAYKh
Nivel 5
El enunciado dice que el fichero que contiene la contraseña para el siguiente nivel tiene 3 características:
- Es human-readable o legible.
- No es un ejecutable.
- Tiene un tamaño de 1033 bytes.
Se muestra contenido de carpeta inhere encotrando 20 directorios con sus correspondientes ficheros.
1
2
3
bandit5@bandit:~/inhere$ ls
maybehere00 maybehere02 maybehere04 maybehere06 maybehere08 maybehere10 maybehere12 maybehere14 maybehere16 maybehere18
maybehere01 maybehere03 maybehere05 maybehere07 maybehere09 maybehere11 maybehere13 maybehere15 maybehere17 maybehere19
Se busca el fichero con las caracteristicas descritas mediante el comando find
, encontrando el fichero file2.
1
2
bandit5@bandit:~$ find -type f -readable -size 1033c
./inhere/maybehere07/.file2
Se muestra contenido con el comando cat
, encontrando la contraseña del usuario bandit6.
1
2
bandit5@bandit:~$ cat ./inhere/maybehere07/.file2
DXjZPULLxYr17uwoI01bNLQbtFemEgo7