第6章 在Windows 8上架桥过隙
在推出Windows Vista的时候,Microsoft公司针对无线网络的模式做了重大的改变,这些改变主要体现在两个地点,其一是设计了“网络驱动程序接口规范6.0版本”(Network Driver Interface Specification 6.0,NDIS)模型,其二是设计了“本地Wi-Fi接口”(native Wi-Fi driver)驱动程序,二者共同取代了原有的古板、缺乏特色的Windows XP无线网络接口。在其后继各个版本中,如Windows 7中的NDIS 6.20、Windows 8中的NDIS 6.30、Windows 8.1中的NDIS 6.40,这些版本一起使Windows的无线功能更加强大。Windows的用户可以在“无线协议集”(wireless stack)里享受更大的灵活性,以及在允许新的应用程序运行、在安全模式、在更好地访问无线服务方面,都比以前的版本有了更大的进步。
这种新的访问方式在给Windows使用者带来方便的同时,也同时为黑客提供了一种新的能力,该能力允许黑客从命令行(command-line)或图形用户界面(Graphical User Interface,GUI)将无线协议用于恶意的目的,进而攻击附近的其他网络。在本章中,我们将从攻击者的角度,来检验Windows 7和Windows 8的“本地Wi-Fi接口”驱动程序上的功能,然后借助这些功能,跨越半个地球,去攻击位于另一个远端的一个无线网络。
本章将使用一种解说式的形式,带你穿越“端到端”(end-to-end)的攻击过程,从攻击前的准备,侦察对方的弱点,占领一个无线客户端,到攻击远端的整个无线网络。在这种情况下,我们将着重突出一个常见的攻击线路:在该线路上,攻击者会先在安全薄弱的环节入手,攻击这一个客户端,一直到这里,我们还没有发现这一章与上一个同样是攻击用户客户端系统的章节之间,在内容上有多大本质上的区别。不过,下面的区别就再明显不过了。当这个被攻占过的客户端离开当前的环境,回到了他自己的另一个网络环境(比如他单位的网络或他家里的网络)时,这个原本对于我们来说是“隔断”式的网络环境,突然因为有一个被我们攻击的主机可以合法的进入,而对我们开放了。也就是说,在这个客户端返回到自己网络的时候,借助于该被攻占的客户端的资源,我们通过“架桥过隙”[1](bridge the air-gap)的方式同样可以访问或攻击他的那个系统上的计算机,甚至是整个网络。
⚡ 攻击的案例
“无线热点”指的是在公共场所提供的,通过无线局域网Wi-Fi技术接入Internet服务的地点。在这种服务中,用户只要拿着无线终端(手机、iPad等),找到“无线热点”的网络名称(即前面各章中的“基本服务集标识”),如果有密码,则输入密码,随后连接到“无线热点”的无线路由器(即前面各章中的“AP接入点”)上,然后就可以访问互联网了。无疑,“无线热点”的环境为我们攻击客户系统提供了一个极好的机会。通过使用诸如Airpwn这样的工具,可以操控Web浏览器的活动,进而就可以侦听到很多敏感的内容。如没有加保护措施的电子邮件和其他的网络活动,再如冒充网络的服务。总之,一个攻击者有多项选择可以用来对“已占领了的客户端”系统实施操作。当然,如果你不是“打哪儿指哪儿”,而是“指哪儿打哪儿”,那么在完成上面操作的时候,还有一个重要的前提,那就是你得先找到要攻击的目标。
“热点攻击”(hotspot attack)属于投机取巧型的攻击方式,黑客实施这种攻击有两种方式,一种是“打哪儿指哪儿”式,利用这种方式,在攻击的范围,发现有漏洞的客户端后,就对它实施攻击,并在成功后将它们添加到自己的“僵尸网络”[2](botnet)中。另一种是“打哪儿指哪儿”式,用户先选中一个目标,然后在其客户端上找漏洞,最后实施攻击。无论是哪一种,现在面临的问题都是:选择合适的“热点攻击”的地点。针对一个具体的目标地址,“谷歌地图”(Google Map)可以准确地实施定位,比如它可以告诉你,“这个点”就是某个员工在中午用餐时间经常光顾的餐馆所在的地址。将这种定位技术,结合上述可用的“热点”功能,黑客可以预先在某个商店旁边搭建一个可以实施某种攻击的“热点”,然后诱惑被锁定的用户连接到这个“热点”,并使用该“热点”进行上网的操作。
在几乎每一个大城市中,“无线热点”广受其用户的欢迎,同时也为黑客提供了很多机会。在下面的这次攻击的例子中,我们将描述一个虚构的攻击目标,名叫“羹美食品”(Potage Food)。这是一家提供有“热点”环境的餐馆,并为客户提供免费Wi-Fi服务,所使用的“服务集标识”是“POTAGE”。
在这种攻击中,我们将演示如何颠覆无线客户端系统,让其执行恶意的可执行文件,并授权我们去访问其客户端系统。当这个客户端返回到他家里,开始使用家庭网络的时候,我们将通过“架桥过隙”的方式远程访问他的计算机系统和他的家庭网络系统。在这一章中,用于完成破解这种远程网络的工具,都是使用Windows 7或Windows 8的客户端。
- 在计算机领域,air-gap本义是指不与网络相连,也不与“和网络相连的计算机”相连的计算机。严格地讲,根据安全级别,air-gap分为好多种,如任何时候,任何情况下,不得以任何方式(有线、无线、串口组网、USB、磁盘等)“与计算机或网络相连”,又称“物理隔断”;再如某计算机不能在同一时间同时连接两个网络;再如某计算机不能基于TCP/IP协议(可以通过串口或USB直连)与另外的计算机或网络相连。而本章这里指的则更宽松,指的是我无法连接到某个网络,但与我相连的某个计算机可以连到,所以我借助于这台计算机作为“桥”,超过我和那个无法连接网络之间无法逾越的“缝隙”,间接攻击那个我无法连接的网络。——译者注
- “僵尸网络”是指采用一种或多种传播手段,使大量主机在感染“僵尸程序”(bot程序)后,形成一种由控制者和被感染主机之间一对多的控制网络。这里的botnet是robot和network的组合词,这里的“网络”不是某种特定拓扑结构下各计算机组成的通信网络,而是由控制者可以通过各种方式进行操控的计算机联合组成的一种关系组合。——译者注
本书评论