
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
"Tanto facile da fermare quanto da comprendere."
"Reality Smasher" è un exploit per vRealize che sfrutta i problemi di sicurezza affrontati in VMSA-2021-0004 (CVE-2021-21975, CVE-2021-21983) oltre a una vulnerabilità di escalation dei privilegi scoperta durante i test.
"Reality Smasher" sfrutta CVE-2021-21975 per rubare le credenziali dell'account "maintenanceAdmin" di vRealize. Ciò viene realizzato ospitando un listener HTTPS utilizzando la chiave e il certificato inclusi in questo repository. Queste credenziali vengono utilizzate in tutte le successive richieste autenticate. Innanzitutto, vengono richieste e memorizzate le password hashate dell'account amministratore per un uso successivo.
Successivamente, viene effettuata una richiesta per abilitare il servizio SSH. Segue una sovrascrittura del file "admin.properties" utilizzando CVE-2021-21983. Viene quindi effettuata una richiesta per impostare la password iniziale dell'utente admin. Ciò è consentito perché le credenziali dell'admin erano state memorizzate in "admin.properties". Senza questo file, vRealize ritiene che le credenziali non siano mai state impostate e accetta la richiesta non autenticata "/security/adminpassword/initial".
Dopo aver verificato che le nuove credenziali admin consentano l'accesso SSH, vengono generate le chiavi SSH. La vulnerabilità di escalation dei privilegi viene quindi utilizzata per consentire il login SSH come root, riavviare il servizio sshd e aggiungere la chiave pubblica a "/root/.ssh/authorized_keys". Dopo aver convalidato l'accesso SSH come root, le password hashate originali vengono ripristinate e all'utente viene concessa una shell SSH interattiva come utente root. Tutte le operazioni SSH vengono eseguite utilizzando "golang.org/x/crypto/ssh".
È stato fatto uno sforzo significativo per garantire l'affidabilità e la robustezza di questo exploit. Tuttavia, questo è il mio primo progetto in golang, quindi usa questo exploit a tuo rischio. Si consiglia di eseguire questo exploit con verbosità per catturare le password hashate e la chiave privata generata.
