心脏出血,丘比特与无线网络

2014-06-20 +7 141394人围观 ,发现 3 个不明物体 WEB安全

写在前面:

心脏出血漏洞又坑了一把无线网络,这次的利用方法比较苛刻,最容易中招的是基于EAP的路由器,也是很多大型公司所使用的路由器。原文地址

正文:

自从我发现了丘比特漏洞,得到了很多关注,也收到了很多问题,在下面的文章中我将回答一下这些问题。

What is cupid?

丘比特是我给Linux中“hostapd” 和 “wpa_supplicant”这两个文件的补丁的名字。这两个补丁修复了程序在TLS链接时产生心脏出血漏洞的行为。

hostapd 是linux建立Access Point所使用的程序,而wpa_supplicant是linux和anroid用来连接无线网络所使用的程序。

(有趣的是这两个程序都是一个人写的,很多代码都一样,所以补丁也差不多)

How does the attack work?

这种攻击在本质上还是使用心脏出血的攻击手法,发送恶意的数据包读取目标机器的内存。不同点在于,这种漏洞是在,当TLS基于EAP连接建立时(EAP是一种无线网络下的多认证机制框架)触发的。

攻击客户端,我们可以利用hostapd(打上丘比特补丁的)建立一个恶意的网络,当受害者连接时,hostapd将发送一个恶意的包从而触发漏洞。

攻击服务端的时候,我们可以利用wpa_supplicant(打上丘比特补丁的),建立TLS链接之后发送恶意心跳包。

我还发现了一个,对心脏出血漏洞的误解,很多人以为,在TLS链接完全建立之后才可以实施心脏出血漏洞的利用。我通过实验,发现在Client Hello信息被发送之后,心脏出血漏洞就可以成功利用了。

Do I need to provide a valid user/password to exploit this vulnerability?

简而言之不需要,在提供正确的用户名密码之前这个漏洞就可以被触发了,有些特殊情况下触发这个漏洞需要一个正确的

用户名(不包括密码),或者需要一个username/realm的组合,这些可以通过嗅探简单获取。

How to spot vulnerable systems:

你可以使用丘比特触发漏洞,然后通过抓包来检测返回的包。

下面是wpa_supplicant_cupid的利用测试结果

首先我们提供一个用户名,之后我们通过EAP创建一个TLS链接。不用等待握手包完成,发送出血包,就可以收到泄漏的内存。

下面是hostapd_cupid的利用测试结果

和上面的利用发发类似,收到Hello包之后就可以展开攻击。

What software is affected?

使用存在漏洞的OpenSSL版本肯定会受到漏洞的影响,比如Android 4.1.0 和 4.1.1,我大胆猜测一下,所有的android版本都使用了wpa_supplicant来连接无线网络,所以这个漏洞也可能影响到绝大多数anroid版本。

Regarding vulnerable clients:

如果你是用Android 4.1.0 和 4.1.1,需要小心的链接未知的wifi网络。

如果你是用linux,需要确定OpenSSL库升级到最新版本。

Regarding vulnerable servers:

如果你是家用的路由器,那么可以放心,因为一般情况下家用路由器不会使用EAP验证机制。

如果你是一个公司无线方案的提供方,那么要注意这个漏洞,会在EAP的验证机制下被利用。

这些评论亮了

发表评论

已有 3 条评论

取消
Loading...
css.php