经常有白帽子跟宅客君说,只要你开着WiFi,我就有办法拿到你手机的敏感信息。作为演示,他们经常可以(在未见过的情况下)直接说出手机品牌,并给出一些敏感文件的信息。
他们利用的是一种“伪造WiFi”的技术,也可以称之为“蜜罐网络”。
简单来说,就是搭建一个手机曾经连过的WiFi,比如无密码的“CMCC”、密码是“pass”的“WiFi”。手机发现这个WiFi就会自动连接上。接下来处于同一个网络,而且路由的控制权还在白帽子那边,手机后台app的同步数据自然全被对方知道。
SSID(WiFi名字)、密码相同,WiFi就可以连接,在现在看也不算漏洞,大部分个人WiFi的密码还是很私密的(因为有类似WiFi万能钥匙的app存在,这个判断不一定准确)。但是,当出现大量公共WiFi后,它就变得有机可乘。楼下餐厅、旁边商超、无线公交……,遍布整个城市的公共WiFi并没有私密性,它们的密码是公开的,或者直接没有密码。
光有大的框架是不够的。想有针对的伪造WiFi,首先还需要知道这台手机曾经连过哪些WiFi,盲目乱试的效果可不会好。
这里牵涉到了手机与路由之间的连接过程。嗯,如果你使用的是Android手机,可以先看看/data/misc/wifi/wpa_supplicant.conf这个文件(需root权限),该文件内包含了这台手机曾经连过的所有WiFi信息,SSID、密码、加密方式、MAC等等,其它系统也有类似的文件结构。
智能手机厂商以及系统提供方想为用户提供更好体验,它们会对WiFi连接速度做出特别的优化。比如,广播所有曾连接过WiFi的名字。路由器会收到这些信息,如果其中有无密码的WiFi,经过定制的路由器可以自动设置成同名WiFi。攻击来了。
守卫WiFi的最后一重关卡还在手机上,是我们在“为什么说公共WiFi不安全?”一文中强调的取消自动连接。
当碰到这种伪造WiFi时,自动连接就会变得很悲剧。后台app同步的数据可以被马上监听到,如果有主动上网,泄漏的数据还会更多。这也是为什么很多人恶心WiFi万能钥匙,它的存在,让这种伪造WiFi攻击有可能波及个人网络。
伪造WiFi攻击并不常见,这种攻击消无声息、短时间所得甚少,因此非常难被发现。但小编认为,有很多同类案例,比如Google街景车,会扫描经过路途的WiFi并存储在云端,这已经是一种广撒网式的搜集数据了。
它的最高成果,目前来看应该是自动化的攻击装置。一个定制化的OpenWrt系统,针对每个路过的手机伪造不同WiFi,并自动做数据监听。国内目前有不少白帽黑帽在研究。
防范它没有太好的办法,一是主动关闭WiFi功能,二是取消自动连接(见这儿),三是连接无密码WiFi后取消保存。这都是些较麻烦的操作。当然,安全与便利几乎永远都是对立的。