
CVE-2020-0688 PoC
Esta prova de conceito para CVE-2020-0688 inclui funções para a varredura e exploração de uma instância vulnerável do Exchange on-premises.
scan - fornece credenciais e informações do alvo para obter cookies necessários para a exploração e os salva em 'cookies.txt'. Também verifica a exposição do serviço Exchange Control Panel (ECP) para o servidor Exchange alvo, tenta autenticação neste serviço e verifica a correspondência do valor VIEWSTATEGENERATOR apropriado. Se a autenticação for bem-sucedida, a saída do valor do cookie de sessão para criação de payload serializado será exibida.
generate - fornece o valor do cookie de sessão obtido da função 'scan', bem como um comando para execução de código. Isso formatará sua entrada para ysoserial.net gerar um payload serializado para execução de código. Salve a saída do ysoserial em um arquivo como 'payload.txt'.
exploit - recebe a entrada do seu arquivo de cookies obtido ao usar a função 'scan' com autenticação bem-sucedida e codifica em URL o conteúdo do seu arquivo de payload. O exploit realiza a requisição autenticada apropriada para acionar a execução de código contra instâncias vulneráveis do Exchange on-premises.
$./ecp_slap
scan - Scan an Exchange host and obtain cookies needed for exploitation:
./ecp_slap scan -t 10.1.1.5 -d corp.local -u admin -p badpassword
./ecp_slap scan -t mail.corp.com -d CORP -u admin -p badpassword
generate - Generate the ysoserial.net command for payload creation:
./ecp_slap generate -s [ASP.NET_SessionId] -c [COMMAND]
./ecp_slap generate -s 81c35474-6a73-4a1c-af45-b3985e7d7ad1 -c "echo test > C:/temp/test.txt"
exploit - Exploitation of a vulnerable Exchange server:
./ecp_slap exploit -t 192.168.5.22 -c cookies.txt -p payload.txt
./ecp_slap exploit -t mail.corp.com -c cookies.txt -p payload.txt
Se você verificou a versão do Exchange on-premises que está tentando explorar:
mas ainda não é possível verificar a execução bem-sucedida do código, considere executar comandos simples para avaliar se a execução do código está funcionando, como:
Comece com o comunicado de segurança do MSRC que incluirá especificidades sobre patches e versões vulneráveis do Exchange on-premises. A referência cruzada de patches com os números de compilação do Exchange da Microsoft ajudará a determinar a vulnerabilidade. Para reproduzir manualmente a exploração desta vulnerabilidade, siga o incrível artigo do ZDI.
Se você optar por compilar este projeto a partir do código-fonte, em vez de pegar a versão compilada, configurar seu ambiente Go é geralmente tão fácil quanto instalar o GoLang e definir as variáveis de ambiente apropriadas. As etapas para isso estão documentadas aqui.