
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
vRealize RCE + Privesc (CVE-2021-21975, CVE-2021-21983, CVE-0DAY-?????)
"Tão fácil de parar quanto de compreender."
"Reality Smasher" é um exploit para vRealize que aproveita os problemas de segurança abordados em VMSA-2021-0004 (CVE-2021-21975, CVE-2021-21983), além de uma vulnerabilidade de escalonamento de privilégios descoberta durante os testes.
O "Reality Smasher" explora o CVE-2021-21975 para roubar credenciais da conta "maintenanceAdmin" do vRealize. Isso é alcançado hospedando um listener HTTPS usando a chave e o certificado incluídos neste repositório. Essas credenciais são usadas em todas as solicitações autenticadas subsequentes. Primeiro, as senhas com hash da conta de administrador são solicitadas e armazenadas para uso posterior.
Em seguida, é feita uma solicitação para habilitar o serviço SSH. Isso é seguido por uma sobrescrita do arquivo "admin.properties" usando o CVE-2021-21983. Depois, é feita uma solicitação para definir a senha inicial do usuário administrador. Isso é permitido porque as credenciais do administrador foram armazenadas em "admin.properties". Sem esse arquivo, o vRealize acredita que as credenciais nunca foram definidas e aceita a solicitação não autenticada "/security/adminpassword/initial".
Após validar que as novas credenciais de administrador permitem acesso SSH, as chaves SSH são geradas. A vulnerabilidade de escalonamento de privilégios é então usada para permitir o login SSH como root, reiniciar o serviço sshd e anexar a chave pública a "/root/.ssh/authorized_keys". Após validar o acesso SSH como root, as senhas hash originais são restauradas e o usuário recebe um shell SSH interativo como usuário root. Todas as operações SSH são realizadas usando "golang.org/x/crypto/ssh".
Foi feito um esforço significativo para garantir a confiabilidade e a robustez deste exploit. No entanto, este é o meu primeiro projeto em golang, então use este exploit por sua conta e risco. É recomendável executar este exploit com verbosidade para capturar as senhas com hash e a chave privada gerada.
