Command injection in PRTG Network Monitor (CVE-2018-9276)
PRTG Network Monitor (de Paessler) es una suite comercial de monitorización de red para Windows. Las versiones anteriores a 18.2.39 sufren CVE-2018-9276: una inyección de comandos autenticada en el sistema de notificaciones. PRTG permite crear notificaciones de tipo Execute Program que lanzan un script (p.ej. un .ps1 de demo) con unos parámetros, y ese campo de parámetros no se sanea antes de concatenarse a la línea de PowerShell que ejecuta el servicio. Como el servicio de PRTG corre como NT AUTHORITY\SYSTEM, cualquier comando inyectado se ejecuta con privilegios máximos.
El abuso requiere una sesión válida en el panel (en Netmon se consigue con credenciales filtradas en un backup de la propia configuración). Una vez dentro:
- Setup → Account Settings → Notifications → Add new notification.
- Activar Execute Program, elegir un script (
Demo exe notification - outfile.ps1) y en Parameter poner el payload, usando;para encadenar comandos tras un valor legítimo:
test.txt;net user jaime j4ime! /add;net localgroup administrators jaime /add- Guardar y disparar la notificación (botón de campana / Send test notification).
El resultado es un administrador local nuevo (o cualquier comando como SYSTEM). Se valida con crackmapexec smb <ip> -u jaime -p 'j4ime!' (debe salir Pwn3d!) y se entra por WinRM con Evil-WinRM.
Cómo detectarlo. La firma más fiable es de linaje de procesos en el host: el servicio de PRTG (PRTG Server.exe, corriendo como SYSTEM) lanzando powershell.exe/cmd.exe/net.exe como hijo (Event ID 4688 / Sysmon 1), algo que una notificación legítima no hace con net user. La creación de un administrador local nuevo (4720 + 4732 al grupo Administrators) justo después de disparar una notificación es la señal directa. En la aplicación, la edición de una notificación Execute Program cuyo campo Parameter contiene ;/&/| queda registrada en el log de configuración de PRTG.
Defensa. Actualizar PRTG a 18.2.39 o superior; no exponer el panel a redes no confiables; y rotar las credenciales que hayan podido quedar en backups de configuración accesibles.