近日,来自英国网络安全公司SureCloud的研究人员在一篇分析文章中指出,他们最近发现了一个值得注意的浏览器行为,以及一个几乎影响到所有家用路由器的安全漏洞。

研究人员表示,这个浏览器行为与保存的凭证有关——当凭证保存在浏览器中时,它们将于与URL绑定在一起,当它们再次出现时,就会自动插入到相同的域中。再说说这个安全漏洞,它源于管理接口的连接是非加密的HTTP连接。

将这两者结合在一起,就可以在不破解握手协议的情况下获取各种网络的访问权限(破解握手是目前最常用的WPA/WPA2网络破解方法,但需要目标使用的是弱密码)。研究人员表示,这种新的攻击方法应该适用于大多数网络,但要想取得成功,需要几个先决条件:

  • 目标网络上必须要有一个活动的客户端设备;
  • 客户端设备之前必须连接过其他开放网络,并允许自动重新连接;
  • 客户端设备应该使用基于Chromium的浏览器,比如Chrome和Opera;
  • 客户端设备应该在浏览器中保存了路由器管理接口凭证;
  • 目标网络路由器管理接口必须配置为使用非加密的HTTP。

没有这5个先决条件,实施攻击是不可能的。事实上,大多数浏览器都会提示用户自动保存凭证,因此这些条件似乎很容易满足。最不容易满足的条件应该是第三条和第四条,即需要目标使用的是基于Chromium的浏览器并在浏览器中保存了路由器管理接口凭证。不过,即使这样,仍会有大量的家庭路由器用户受到影响。

无论是Firefox、IE/Edge或Safari浏览器,它们都涉及到大量用户交互,因此攻击确实是可以实现的,但需要更多地依赖于社会工程。另一方面,即使目标没有保存路由器的管理接口凭证,但我们也不能排除他们使用的是默认凭证的可能。

同样需要注意的是,虽然攻击主要针对的是可以直接从web接口提取WiFi密钥的家用路由器,但如果其他设备也使用的是可以对URL进行预测的非加密的HTTP,那么它们同样可以成为攻击目标。许多物联网设备就存在这种情况,但研究人员表示他们目前还没有做这方面的测试。

为了便于你理解这个被命名为“Wi-Jacking”的新型攻击方法,我们建议你首先对Karma/Jassager攻击进行一个初步的了解。关于Karma/Jassager攻击的介绍可以参考: https[:]//wiki.wifipineapple.com/legacy/#!karma.md。

Wi-Jacking攻击测试

步骤1. 将客户端设备接入我们自己的网络

首先使用aireplay-ng发送deauthentication请求,并使用hostapd-wpe发起Karma攻击(均使用无线网卡Alfa AWUS036NHA)。

步骤2. 触发浏览器加载我们的URL

我们可以使用dnsmasq和python脚本来完成这项任务。当看到HTTP请求时,我们需要创建一个重定向到我们的URL的响应以及服务于我们自己的页面。

根据目标路由器的不同,对应的URL和服务页面会有所不同。我们可以根据BSSID和ESSID检测要发送的URL和页面组合,或者仅仅通过猜测,但选择的范围是有限的:

这里还有一些额外的重定向选项。默认情况下,我们允许所有HTTPS通过,并等待HTTP请求。但如果等待时间过长,Windows上的WiFi captive portal检测就会被触发,进而就会自动启动默认浏览器并打开我们指定的URL。不过,触发captive portal也有一定的限制。尤其是在MacOS中,它启动的是一个单独的浏览器窗口,专门用于处理captive portal,以阻止我们窃取保存的凭证。

步骤3. 窃取自动填充凭证

在页面加载时,浏览器会进行两项初始检查:

1、URL源是否与路由器的管理接口源(协议、IP地址、hostname)匹配;

2、页面上的input域是否与浏览器保存的路由器接口的内容相匹配。

如果这两项检查都通过,浏览器则会自动使用保存的凭证填充到页面中。在这里其,其实就包含了路由器管理员的详细信息。当然,这些input域一般是完全隐藏的。

如果目标使用的Chrome浏览器,还需要进行一个额外的步骤:Chromium的PasswordValueGatekeeper特性要求用户以某种方式与页面进行交互。比如,点击页面上的任意位置,只有这样我们才能够窃取到凭证。

如果目标使用的Firefox、Internet Explorer、Safari或Edge,这些input域是无法隐藏的。在这种情况下,我们仍然能够实施攻击,但前提是目标点击了form域并从下拉列表中选择了保存的凭证。显然,我们需要依赖于一些社会工程。

步骤4. 发送目标到家用WiFi

在获取到凭证之后,我们仍然希望目标让我们的页面打开的时间能够更长一些。此时,我们停止Karma攻击,将目标释放回原来的网络中。

一旦目标设备成功连接回原来的网络,我们的页面就会位于路由器管理接口源,并将管理凭证加载到JavaScript中。然后,我们使用XMLHttpRequest登陆,获取PSK或进行所需的任何更改。研究人员表示,对于他们测试的大多数路由器而言,他们可以直接从web接口中以明文的形式提取WPA2 PSK,而无需获取网络的握手信息。如果路由器隐藏了密钥,我们还可以使用已知的密钥来开启WPS。这样,我们就可以创建一个新的AP或执行其他的一些操作。

攻击演示视频

视频地址:https[:]//youtu.be/i_LLKUCG3PQ

攻击使用的工具

除了路由器特定的payload和选择脚本之外,用于执行攻击的所有工具都是Kali的标准组件。脚本可以在这里找到:https[:]//gitlab.com/eth01/Wi-Jacking-PoC。

需要说明的是,Wi-Jacking攻击目前仍处于概念证明(PoC)阶段,但毫无疑问,现实的攻击会很快出现。SureCloud的研究人员表示,他们下一阶段的目标是构建一个WiFi pineapple模块来使攻击自动化,这可能需要好几个月的时间。

声明:本文来自黑客视界,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。