
Exploit proof-of-concept per una vulnerabilità di command injection nel modulo Task Manager di VitalPBX, che dimostra la consegna di un payload di reverse shell tramite manipolazione del profilo cron.
Titolo della vulnerabilità: Iniezione di comandi
Autore: Erick Duarte
Versione: < 3.2.5-2
La vulnerabilità si manifesta utilizzando il modulo Task Manager in combinazione con il profilo Cron. Per sfruttare questa vulnerabilità è necessario posizionare uno script in una cartella specifica all'interno del sistema operativo. La cartella è "/var/lib/vitalpbx/scripts".
Così, per curiosità, ho iniziato ad analizzare cosa veniva inviato al server usando Burp. Per farlo, ho creato un profilo Cron da eseguire ogni minuto.

Successivamente, ho creato il Task Manager.

Nel campo script, ho notato che veniva passato il nome del file. Così, ho deciso di inserire un payload di reverse shell codificato in base64 (solo per evitare errori con caratteri speciali) e di inviarlo.

Poi, ho inviato la richiesta POST solo per applicare le impostazioni.

Ed ecco, abbiamo ottenuto la shell.

Comprendo che è necessario un livello di privilegio relativamente alto, e dipende anche dall'avere uno script nella directory specifica. In VitalPBX, è possibile creare più utenti e concedere vari tipi di permessi. Cosa succederebbe se questi permessi fossero configurati male? Inoltre, esiste l'opzione di creare un Tenant. Se uno di questi Tenant riuscisse a sfruttare questa vulnerabilità, potrebbe potenzialmente ottenere accesso completo al server, inclusi altri Tenant.
Spero che i miei risultati contribuiscano alla comunità della sicurezza, e confido che VitalPBX apporterà le correzioni necessarie.