
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
"So einfach zu stoppen wie zu verstehen."
"Reality Smasher" ist ein Exploit für vRealize, der die Sicherheitslücken ausnutzt, die in VMSA-2021-0004 (CVE-2021-21975, CVE-2021-21983) behoben wurden, sowie eine während der Tests entdeckte Privilegieneskalations-Schwachstelle.
"Reality Smasher" nutzt CVE-2021-21975 aus, um Anmeldeinformationen für das Konto "maintenanceAdmin" von vRealize zu stehlen. Dies wird erreicht, indem ein HTTPS-Listener mit dem in diesem Repository enthaltenen Schlüssel und Zertifikat bereitgestellt wird. Diese Anmeldeinformationen werden in allen nachfolgenden authentifizierten Anfragen verwendet. Zuerst werden die gehashten Passwörter des Admin-Kontos angefordert und für die spätere Verwendung gespeichert.
Als nächstes wird eine Anfrage gestellt, um den SSH-Dienst zu aktivieren. Darauf folgt ein Überschreiben der Datei "admin.properties" unter Verwendung von CVE-2021-21983. Danach wird eine Anfrage gestellt, um das initiale Passwort des Admin-Benutzers festzulegen. Dies ist möglich, weil die Anmeldeinformationen des Admins in "admin.properties" gespeichert wurden. Ohne diese Datei geht vRealize davon aus, dass noch nie Anmeldeinformationen gesetzt wurden, und akzeptiert die nicht authentifizierte Anfrage "/security/adminpassword/initial".
Nach der Validierung, dass die neuen Admin-Anmeldeinformationen SSH-Zugriff ermöglichen, werden SSH-Schlüssel generiert. Die Privilegieneskalations-Schwachstelle wird dann verwendet, um den Root-SSH-Login zu erlauben, den sshd-Dienst neu zu starten und den öffentlichen Schlüssel an "/root/.ssh/authorized_keys" anzuhängen. Nachdem der Root-SSH-Zugriff validiert wurde, werden die ursprünglichen gehashten Passwörter wiederhergestellt und dem Benutzer eine interaktive SSH-Shell als Root-Benutzer gewährt. Alle SSH-Operationen werden mit "golang.org/x/crypto/ssh" durchgeführt.
Es wurde erheblicher Aufwand betrieben, um die Zuverlässigkeit und Robustheit dieses Exploits zu gewährleisten. Allerdings ist dies mein erstes Golang-Projekt, daher verwenden Sie diesen Exploit auf eigenes Risiko. Es wird empfohlen, diesen Exploit mit Ausführlichkeit auszuführen, um gehashte Passwörter und den generierten privaten Schlüssel zu erfassen.
