一次诈骗引发的OPENSSL漏洞发现经历
0×01 背景
关于 OpenSSL“心脏出血”漏洞的分析看这里。
简单来说就是利用该漏洞,黑客坐在自己家里电脑前,就可以实时获取到约30%的https开头网址的用户登录账号和密码、cookie等敏感数据,影响网银、知名购物网站等。
下图为这个漏洞的影响范围,可以看到淘宝、微信、网银、腾讯都不能幸免。
0×02 正文
今天中午收到短信,说我4月16的航班被取消。短信上的航班号、公司、航班时间、乘客信息都正确无误。
收到这么条短信着实吓到我了,因为:
- 我之前已经改签过一次机票,这次再改签手续会很麻烦。
- 16号去沈阳的事是计划好的事,改期会严重影响到后续已经订好的安排和服务。
于是,我登录了淘宝,跟客服人员确认航班的情况是否属实。
到了这里我就可以断定那条信息是诈骗短信了。一般到了这里也就到了尾声,可我还是很好奇,为什么他能知道我那么精准的个人信息?结合最近全球爆发的OpenSSL漏洞,我开始进行想法的验证。
0×03 验证前的准备
@RixTox开源了OpenSSL漏洞的检测代码openssl.py,粗略看了一下,发现作者留了一手,每次只dump 16kb
内存。于是修改源码如下:
把
hb = h2bin(''' 18 03 02 00 03 01 40 00 ''')
改成
hb = h2bin(''' 18 03 02 00 03 01 ff ff ''')
把
for b in xrange(0, len(s), 16):
改成
for b in xrange(0, len(s), 64):这里要说一句话外音:
这两天四处找人要各种 Heartbleed 工具的,注意检查一下代码,别被人反搞。如果代码是 Python 版,更得格外留意。今年 Python
刚出了一个 recvfrom_into() 函数的缓冲区溢出(CVE-2014-1912)。利用这个漏洞,完全可以设计出非常隐蔽的
Exploit 反噬后门。
0×04 验证猜想
深圳航空官网地址为www.shenzhenair.com。在命令行运行程序,用法如下:
不要放弃,没有发现https链接,可以在谷歌搜索“inurl:https:// 深圳航空”。
结果就找到深圳航空官网一个以https开头的网站。
复制该网址,重新进行OpenSSL漏洞检测。发现服务器驳回了请求。
百度得知,深圳航空加入了星空联盟,和几家航空公司实现了代码共享,所以我又继续对这几家航空公司以https开头的网址进行OpenSSL检测。
进行了一番扫地毯式的捕捉行动,还是没找到OpenSSL漏洞,可能从OpenSSL漏洞爆发到现在,官网已经进行了修复。我心有不甘,决定再度探索,一定要找到一个有这个漏洞的网站才行。
0×05 发现漏洞
众所周知,学校网站的防御一般比较脆。于是我自己写了几个脚本相互配合,再利用inurl抓取匹配规则的网址,不一会儿就发现大把学校爆掉了。
比如東京理科大学、清华大学VPN、北京交通大学邮件系统、江苏大学VPN服务、北京外国语大学vpn网关、贵州大学邮件系统、广州大学华软软件学院邮件系统……太多了不列举了(/
□ \)
这里以東京理科大学作为例子展示:
在命令行输入:python openssl.py mail.bjtu.edu.cn
果真爆出漏洞:
每次攻击爆出64KB的数据,多次攻击就可以达到网站脱库的目的。
0×05 我的看法
今天没有诈骗短信的话,自己还真不知道OpenSSL漏洞猖狂到如此地步,网站隐私信息很简单的获取到。特别是各个学校的邮箱系统、VPN服务,中奖率高达90%。
我已经把自己学校的漏洞反馈给研究所的老师了,在此建议所有看到这篇文章的童鞋赶紧去清空自己邮箱的隐私信息,改网银、支付宝、QQ密码,以免中招。不要抱有侥幸心理。
原文链接:http://caipeipei.cn/?p=475
关于 OpenSSL“心脏出血”漏洞的分析看这里。
简单来说就是利用该漏洞,黑客坐在自己家里电脑前,就可以实时获取到约30%的https开头网址的用户登录账号和密码、cookie等敏感数据,影响网银、知名购物网站等。
下图为这个漏洞的影响范围,可以看到淘宝、微信、网银、腾讯都不能幸免。
0×02 正文
今天中午收到短信,说我4月16的航班被取消。短信上的航班号、公司、航班时间、乘客信息都正确无误。
收到这么条短信着实吓到我了,因为:
- 我之前已经改签过一次机票,这次再改签手续会很麻烦。
- 16号去沈阳的事是计划好的事,改期会严重影响到后续已经订好的安排和服务。
于是,我登录了淘宝,跟客服人员确认航班的情况是否属实。
到了这里我就可以断定那条信息是诈骗短信了。一般到了这里也就到了尾声,可我还是很好奇,为什么他能知道我那么精准的个人信息?结合最近全球爆发的OpenSSL漏洞,我开始进行想法的验证。
0×03 验证前的准备
@RixTox开源了OpenSSL漏洞的检测代码openssl.py,粗略看了一下,发现作者留了一手,每次只dump 16kb
内存。于是修改源码如下:
把
hb = h2bin(''' 18 03 02 00 03 01 40 00 ''')
改成
hb = h2bin(''' 18 03 02 00 03 01 ff ff ''')
把
for b in xrange(0, len(s), 16):
改成
for b in xrange(0, len(s), 64):这里要说一句话外音:
这两天四处找人要各种 Heartbleed 工具的,注意检查一下代码,别被人反搞。如果代码是 Python 版,更得格外留意。今年 Python
刚出了一个 recvfrom_into() 函数的缓冲区溢出(CVE-2014-1912)。利用这个漏洞,完全可以设计出非常隐蔽的
Exploit 反噬后门。
0×04 验证猜想
深圳航空官网地址为www.shenzhenair.com。在命令行运行程序,用法如下:
不要放弃,没有发现https链接,可以在谷歌搜索“inurl:https:// 深圳航空”。
结果就找到深圳航空官网一个以https开头的网站。
复制该网址,重新进行OpenSSL漏洞检测。发现服务器驳回了请求。
百度得知,深圳航空加入了星空联盟,和几家航空公司实现了代码共享,所以我又继续对这几家航空公司以https开头的网址进行OpenSSL检测。
进行了一番扫地毯式的捕捉行动,还是没找到OpenSSL漏洞,可能从OpenSSL漏洞爆发到现在,官网已经进行了修复。我心有不甘,决定再度探索,一定要找到一个有这个漏洞的网站才行。
0×05 发现漏洞
众所周知,学校网站的防御一般比较脆。于是我自己写了几个脚本相互配合,再利用inurl抓取匹配规则的网址,不一会儿就发现大把学校爆掉了。
比如東京理科大学、清华大学VPN、北京交通大学邮件系统、江苏大学VPN服务、北京外国语大学vpn网关、贵州大学邮件系统、广州大学华软软件学院邮件系统……太多了不列举了(/
□ \)
这里以東京理科大学作为例子展示:
在命令行输入:python openssl.py mail.bjtu.edu.cn
果真爆出漏洞:
每次攻击爆出64KB的数据,多次攻击就可以达到网站脱库的目的。
0×05 我的看法
今天没有诈骗短信的话,自己还真不知道OpenSSL漏洞猖狂到如此地步,网站隐私信息很简单的获取到。特别是各个学校的邮箱系统、VPN服务,中奖率高达90%。
我已经把自己学校的漏洞反馈给研究所的老师了,在此建议所有看到这篇文章的童鞋赶紧去清空自己邮箱的隐私信息,改网银、支付宝、QQ密码,以免中招。不要抱有侥幸心理。
原文链接:http://caipeipei.cn/?p=475
还没人赞这篇日记