公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师


54人参与 |分类: L滴生活|时间: 2020-06-18

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

先说结论:「不要使用公共 Wifi」。

以下实验均为学术研究用途,如自行使用,后果自负。

缘起

有一晚我窝在北门卧客的房内,电脑虽然收得到 Wi-Fi 却无法上网,而且这个现象在大厅不会发生。打开 WiFi 扫描仪,看到四个相同 SSID 的讯号,而这个最强的讯号就是让我没办法上网的原因。立马回报这个问题给他们,最后协助他们修复了那台有问题的 AP,还得到了一张免费住宿卷(结果被我放到过期)。

去年的 AIS3 Mentor 计画要想题目,我就在我脑海把这个东西挖了出来:「相同 SSID 盖台 DoS 攻击的防御」。这是一个连网装置连线设计的 feature(功能),在出现相同 SSID 的情况下,装置会选择讯号最强的进行连线,不管装置是否已经连线。

想到的解决方法是记忆 MAC(网路连线装置唯一序号,类似连网装置的身分证字号,理论上每个装置的序号都是独一无二的),但攻击者也可以伪造 MAC,这个题目就被我搁置了。

看到 TDOH conf 的徵稿,这个题目又被我挖出来了,把题目的重点改成钓鱼,但 Wifi 钓鱼其实行之有年,究竟能玩出什幺新花样呢?

要钓就要钓最大条的:

要使用 iTaiwan 要先注册帐号密码,帐号是使用者手机,密码是使用者自订,连上 iTaiwan 会跳出登入视窗,这样的机制称之为 Captive Portal。

Captive Portal 运作的原理大致如下图:

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

手机连上 Wifi 会测试网路的可用性,而不同 OS 有不同的测试路径:

根据这些测试连线的 response status,手机就可以知道 Captive Portal 的存在,并且重新导向到登入的页面,这东西太有意思了!我开始研究「Captive Portal 钓鱼」(以下简称 CP 钓鱼)。

正文

CP 钓鱼有许多的优点

要实作 CP 钓鱼有几个重点:

而我使用的硬体设备有:

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

1. 一个同名的 Wifi 热点

这个太简单了应该大家都做得到,打开手机热点编辑一下热点名称就好了。

我在 RPi2 使用「hostapd」这个套件来管理我的 Wifi 名称,当然这个 Wifi 的 SSID 就是「iTaiwan」。

2. 自动跳出登入画面

在了解每个 OS 的 Captive Portal 机制,且大部分的装置预设会採用分享器提供的 DNS 设定,我决定採用 dnsmasq 来做 DNS hijacking,将所有的 DNS 请求都解析到我的装置上,并且将每一个 OS 的测试连线对应到一个跳转页面,将这些请求都导向到我的钓鱼登入页面。

 

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

3. 一个与原登入页面相似的钓鱼页面

我使用 HTTracker 来将 iTaiwan 的登入页面砍回来,再将登入的表单修改成传入我的处理页面,如下图:

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

4. 将输入的资料传入到我的资料库

最后我的处理页面会将使用者的输入储存到资料库中。

5. 让他看起来更像

利用刚刚的 DNS hijacking,我让他的网址与原本的 iTaiwan 一模一样:

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

另外我也设计,让其每次都只会导引到失败页面,但因为跳转的太快在(fail.php sleep(3)),最后就变成了这样:

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

受害者以为登入失败,还会尝试其他组密码呢 XD

进阶利用

以上的钓鱼都是利用人心的弱点,接下来利用装置才是重点!

在更改 iTaiwan 页面的时候我注意到了一个功能,没错就是 「记住我」,关键的程式码如下:

「记住我」使用了 cookie 来加密储存使用者的帐号密码,在我仔细研究后发现 key 的产生方式与装置的 MAC address 有关,攻击者可以利用真实网站送出不同的 MAC address 得到不同的 key:

公共免费 WiFi 服务 iTaiwan 超好骇?资深工程师

一个 Wifi 热点能轻鬆得到装置的 MAC address,而 DNS hijacking 后的网址的吻合性
,也能轻鬆拿到浏览器内同网域下的 Cookie。有了 Cookie,有了 MAC address,不用使用者互动拿到帐号密码,简单来说:

而且不少装置在关闭萤幕下也能跳出登入视窗,使用者根本无法察觉 因为这一切都是预设动作,大家可以看这个 DEMO 影片(以下实验均为学术研究用途):

后记

最后我把这个漏洞回报给 HITCON ZeroDay(https://zeroday.hitcon.org/vulnerability/ZD-2017-00906):

修复的方式就是在 cookie 加上 secure flag,让没有凭证的钓鱼页面无法存取 cookie,但这样的攻击只是冰山一角。

结论:防御 CP 钓鱼最好的方法就是 「不要使用公共 Wifi」。

─ ─

关于资安,我们还需要知道什幺?

Youtube 用户注意!看影片电脑变慢了,可能是骇客正用你电脑挖矿赚外快
自驾车的隐忧:明明是我的车,为何我只能遥控空调,骇客却能远端剎车?
Google 挂保证的五大资安秘诀,让帐号再也不会被盗!
联想 ThinkPad 资安爆漏洞,指纹辨识竟然能被一组「万用密码」破解?

总统府资安週送随身碟,藏有恶意病毒
重大资安漏洞!英国媒体报导:全球所有 Wifi 都可能被骇了
Android 没有 iPhone 安全!每连接一次 Wifi 就透露一次行蹤