OpenSSL 的 Heartbleed 漏洞的影响到底有多少? - 知乎
既然大家都这么关注,那么我就再爆点猛料好了。
我一骇客界的朋友Lwqn跟我说他们一年前就已经在利用这个漏洞了,获取到了不少大网站的敏感数据,这个消息让我彻夜难眠。
他发了一个exploit的demo给我,原链接已经撤掉了,所以我放到了gist上:http://gist.github.com/RixTox/10222402 Pyhton3版的在这里OpenSSL heartbeat PoC with STARTTLS support
下图是对DEF CON进行的Heartbleed测试
DEF CON在我测试完一个小时后已修复此漏洞。
事实证明此漏洞的确会造成严重的memory dump,因为与所有OpenSSL数据共享同一块内存,dump出来的有可能是任何内容:用户请求、密码,甚至是服务器的私钥!只要不断进行攻击就很有可能拿到关键的数据。
这是一个很严重的漏洞,涉及开启了Heartbeat扩展的OpenSSL版本1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1
OpenSSL: OpenSSL vulnerabilities
刚才在我们的服务器(Gentoo)上看了一下,用的正是1.0.1c的受威胁版本,不过我们并没有开启Heartbeat,所以并不会受到实际威胁,但还是打上了补丁,以备不时之需。
Add heartbeat extension bounds check. 路 7e84016 路 openssl/openssl 路 GitHub
如果你只是想检测一下你的服务器受不受威胁,现在有一款现成的工具可以用
titanous/heartbleeder 路 GitHub
也可以直接使用下面的OpenSSL命令来判断
/usr/local/bin/openssl s_client -connect $website:443 -tlsextdebug 2>&1| grep 'TLS server extension "heartbeat" (id=15), len=1'
这个命令只告诉你是否有启用Heartbeat,但并不能说明是否受到威胁,还需要结合OpenSSL的版本进行判断。
Hacker News上面有人给出了这段脚本,能检测Alexa Top Million网站开启Heartbeat的服务器
INPUT=websites.csv OLDIFS=$IFS IFS=, [ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } while read rank website do echo "checking $website for heartbeat..." echo -e "quit\n" | /usr/local/bin/openssl s_client -connect $website:443 -tlsextdebug 2>&1| grep 'TLS server extension "heartbeat" (id=15), len=1' done < $INPUT IFS=$OLDIFS
Download Alexa Top 1,000,000 Websites for Free
I wrote a bash script to check the top 1000 websites and huge percentage of them...
跑了一小会儿,但好像并没发现什么有价值的信息。其实Heartbeat作为CRM在OpenSSL中用到的机会本就不多,再加上大网站的反应都很迅速,不容易出现大的纰漏。至于0Day发布之前有没有被人利用就不得而知了。