当前位置: 首页 > 科技观察

判断支持Heartbeat

时间:2023-03-15 11:44:36 科技观察

服务器的NSE脚本是否支持heartbeat是heartbleed漏洞产生的必要条件。如果确定某个SSL端口不支持心跳,则基本可以排除风险。在SSL握手阶段,如果ClientHello声明客户端支持心跳,服务器端会在ServerHello中声明自己是否也支持心跳。在ssl-enum-ciphers.nse的基础上,改了一个nse脚本(http://pan.baidu.com/s/1pJ37kF5),根据以上特点判断SSL是否支持Heartbeat。这个脚本在nmap6.40下正常工作,在5.x下好像会报错,有些定义冲突。[kussa@Kussascripts]$nmap--scriptssl-heartbeat-p443passport.baidu.com在2014-04-1009:59启动Nmap6.40(http://nmap.org)passport.baidu的CSTNmap扫描报告.com(61.135.185.194)Hostisup(0.0039slatency).PORTSTATESERVICE443/tcp打开https|_ssl-heartbeat:no[kussa@Kussascripts]$nmap--scriptssl-heartbeat-p443login.taobao.comStartingNmap6.40(http://nmap.org)at2014-04-1010:00CSTNmapscanreportforlogin.taobao.com(42.156.184.11)Hostisup(0.030slatency).PORTSTATESERVICE443/tcpopenhttps|_ssl-heartbeat:yes对于像我们这样使用更多闭源解决方案的公司来说,这个脚本可能更有用。关注扫描到的支持心跳的端口。nmap--scriptssl-heartbeat-Pn-p443,993,995-iLip.txt-oNhb.txt当然在脚本后面加一个心跳请求和pythonPoC是一样的...PS(下面的语句没被passedStrictverification):1.目前的pythonPoC在处理部分服务器发送的ServerHello请求时似乎会出错。等待ServerHello这一步,根本没有发送心跳包。所以,如果那个PoC检测出来的问题,肯定是有问题的,但是如果检测没有问题,就不一定了。2.这个脚本正好相反。3.好像不管是客户端还是服务端,微软的产品都不支持heartbeat,除非专门引入OpenSSL。