Nessus HackMyVM (Easy - Windows)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-31 06:49 EDT
Nmap scan report for 192.168.1.164
Host is up (0.00053s latency).
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
8834/tcp open ssl/nessus-xmlrpc?
| ssl-cert: Subject: commonName=WIN-C05BOCC7F0H/organizationName=Nessus Users United/stateOrProvinceName=NY/countryName=US
| Not valid before: 2024-10-18T17:36:17
|_Not valid after: 2028-10-17T17:36:17
| fingerprint-strings:
| GetRequest:
| HTTP/1.1 200 OK
| Cache-Control: must-revalidate
| X-Frame-Options: DENY
| Content-Type: text/html
| ETag: 27393d29a7ce578108e0989bb8e5b05c
| Connection: close
| X-XSS-Protection: 1; mode=block
| Server: NessusWWW
| Date: Mon, 31 Mar 2025 10:50:02 GMT
| X-Content-Type-Options: nosniff
| Content-Length: 1217
| Content-Security-Policy: upgrade-insecure-requests; block-all-mixed-content; form-action 'self'; frame-ancestors 'none'; frame-src
https://store.tenable.com; default-src 'self'; connect-src 'self' www.tenable.com; script-src 'self' www.tenable.com; img-src 'self' data:; style-src 'self'
www.tenable.com; object-src 'none'; base-uri 'self';
| Strict-Transport-Security: max-age=31536000
| Expect-CT: max-age=0
| <!doctype html>
| <html lang="en">
| <head>
| <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|_ <meta http-equiv="Content-Security-Policy" content="upgrade-inse
|_ssl-date: TLS randomness does not represent time
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
49671/tcp open msrpc Microsoft Windows RPC
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at
https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port8834-TCP:V=7.94SVN%T=SSL%I=7%D=3/31%Time=67EA7355%P=x86_64-pc-linux
SF:-gnu%r(GetRequest,788,"HTTP/1\.1\x20200\x20OK\r\nCache-Control:\x20must
SF:-revalidate\r\nX-Frame-Options:\x20DENY\r\nContent-Type:\x20text/html\r
SF:\nETag:\x2027393d29a7ce578108e0989bb8e5b05c\r\nConnection:\x20close\r\n
SF:X-XSS-Protection:\x201;\x20mode=block\r\nServer:\x20NessusWWW\r\nDate:\
SF:x20Mon,\x2031\x20Mar\x202025\x2010:50:02\x20GMT\r\nX-Content-Type-Optio
SF:ns:\x20nosniff\r\nContent-Length:\x201217\r\nContent-Security-Policy:\x
SF:20upgrade-insecure-requests;\x20block-all-mixed-content;\x20form-action
SF:\x20'self';\x20frame-ancestors\x20'none';\x20frame-src\x20https://store
SF:\.tenable\.com;\x20default-src\x20'self';\x20connect-src\x20'self'\x20w
SF:ww\.tenable\.com;\x20script-src\x20'self'\x20www\.tenable\.com;\x20img-
SF:src\x20'self'\x20data:;\x20style-src\x20'self'\x20www\.tenable\.com;\x2
SF:0object-src\x20'none';\x20base-uri\x20'self';\r\nStrict-Transport-Secur
SF:ity:\x20max-age=31536000\r\nExpect-CT:\x20max-age=0\r\n\r\n<!doctype\x2
SF:0html>\n<html\x20lang=\"en\">\n\x20\x20\x20\x20<head>\n\x20\x20\x20\x20
SF:\x20\x20\x20\x20<meta\x20http-equiv=\"X-UA-Compatible\"\x20content=\"IE
SF:=edge,chrome=1\"\x20/>\n\x20\x20\x20\x20\x20\x20\x20\x20<meta\x20http-e
SF:quiv=\"Content-Security-Policy\"\x20content=\"upgrade-inse");
MAC Address: 08:00:27:40:50:34 (Oracle VirtualBox virtual NIC)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2025-03-31T10:51:48
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
|_clock-skew: 5s
|_nbstat: NetBIOS name: NESSUS, NetBIOS user: <unknown>, NetBIOS MAC: 08:00:27:40:50:34 (Oracle VirtualBox virtual NIC)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 144.77 secondsVemos lo que parece ser una pagina web en el puerto 8834 pero que va con SSL por lo que se tiene que utilizar HTTPS para entrar, tambien vemos el puerto de WinRM que nos podra servir para conectarnos de forma remota con algun usuario y veremos tambien interesante el servidor SMB el cual podremos ver que recursos compartidos hay, vamos a empezar entrando en la pagina web.
Si entramos de la siguiente forma:
Veremos lo siguiente:

Vemos que es el Software de Nessus por lo que no podremos hace mucho en esta parte de la pagina web, vamos a ver si se pudiera realizar un escaneo al servidor SMB de forma anonima.
SMB
Info:
Vemos que funciono y veremos un recurso compartido que no viene por defecto llamado Documents, vamos a probar a entrar en el.
Veremos que funciona, por lo que vamos a listarlo a ver que nos encontramos.
Nos vamos a descargar los dos PDFs:
Una vez pasados los PDFs si los abrimos veremos un reporte de Nessus pero que no veremos gran cosa o nada interesante, vamos a sacar los metadatos de dichos PDFs para ver si vemos algo.
Metadatos
Info:
Entre los 2 PDFs veremos que hay una opcion Author en la cual pone Jose por lo que podemos deducir que puede ser un nombre de usuario.
Vamos a probar a meter las credenciales probando la contraseña con el propio nombre de usuario en Nessus (jose:jose) pero veremos que son invalidas, por lo que vamos a realizar un poco de fuerza bruta por si pudieramos encontrar la contraseña de la posible cuenta de jose en Nessus.
FFUF
Si nosotros capturamos la peticion con BurpSuite al autenticarnos con cualquier credencial, para ver como se esta haciendo por detras, veremos lo siguiente:

Vemos que se esta enviando a una API de Nessus con el parametro session y en la peticion veremos lo siguiente:
Vemos que se esta realizando con dicha estructura, por lo que vamos a formar un comando con FFUF para realizar fuerza bruta con el usuario jose de la siguiente forma:
Info:
Por lo que vemos hemos obtenido las credenciales de dicho usuario, vamos a probarlas en Nessus
Vemos que si nos podemos loguear en Nessus y veremos que estamos dentro con la cuenta de jose en Nessus, pero si nos vamos a la siguiente ruta settings -> proxy-server.
Y veremos lo siguiente:

Vemos que hay un usuario que se llama nesus, por lo que podemos deducir que puede ser un usuario del sistema en la maquina Windows.
Vamos a realizar la prueba de Test Proxy Server cambiando la configuracion a nuestros requisitos como por ejemplo la IP y el Auth Method en BASIC pero antes de darle al boton, vamos a ponernos a la escucha de la siguiente forma:
Escalate user nesus
Ahora le daremos al boton y veremos lo siguiente:
Vemos que nos envia la contraseña de nessus en Base64, si lo decodificamos veremos lo siguiente:
Info:
Ahora vamos a probar dichas credenciales para el servidor SMB:
Info:
Vemos que nos dice que si funciona, pero que ha expirado, por lo que esto es un fallo de la maquina, tendremos que cambiarlo de forma manual para actualizar la contraseña a la misma, haremos lo siguiente:
Nos vamos a la maquina Windows y le damos al siguiente boton:

Con esto desbloqueamos la maquina Windows y le damos varias veces al ESC para llegar a esta parte:

Pulsaremos en el usuario nesus y le daremos a password para meter la contraseña que expiro, el teclado esta en ingles por lo que tendremos que pulsar las teclas como si fuera teclado ingles es importante.
Una vez metido las credenciales correctas, nos pondra que expiro y que pongamos la nueva contraseña, por lo que repetiremos la misma contarseña y ya se cambiaria de forma correcta, ahora si probamos de nuevo veremos lo siguiente:
evil-winrm
Ahora probaremos en WinRM a ver si funciona:
Info:
Veremos que ha funcionado y ya estaremos dentro de dicha maquina Windows mediante WinRM, por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
Si vemos que privilegios, grupos, etc... Tenemos veremos lo siguiente:
Info:
Vamos a obtener una shell mediante metasploit con meterpreter.
Reverse Shell Metasploit
Ahora vamos abrir un servidor de python3:
En la maquina victima ejecutaremos lo siguiente:
Ahora vamos a bypassear el modulo AMSI del Windows Defender con el siguiente codigo:
URL = Bypass Modulo AMSI Pagina
Antes de ejecutar la shell.ps1 vamos a ponernos a la escucha:
Vemos a utilizar el modulo de esucha:
Ahora vamos a configurarlo de la siguiente forma:
Ahora si podremos ejecutar el script de la reverse shell en la maquina victima.
Ahora si volvemos a donde tenemos la escucha veremos lo siguiente:
Vemos que ha funcionado, por lo que vamos a dejar en segundo plano la sesion de la shell haciendo Ctrl+Z y dandole a Y.
Una vez echo esto, vamos a utilizar un modulo de metasploit para enumerar las diferentes vulnerabilidades a nivel local de la maquina victima Windows.
Vamos a configurar el modulo de la siguiente forma:
Info:
Pero no veremos nada interesante, ya que no funcionara ninguno, vamos a seguir buscando un poco en la maquina victima.
Pero si hacemos esto:
Info:
Veremos que podemos listar y entrar dentro de la carpeta Nessus junto con las .dll etc... Llegados a este punto lo que se nos puede ocurrir es realizar un secuestro de DLL contra el servicio de Nessus.
DLL Hijacking (Nessus Service)
Vamos a crear un .dll que agregara un nuevo usuario como administrador en la máquina victima Windows.
malicious.dll
Ahora vamos a movernos a la carpeta:
Y nos lo pasaremos de la siguiente forma abriendo un servidor de python3:
En la maquina victima:
Con esto ya tendremos el .dll en la carpeta de Nessus, ahora solo tendremos que cambiar el nombre de una de las .dll originales por la maliciosa de la siguiente forma:
Ahora si reiniciamos la maquina y probamos a entrar con el usuario que se supone que se ha tenido que crear llamado hacker veremos lo siguiente:
Info:
Vemos que ha funcionado, pero si listamos los permisos y privilegios que tenemos:
Info:
Vemos que tenemos todo, incluido que estamos en el grupo Administradores por lo que podremos cambiar la contraseña al propio Administrador de la siguiente forma:
Info:
Ahora si probamos a meternos con dicha cuenta y dicha contraseña:
Info:
Veremos que ha funcionado, por lo que leeremos la flag del admin.
root.txt
Last updated