
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
vRealize RCE + повышение привилегий (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
"Его так же легко остановить, как и понять."
«Reality Smasher» — это эксплойт для vRealize, использующий уязвимости, описанные в VMSA-2021-0004 (CVE-2021-21975, CVE-2021-21983), а также уязвимость повышения привилегий, обнаруженную во время тестирования.
«Reality Smasher» эксплуатирует CVE-2021-21975 для кражи учетных данных учетной записи «maintenanceAdmin» vRealize. Это достигается путем запуска HTTPS-слушателя с использованием ключа и сертификата, включенных в этот репозиторий. Эти учетные данные используются во всех последующих аутентифицированных запросах. Сначала запрашиваются и сохраняются хешированные пароли учетной записи администратора для последующего использования.
Затем выполняется запрос на включение службы SSH. После этого производится перезапись файла «admin.properties» с использованием CVE-2021-21983. Далее выполняется запрос на установку начального пароля пользователя admin. Это возможно, потому что учетные данные администратора были сохранены в «admin.properties». Без этого файла vRealize считает, что учетные данные никогда не были установлены, и принимает неаутентифицированный запрос «/security/adminpassword/initial».
После проверки того, что новые учетные данные admin позволяют доступ по SSH, генерируются SSH-ключи. Затем используется уязвимость повышения привилегий, чтобы разрешить вход root через SSH, перезапустить службу sshd и добавить открытый ключ в «/root/.ssh/authorized_keys». После проверки доступа root по SSH исходные хешированные пароли восстанавливаются, и пользователь получает интерактивную SSH-оболочку с правами root. Все операции SSH выполняются с использованием «golang.org/x/crypto/ssh».
Были приложены значительные усилия для обеспечения надежности и устойчивости этого эксплойта. Однако это мой первый проект на golang, поэтому используйте этот эксплойт на свой страх и риск. Рекомендуется запускать эксплойт с подробным выводом, чтобы захватить хешированные пароли и сгенерированный закрытый ключ.
