Osheep

时光不回头,当下最重要。

黑客篇|地铁的免费Wi-Fi是否真的免费?

文/Mr.C

她那时还太年轻,不知道所有命运赠送的礼物,早已在暗中标好了价格。—— 茨威格 《断头王后》

最近广州的小伙伴们朋友圈大概会被类似咁样葛文章刷屏:

《黑客篇|地铁的免费Wi-Fi是否真的免费?》

做为一名程(lao)序(si)员(ji),看到之后,我的内心大概是这样的:

《黑客篇|地铁的免费Wi-Fi是否真的免费?》

地铁免费Wi-Fi!!! 有Wi-Fi就算了,它竟然还免费!!!似乎这是一件值得激动的事情… but,可能很多人并没有意识到免费Wi-Fi背后的安全问题。
为了验证该问题,C先生冒着被地铁工作人员当场抓获并没收作案工具的危险,进行了一场毫无风波的黑客行动,代号为“SC”。

1、首先准备好“作案工具”:
《黑客篇|地铁的免费Wi-Fi是否真的免费?》

2、以root身份打开Wireshark,进入监控模式:
《黑客篇|地铁的免费Wi-Fi是否真的免费?》

3、点击开始….

……
……
……
等待大概半小时(取决于C先生公司到家的距离)…

4、停止抓包后,会看到这样的信息:
《黑客篇|地铁的免费Wi-Fi是否真的免费?》

可以看到,Wireshark其实已经为像C先生这种网络小白做好了初步分析,可以通过简单的几个点击获取这半小时抓取到的信息,如:

《黑客篇|地铁的免费Wi-Fi是否真的免费?》

由上图信息可以看出这半小时内大概抓取了77MB的无线数据信息。
要注意的是,这是在电脑完全没有连接上任何热点的情况下抓取的信息。
原理大概就是 :

“你和你朋友隔着2米在讲话,我站在中间。我能不能听清你们之间的聊什么东西?”

“那有什么办法可以避免被偷听?”
那就是你们之间讲的是暗语或者我听不懂的外语。恩,这个就是Wi-Fi的加密,我们设置的密码不但用来防止被蹭网,也可以用于加密。”

  • 初步分析
    现在手上有77M的信息,继续进行下一步分析,打开最外层的数据包,也就是TCP/IP四层模型中的数据链路层:

    《黑客篇|地铁的免费Wi-Fi是否真的免费?》

  • 进一步分析
    由简单的初步分析我们便可以大概知道大家用什么手机,地铁Wi-Fi的AP是哪家中了标,根据初步分析,除了小米,应该还有某不知名厂家中了标(P.S.是真的不知名)….
    但其实初步分析的数据并没有太大意义,因为这只是让别人知道自己用的是什么手机或是什么AP,真正有杀伤力的,是TCP/IP的应用层信息。
    目前我们大部分互联网应用使用的http协议,国内除了某些大型网站如Baidu、Taobao以及金融相关的网站,像新浪微博这种都是使用的Http,那就意味着我们的上网信息将会变得一览无遗,like this:

    《黑客篇|地铁的免费Wi-Fi是否真的免费?》

    上图的这些正是别人在浏览的信息(可以看到我们很熟悉的weixin域名),所以,当你连接上无加密的公共Wi-Fi时相当于和别人共享你在看的信息…
    (P.S. 喜欢在星巴巴用Wi-Fi上网的童鞋请注意… =_=)

  • 再进一步分析
    从另个角度说,我们正大光明,即使让别人知道我们在浏览网站也没有什么关系。但是,注意了!假设你在使用公共Wi-Fi的过程中泄露了账号信息,如以下这位:

    《黑客篇|地铁的免费Wi-Fi是否真的免费?》

    这个数据包包含了一个很重要的信息,cookie!
    什么是cookie? 大概相当于我们身份证明,你怎么证明你是你自己?

    P.S. 之前我朝就出现过无法证明自己是自己的新闻

cookie大概就相当于我们的身份证明,当我们访问一个网页时,我们只要携带这个证明,网站就认为我们是我们(…嗯,哲学问题)。
看到BD开头,聪明的你应该猜到这是哪家公司的cookie了,我们可以写个简单例子来证明:

假设我们正常登陆网站时,代码如下:

import requests
url = 'http://www.baidu.com'
fd = open("./baidu.html", 'bx')
resp = requests.get(url)
fd.write(resp.content)

获取到的信息如下:

《黑客篇|地铁的免费Wi-Fi是否真的免费?》

但如果我们把刚刚抓到的BDUSS作为cookie内容,修改代码为如下:

import requestsurl = 'http://www.baidu.com'
cookies = dict(BDUSS='YourBDUSS') #安全原因,请使用自己的BDUSS
fd = open("./baidu.html", 'bw')
resp = requests.get(url, cookies=cookies)
fd.write(resp.content)
《黑客篇|地铁的免费Wi-Fi是否真的免费?》

可以看到,只需要简单地填充BDUSS信息,我们便可能可以以百度账号为qq3419****的用户登录与BaiDu相关的一系列互联网服务(包括但不限于百度糯米、百度钱包、百度创课、百度网盘)。
至此大概你就知道为何你QQ被盗、微博被盗、各种账号无缘无故无仇无恨就被盗的原因了吧?(还有另一个很大的可能就是你账号用了简单密码或者统一密码,要是某网站被脱裤,就全部账号一起Game Over。)
其实在他们眼里,
我们,并无差异,
黑客们不针对谁,
不懂安全上网的,
在他们眼里,都是肉鸡……
我们的设备和带宽,可能只是他们用来make money的工具。

结论


虽然本文题目有个“黑”字,但C先生是该方面的小白。如果一个小白都可以获取到以上信息,大家请自行脑补专业黑客的神技…

  • 所有无加密的Wi-Fi(包括但不限于地铁)都存在先天性缺陷,请不要相信所谓关于安全的宣传。
  • 尽量避免使用外面的免费Wi-Fi或热点
  • 如果一定要使用请不要使用任何需要账户的服务,目前国内互联网公司大如新浪微博这种都还未采用https,微信也有部分未加密内容可以简单获取。
  • 如果一定要登录请一定不要登录与金钱有关的账号,比如支付宝、网银。16年多起大学生受诈骗导致死亡案件相信大家还有印象,以现在“大学生”的情况,去饭堂开个免费Wi-Fi热点,估计一天能钓个不少鱼。

    《黑客篇|地铁的免费Wi-Fi是否真的免费?》

P.S. 评论中大家对能否完成这样的操作似乎有疑问,如果觉得不信有一定技术能力的请自行尝试,文中已给出主要步骤。如果没有的,那请相信我。

点赞