heartleech
heartleech copied to clipboard
misses TLS1.1/1.0 vuln servers
Currently uses the heartbeat bytes \x18\x03\x03\x00\x03\x01\x40\x00
. Should be \x18\x03\x02
for TLS1.1 or \x18\x03\x01
for TLS1.0.
BTW, the \x40\x00
bytes at the end specify the length of data that the server should return - you can set this to \xff\xff
if you want the maximum amount per heartbeat.
I fix this for --raw mode. By default, heartleech uses the OpenSSL to negotiate the handshake with the server, then sends heartbeats. The version used is whatever OpenSSL selects. I don't know the APIs well enough to influence this.
The --raw mode doesn't use the OpenSSL API, but instead sends heartbeats before the handshake completes. I send a smaller request because the servers I was testing against had trouble replying with all the packets in this mode.