Shocker
Uno strumento per trovare e sfruttare server vulnerabili a Shellshock
Rif.: https://en.wikipedia.org/wiki/Shellshock_(software_bug)
Rilasciato come open source da NCC Group Plc - https://www.nccgroup.trust/
Sviluppato da:
- Tom Watson, tom [dot] watson [at] nccgroup [dot] trust
https://github.com/nccgroup/shocker
Rilasciato sotto AGPL, consultare LICENSE per maggiori informazioni
Testo di aiuto
uso:
shocker.py
-h, --help mostra questo messaggio di aiuto ed esce
--Host HOST, -H HOST
Un hostname o indirizzo IP di destinazione
--file FILE, -f FILE File contenente una lista di target
--port PORT, -p PORT Numero di porta del target (default=80)
--command COMMAND Comando da eseguire (default=/bin/uname -a)
--cgi CGI, -c CGI Singolo CGI da controllare (es. /cgi-bin/test.cgi)
--proxy PROXY ATTUALMENTE UN PO' ROTTO Proxy da usare nel formato
'ip:port'
--ssl, -s Usa SSL (default=False)
--threads THREADS, -t THREADS
Numero massimo di thread (default=10, max=100)
--verbose, -v Output verboso
Esempi di utilizzo
./shocker.py -H 127.0.0.1 --command "/bin/cat /etc/passwd" -c /cgi-bin/test.cgi
Scansiona http://127.0.0.1/cgi-bin/test.cgi e, se trovato, tenta di eseguire
cat /etc/passwd
./shocker.py -H www.example.com -p 8001 -s
Scansiona www.example.com sulla porta 8001 usando SSL per tutti gli script in cgi_list e
tenta l'exploit predefinito per qualsiasi trovato
./shocker.py -f ./hostlist
Scansiona tutti gli host elencati nel file ./hostlist con le opzioni predefinite
Dipendenze
Python 2.7+
Registro delle modifiche
Cambiamenti nella versione 1.1 (Giugno 2018)
- Aggiunte alcune funzionalità di debug aggiuntive e corretto il testo di aiuto
Cambiamenti nella versione 1.0 (Marzo 2016)
- Aggiunti alcuni script aggiuntivi e aggiornati alcuni commenti, URL e dettagli di contatto
Cambiamenti nella versione 0.72 (Dicembre 2014)
- Piccole correzioni alla logica e refusi
Cambiamenti nella versione 0.71 (Dicembre 2014)
- Aggiunto timeout alle richieste urllib2.urlopen usando un 'TIMEOUT' globale
Cambiamenti nella versione 0.7 (Novembre 2014)
- Aggiunta 'pseudo console' interattiva per ulteriore sfruttamento di un server vulnerabile scelto
- Tentativo di pulire i problemi di buffering dell'output avvolgendo sys.stdout in una classe che si svuota ad ogni chiamata a write
- Aggiunto un indicatore di progressione per attività lunghe per rassicurare gli utenti non verbosi
Cambiamenti nella versione 0.6 (Ottobre 2014)
- Prevenzione di codici di ritorno diversi da 200 considerati successi
- Aggiunta la possibilità di specificare più target in un file
- Spostata la lista 'cgi_list' degli script da tentare in un file
- Risolti alcuni problemi di formattazione dell'output
- Corretta regex per hostname/IP validi per permettere hostname con una singola parola
Cambiamenti nella versione 0.5 (Ottobre 2014)
- Aggiunta la possibilità di specificare un singolo script come target invece di usare cgi_list
- Introdotto un timeout sulle operazioni socket per host_check
- Aggiunti alcuni esempi di utilizzo nell'intestazione dello script
- Aggiunto un epilogo al testo di aiuto che indica la presenza di esempi
Cambiamenti nella versione 0.4 (Ottobre 2014)
- Introdotto un limite al numero di thread con default a 10
- Rimossa la gestione dei colori finché non si capisca come farla funzionare ugualmente bene in Windows e *nix
- Correzioni ortografiche
- Lista cgi_list più completa
- Rimossa success_flag dall'output
Pre 0.4 (Ottobre 2014)
DA FARE
- Identificare e rispondere correttamente alla risposta HTTP/200 - falsi positivi - Bassa priorità/seccatura
- Implementare curses per sistemi *nix - Per l'intera applicazione o solo per il pseudo terminal? - Bassa priorità/estetica
- Rendere thread il controllo iniziale dell'host ora che sono supportati più target (e potrebbe renderlo dispendioso in termini di tempo)
- Cambiare verbose in valore intero - quiet, normal, verbose, debug?
- Aggiungere opzione per saltare i controlli iniziali dell'host per velocizzare?
- Aggiungere un riepilogo dei risultati prima di uscire
- Salvare i risultati in un file? Formato?
- Alla fine l'idea è di includere più vettori possibili, ma attualmente solo uno viene controllato.
- Aggiungere supporto colore per Windows e *nix - Bassa priorità/estetica
- Aggiungere un timeout in modalità interattiva per comandi che non restituiscono output, es. /bin/cat /dev/zero
- Abbellire - Bassa priorità/estetica (ovviamente)
- Aggiungere supporto per scansione e sfruttamento di SSH e SMTP? https://isc.sans.edu/diary/Shellshock+via+SMTP/18879
- Aggiungere supporto per proxy SOCKS, potenzialmente usando https://github.com/rpicard/socksonsocks/ da Rober Picard
- Altre cose. Probabilmente.
Ringraziamenti a...