# DockerLabs Backend

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/#](http://dockerlabs.es/#)

Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos 2 archivos

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725135977941/29a0c754-dfd8-4627-bbf5-2aa80ac038b3.png align="center")

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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725135982742/ea1689a7-828e-4591-bb71-b74a2c14f15d.png align="center")

Realizamos un escaneo de la dirección IP y podemos observar que tenemos 2 puertos.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725135989133/735db809-ea9a-4f7f-b980-cefde7ec3618.png align="center")

Ingresamos la dirección IP en el navegador y observamos que se trata de una página sencilla.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136076100/acf78b3b-87c1-4068-95bd-fd7c2b990a7a.png align="center")

Escaneamos la dirección IP donde podemos observar que tenemos 2 archivos login pero con diferente extensión.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136087740/b620da66-f178-4dca-a4fd-26515e1d32f2.png align="center")

La dirección `login.html` nos muestra un login.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136109211/ef53662f-5965-48e6-8f38-a7b99cbd5767.png align="center")

Mientras que la `login.php` está en blanco.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136116319/495d0596-7d44-4747-94f2-eb4ea29ea1c8.png align="center")

Probamos algunas credenciales por defecto, pero ninguna es correcta. Probamos ingresando comandos para una inyección SQL y podemos observar que si es vulnerable porque nos da errores, pero no lo podemos ver reflejado.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136130576/43f27ade-dd6c-4ed3-a2f9-81f2008279dc.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136137296/26c70e6c-318e-40f2-a6fa-64a650181577.png align="center")

Ya que el realizar una inyección a ciegas de manera manual tomaría mucho tiempo emplearemos `sqlmap`. Para ello, abriremos burpsuite y capturaremos la petición.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136153366/85050678-4167-4b73-80f1-97c464d22d7a.png align="center")

Esa petición la copiamos y guardamos en un archivo, en este caso `request.txt` y usando `sqlmap` enviamos el siguiente comando.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136160527/bfae3d2d-9e2e-4d03-bd35-2240a7d2c734.png align="center")

Luego de unos segundos podemos observar que identifico 3 usuarios.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136170154/f7236076-77b6-432e-b9e9-3f3e5c1591cd.png align="center")

Ingresamos esas credenciales en el login podemos observar que no tenemos ningún resultado. Así que probaremos en cuál usuario nos permite loguearnos por medio de SSH.

```bash
| 1  | $paco$123     | paco     |
| 2  | P123pepe3456P | pepe     |
| 3  | jjuuaann123   | juan
```

De todos los usuarios con el que tenemos éxito es `pepe`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136196553/36ec5477-23c6-4082-a9a2-a1ed4bf366ef.png align="center")

Realizamos un `sudo -l`, pero no tenemos acceso al comando.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136204422/81742697-f752-4726-a671-c04580296a22.png align="center")

Por ello revisando permisos SUID desde la carpeta raíz podemos observar que podemos aprovecharnos por medio de `ls` y `grep`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136213484/f08b289e-af9b-4266-b500-01c3a6a3cf41.png align="center")

Revisando la página de [GTFOBins](https://gtfobins.github.io/gtfobins/grep/#sudo) observamos lo que podemos realizar con `grep`. Con el comando `ls` es listar archivos pero con nivel de root.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136224461/15d866aa-1d5f-498c-9097-41b7374eca99.png align="center")

Por ello verificaremos el directorio de root y podemos observar un archivo muy interesante.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136235626/3f820446-8c10-487c-8a61-cb58ed06286d.png align="center")

Ahora con `grep` podemos leer ese archivo como indicaba lo que podíamos hacer con el comando.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136251253/ba5dd2ef-9ce5-4b02-b0e5-5803c3ef8005.png align="center")

Copiamos el texto y lo llevamos a un identificador y podemos observar que se trata de un `md5`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136266528/d383cd3b-9b26-407f-8d10-b0cc459e91b0.png align="center")

Copiamos ese hash y guardamos en un archivo con el mismo nombre y haciendo uso de `john` podemos observar el password y de esta manera ya tendríamos las credenciales de `root`.

```bash
root:spongebob34
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136299621/e8f81a35-f5f1-409c-bcd8-d578be8281be.png align="center")

Ingresamos las credenciales y podemos observar que ya somos `root`. De esta manera culminando esta máquina.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1725136306157/def13bb3-35e9-45d4-8ac1-f938b6a964b4.png align="center")
