Nax es una maquina de TryHackMe, resolvimos un pequeño reto para acceder a Nagiox XI donde descubrimos una vulnerabilidad que nos dio acceso privilegiado.
Room
Titulo |
Nax |
Descripción |
Identify the critical security flaw in the most powerful and trusted network monitoring software on the market, that allows an user authenticated execute remote code execution. |
Puntos |
490 |
Dificultad |
Media |
Maker |
stuxnet |
NMAP
Escaneo de puertos tcp, nmap nos muestra el puerto http (80), ldap (389) y el puerto ssh (22) 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
|
# Nmap 7.80 scan initiated Tue May 5 00:26:26 2020 as: nmap -sV -o nmap_scan_mini nax.thm
Nmap scan report for nax.thm (10.10.253.17)
Host is up (0.26s latency).
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
389/tcp open ldap OpenLDAP 2.2.X - 2.3.X
443/tcp open ssl/ssl Apache httpd (SSL-only mode)
Service Info: Host: ubuntu.localdomain; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue May 5 00:27:33 2020 -- 1 IP address (1 host up) scanned in 67.23 seconds
# Nmap 7.80 scan initiated Tue May 5 00:27:36 2020 as: nmap -T5 -sV -sC -p- -o nmap_scan nax.thm
Warning: 10.10.253.17 giving up on port because retransmission cap hit (2).
Nmap scan report for nax.thm (10.10.253.17)
Host is up (0.18s latency).
Not shown: 65358 closed ports, 171 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 62:1d:d9:88:01:77:0a:52:bb:59:f9:da:c1:a6:e3:cd (RSA)
| 256 af:67:7d:24:e5:95:f4:44:72:d1:0c:39:8d:cc:21:15 (ECDSA)
|_ 256 20:28:15:ef:13:c8:9f:b8:a7:0f:50:e6:2f:3b:1e:57 (ED25519)
25/tcp open smtp Postfix smtpd
|_smtp-commands: ubuntu.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
| ssl-cert: Subject: commonName=ubuntu
| Not valid before: 2020-03-23T23:42:04
|_Not valid after: 2030-03-21T23:42:04
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
389/tcp open ldap OpenLDAP 2.2.X - 2.3.X
443/tcp open ssl/ssl Apache httpd (SSL-only mode)
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: 400 Bad Request
| ssl-cert: Subject: commonName=192.168.85.153/organizationName=Nagios Enterprises/stateOrProvinceName=Minnesota/countryName=US
| Not valid before: 2020-03-24T00:14:58
|_Not valid after: 2030-03-22T00:14:58
|_ssl-date: TLS randomness does not represent time
| tls-alpn:
|_ http/1.1
5667/tcp open tcpwrapped
Service Info: Host: ubuntu.localdomain; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue May 5 00:42:16 2020 -- 1 IP address (1 host up) scanned in 879.93 seconds
|
GOBUSTER
Utilizamos gobuster para busqueda de directorios y archivos.
1
2
3
4
5
6
7
8
9
10
11
|
root@upset:~/thm/nax# gobuster dir -u http://nax.thm/ -w /usr/share/wordlists/dirb/common.txt -t 25 -q -x php,html,txt
/cgi-bin/ (Status: 403)
/cgi-bin/.php (Status: 403)
/cgi-bin/.html (Status: 403)
/index.html (Status: 200)
/index.php (Status: 200)
/index.html (Status: 200)
/index.php (Status: 200)
/javascript (Status: 301)
/nagios (Status: 401)
/server-status (Status: 403)
|
HTTP
Encontramos una pagina simple en el puerto 80 y en el codigo fuente encontramos una direccion.
GOBUSTER /nagiosxi/
Utilizamos gobuster para busqueda de directorios y archivos en /naxiosxi/
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
root@upset:~/thm/nax# gobuster dir -w /usr/share/wordlists/dirb/common.txt -t 25 -q -x php,html,txt -u http://nax.thm/nagiosxi/
/about (Status: 301)
/account (Status: 301)
/admin (Status: 301)
/api (Status: 301)
/backend (Status: 301)
/config (Status: 301)
/db (Status: 301)
/help (Status: 301)
/images (Status: 301)
/includes (Status: 301)
/index.php (Status: 302)
/index.php (Status: 302)
/install.php (Status: 302)
/login.php (Status: 200)
/reports (Status: 301)
/tools (Status: 301)
/upgrade.php (Status: 302)
/views (Status: 301)
|
NAGIOS XI RCE
En la ruta /naxiosxi/
encontramos una plataforma la de Naxios XI, buscamos un exploit que pueda afectar esta plataforma y vemos que existe un exploit NagiosXi RCE el cual necesita un usuario y contraseña, tambien existe un exploit para metasploit nagiosxi_authenticated_rce
.
En la pagina principal (/) encontramos una image ASCII de lo que parece ser Cicada 3301 y con algunos valores debajo de esta Ag Hg Ta Sb Po Pd Hg Pt Lr
al principio intentamos utilizar un decodificador de Gematria Primus pero los valores numericos no reflejaban ningun tipo de texto o codificacion valida. Realizamos una busqueda de estos valores y encontramos que todos pertenecen a la tabla periodica, obtenemos los valores numericos de cada elemento.
1
2
3
4
5
6
7
8
9
|
Ag ---> 47
Hg ---> do it yourself
Ta ---> >:)
Sb ---> do it yourself
Po ---> >:)
Pd ---> do it yourself
Hg ---> >:)
Pt ---> do it yourself
Lr ---> 103
|
Al obtener estos valores lo decodificamos de hex a texto plano y encontramos una direccion de un archivo.
Al visitar la direccion del archivo vemos que es una imagen que tiene texto codificado y utiliza la codificacion de piet.
Al decodificar la imagen nos devuelve una cadena de caracteres.
Logramos obtener un usuario y contraseña, verificamos que funcionan en la plataforma ingresando con las credenciales.
Utilizamos estas credenciales con el exploit que encontramos para Naxios (El exploit me dio algunos errores por lo que tuve que agregar la contraseña directamente al codigo).
Ejecutamos el exploit y ponemos a la escucha netcat, y logramos obtener una shell.
Nuestra shell ya tiene privilegios root por lo que no es necesario escalar privilegios, y logramos obtener nuestra flag user.txt y root.txt.
Utilizamos el exploit disponible para metasploit y funciona muy bien.