标题：战争驾驶
战争驾驶(WarDriving)
随着无线局域网(WLAN)技术的不断兴起，越来越多的人们通过在家和单位部署无线局域网，来享受无线网络带来的乐趣，与此同时，无线局域网不断凸显出来的安全问题也随之成为人们广泛关注的焦点。在这些为数众多的无线局域网安全问题之中，“战争驾驶”恐怕还没有被广大的普通无线用户所关注，这主要是由于许多人对于战争驾驶还没有太多了解所至。
对于战争驾驶，战争驾驶爱好者可以通过它给自己带来无穷的乐趣，也给无线局域网用户带来了相应的安全威胁。作为普通的无线用户，我们也可以通过战争驾驶所使用的技术来了解自己所部署的无线局域网是否安全，并由此找到相应的无线局域网安全解决之法。
鉴于战争驾驶的这些作用，本文将从战争驾驶的原理出发，通过一个具体的战争驾驶实例来和大家一起讨论它是如何进行的，从而了解应当使用什么方法来防范和降低战争驾驶带来的安全风险，以及如何使用战争驾驶的技术来帮助我们找到无线局域网中的安全弱点。
正文中出现的软件插件以出现顺序于扩展阅读中
什么是战争驾驶
我们在这里所指的战争驾驶就是指使用相应的硬件和软件打造的无线局域网侦察平台，通过徒步或利用相应交通工具的方式在各个城镇的每个街道寻找不设防的无线访问点(AP)的一种统称。由于这种发现不设防的无线局域网的方式与以前黑客通过免费电话寻找不设防的拔号网络的战争拔号相似，又由于为了寻找更大范围内的不设防的无线局域网，通常会驾驶相应的交通工具(如自行车或小车)来进行，由此就形像地称它为战争驾驶。
对于战争驾驶来说，有时的目的不只是为了找出不设防的无线访问点这么简单，战争驾驶者还会通过使用GPS设备定位每个开放的无线AP的经纬度，然后通过GPS绘图软将这些找到的开放AP按具体的经纬度在GPS地图中标识出来，并且，还会将这些信息连同无线访问点的名称、SSID和无线AP所在机构名称等信息都公布到互联网上的相应网站或论坛中。
现在，已经存在许多进行战争驾驶的团体，团体成员一般都是某个具体的城市或地域中的战争驾驶爱好者，他们会经常团体进行战争驾驶活动，然后将找到的不设防的无线局域网信息公布到相关网络上。这些战争驾驶爱好者经常在一些论坛，进行战争驾驶经验交流，以及发布找到的开放的无线局域网信息。
对于纯粹进行战争驾驶的爱好者来说，他们的活动仅仅只是为了发现尽量多的不设防的无线访问点，最多也就是测试一下被检测到的AP的信号强度，以及通过这些无线AP免费地连接到互联网上。甚至有些战争驾驶爱好者还会通过在网络上公布信息或其它方式，来提醒不安全的无线局域网用户进行安全防范。但是，对于不怀好意的以攻击为乐的人来说，这些不设防的无线局域网就是他们进行网络入侵和获取机密数据最好的途径。
因此，本文的主要目的也只是为了让无线局域网用户对战争驾驶有一个清楚的认识，并不是一篇用来讲述如何攻击一个无线局域网的文章，希望对此有兴趣的朋友只是通过战争驾驶获得相应的乐趣，或者通过它来了解自己所在无线局域网的安全状况，并为无线安全做出力所能及的贡献。
战争驾驶需要的装备
要进行战争驾驶就必需为此准备下列所示的这些装备：
1、战争驾驶所需的硬件设备
战争驾驶的硬件通常是指笔记本电脑或PDA，主要原因是这两种设备都具有可移动的特点，可以让战争驾驶者随身携带它们走街穿巷。这些硬件设备通常都内置或可外接不同的无线网卡，利用电池供电，并具有强大的数据处理能力，完全能满足寻找无线访问点的需求。尤其是现在具有WIFI和GPS功能的手机和PDA的出现，让战争驾驶变得越来越轻松，但是，PDA具有的功能却远远比不上笔记本电脑，因此，笔记本电脑仍然是战争驾驶最好的设备。本文所描述的内容也只是针对使用笔记本电脑进行战争驾驶来说的。
2、战争驾驶所需的软件
进行战争驾驶主要是通过各种无线侦察软件来搜索使用802.11a/b/g协议，以及即将成为下一代无线局域网标准的802.11n协议的无线局域网信号，因而还得为战争驾驶选择相应的无线侦察软件。就目前来说，市面上出现的无线侦察软件虽然已经不少，但它们既有免费和商业之分，也有运行的系统平台之分，并且还得了解它们支持哪些类型的无线网卡芯片。因此，我们在选择需要的无线嗅探软件时，就必需在了解这些软件的主要作用和支持的运行平台的基础上再来进行选择。
下面，我将简单地对三款被广大战争驾驶爱好者使用的无线局域网检测软件做一个简短的介绍，希望可以给需要这些信息的读者提供一些软件选择方面的帮助。
(1)、Netstumbler
NetStumbler是一个免费的用来寻找使用IEEE802.11a/b/g/n标准的无线局域网检测工具。它支持包括PCMCIA无线网卡在内的绝大多数主流无线网卡，同时，还加入了对全球GPS卫星定位系统的支持。NetStumbler可以用来验证无线客户和无线AP的配置是否存在弱点;可以用来检测干扰无线局域网信号的原因;可以用来检测一些没有经过授权的无线接入点;与GPS配合，还可以用来定位检测到的不设防的无线AP的具体方位。NetStumbler可以将搜索到的无线访问点的SSID名称、MAC地址、IP地址，以及是否应用了加密等信息全部显示出来。
NetStumbler可以在Windows98及以上的操作系统版本中运行，它现在的最新版本是NetStumbler0.4.0。
(2)、Ministumbler
MiniStumbler是一个WindowsCE下的无线侦察工个，它可以检测到使用802.11a/b/g协议建立的无线局域网。
MiniStumbler实际上就是NetStumbler软件的精简版，我们可以使用它来验证无线局域网的安全设备，查找无线局域网信号不能到达的具体位置，检测是否存在其它无线信息在干扰自己的无线局域网，还能检测出已经连接到无线局域网中的没有授权的无线访问终端，以及可以在部署分布式无线局域网时来帮助各中继AP之间的最佳连接位置。它还有一个最大的功能就是可以用它来轻便地通过PDA或智能手机进行娱乐性质的战争驾驶。
目前，MiniStumbler只能在HPC2000、PocketPC3.0,、PocketPC2002和WindowsMobile2003中使用，这样就限制了它的通用性。如果想使用它来进行战争驾驶，就应当选择支持它的PDA产品。MiniStumbler软件的最新版本是MiniStumbler0.4.0。
(3)、Kismet
Kismet也一个免费的基于IEEE802.11a/b/g/n标准的无线局域网嗅探工具。Kismet能够与绝大多数支持无线监控模式的无线网卡一起工作。例如使用PRISM2、2.5、3和GT无线芯片，以及OrinocoGold和Atherosa/b/g无线芯片的无线网卡。Kismet主要以被动的方式对无线网络进行嗅探，它能将嗅探到的文件保存为Tcpdump等软件可以读取的格式，能检测出无线网络现在所使用的IP地址范围，还能检测出隐藏了的无线网络SSID名称。
它还能识别无线访问点和无线客户中无线适配器的制造商和工作模式，与GPS合作，绘制无线访问点和无线客户所在位置的网络地图，以及可以和更多的其它软件合作，来扩展这些软件的应用范围，例如可以与snort合作作为无线入侵检测系统。Kismet甚至能检测出无线网络中安装有NetStumbler软件的主机，以此来找到非法无线接入者。
Kismet可以在Linux2.0及以上的发行版本中运行，也可以在Windows2000及以上系统上运行。当Kismet在Linux系统中运行时，我们应当下载它的Kismet-2008-05-R1二进制安装包，还需要libpcap二进制安装包文件，有些Linux发行版本，如Fedora系列默认已经安装好了。
如果要在Windows2000及以上系统中运行，我们就需要从上述网站中下载setup_kismet_2008-05-R1.exe安装文件，还必需下载AirPcap的setup_airpcap_3_2_1.exe文件来安装。
不过，在Windows系统下运行，有时不能找到笔记本中内置的无线网卡，而需要重新安装AirPcap支持的USB接口或PCMCIA接口的无线网卡，因而，我推荐它在Linux系统下运行，这样又好为Kismet指定无线网卡类型。
实际上，使用笔记本电脑进行战争驾驶，NetStumbler和Kismet是必备的二款战争驾驶软件，在进行战争驾驶之前，我们一定要将这们准备好，它们的安装和配置我会在接下来的内容中具体说明。
3、战争驾驶所需的无线网卡选择
战争驾驶的另一个必要的条件就是选择被所使用的无线局域网检测软件支持的无线网卡，最主要的原因就是一个无线局域网检测软件可能只支持一种或几种使用某种无线芯片的无线网卡。因此，在决定使用什么样的无线网络检测软件之前，要先了解它支持哪些无线网卡。
在这里所说的无线网卡类型，并不是指无线网卡的生产厂商，而是指无线网卡所使用的芯片的类型。目前，以下所示的这几种无线网卡芯片可以用来进行战争驾驶：
(1)、Hermes芯片：使用这种无线网卡芯片的厂商有Dell、IBM、Sony和Lucent。
(2)、Prism2/2.5/3芯片：使用这种无线网卡芯片的厂商有Intel、Linksys、Netgear、proxim、SMC和ZOOM。
(3)、Aironet芯片：使用这种无线网卡芯片的厂商只有Cisco。
(4)、Atheros芯片：使用这种无线网卡芯片的厂商有Netgear、D-Link、IBM和东芝。
在选择无线网卡时，我们还应当确定无线网卡是否支持监控模式，以及目前笔记本电脑上使用的操作系统是否支持设置无线网卡为监控模式。为了能得到最好的兼容性和战争驾驶的效果，我们还要确定无线网卡信号的最大功率，以及是否支持其它的扩展功能，例如外接天线等。
4、战争驾驶相关的其它硬件
除了上述所示的这些用于战争驾驶的基本装备以外，我们还可以为达到其它目的再准备一些其它的硬件。例如为了能定位找到的不设防的AP的具体位置，我们可以使用GPS来定位它所在的经纬度，我们还可以使用GPS绘图软件将找到的不设防的AP的经纬度在GPS地图上标出来。而且，对于战争驾驶来说，如果需要在更大的范围内进行，还需要借助一些交通工具，一边驾驶一边进行无线局域网检测，这才是战争驾驶的最初形态。
当然，有一些战争驾驶爱好者特别喜欢使用PDA或智能手机来进行战争驾驶，因而，拥有一台可以安装MiniStumbler或其它相似无线网络检测软件的PDA或智能手机是最基本的条件。有时，我们在选择这些手持设备时，选择一些同时内置GPS功能的设备能省去我们许多不必要的麻烦。很幸运的是，现在这样的手持设备越来越多，也越来越便宜，这样就让战争驾驶爱好者多了一种方式选择。
战争驾驶设备的组装
准备好上述这些与战争驾驶相关的必要装备之后，并不意味着这样就可以开始进行战争驾驶活动了。在进行具体的战争驾驶活动之前，我们还必需按一定的要求将这些必要的战争驾驶装备组合起来，达到能满足进行战争驾驶活动的条件。
打造战争驾驶设备主要包括无线网卡的安装，无线嗅探软件及GPS绘图软件的安装，以及GPS等硬件设备的安装。这些设备和软件的安装都很简单，尤其是在Windows系统下进行安装时，只要按安装程序的提示就可以完成相应软件的安装，而硬件安装只需与笔记本电脑连接正确后，再安装相应系统平台下的驱动程序就可以。
下面我只描述一下Kismet在Linux系统下的安装方法，因为它的安装和配置要比Netstumbler复杂。
在安装Kismet之前，我们应当已经下载了它的二进制安装包kismet-2008-05-R1.tar.gz。我使用的Fedora10Linux系统，因此捕包文件libpcap0.9在安装系统时已经一同安装好了，我们可以在系统终端下通过rpm–qlibpcap命令来查看系统上是否已经安装了这个包文件。由于是以二进制文件方式安装Kismet，因此，还要确保系统中已经安装了qt-4、gcc和glibc-header等与二进制文件编译相关的文件包。
如果要支持GPS，还需要安装GPSD软件，如果要绘制地图，就需要Imagemagick软件。GPSD和Imagemagick的安装都很简单，就不再在此做详细的说明。
在安装Kismet之前，还要了解所使用的无线网卡在Kismet下的表式方式，例如我笔记本电脑上的Intel5100AGN无线网卡，在kismet下以iwl4965表示。无线网卡的表式方式会在配置Kismet时使用以，也只有正确指定了无线网卡在Kismet下的表式方式才能被它识别。
当然，这一切都应该在无线网卡已经被所使用的操作系统正确识别，并安装好了相应的驱动程序的前提下进行的。
完成上述这些准备工作之后，就可以开始在Linux系统下安装Kismet。
在本文实例中，我已经将kismet-2008-05-R1.tar.gz保存到了/home/ly/wardrive目录下，在安装时，先以根(root)身份登录系统终端，然后进入/home/ly/wardrive目录，再按下列步骤完成Kismet的安装：
1、解压kismet-2008-05-R1.tar.gz，在系统终端提示符下输入下列命令：
tar–xzvfkismet-2008-05-R1.tar.gz
2、然后使用cdkismet-2008-05-R1命令进入解压后的目录，再在终端提示符下输入下列命令进行安装：
./configure
Make
Makeinstall
3、软件安装完成后，我们就要通过修改其/usr/local/etc/kismet.conf配置文件来完成一些基本的设置。用Vi文本编辑器打开此文件，按“i”键修改此文件中的下列项的内容：
(1)、suiduser=liuyuan
设置的帐户最好不是根用户，可以是系统中原本已经存在的帐户，也可
以是刚建立的帐户。
(2)、Source=type,interface,name[,channel]
其中type就是指无线网卡在Kismet下的表式方式，例如我笔记本中的是Intel5100AGN无线网卡用iwl4965来表示;Interface是指无线网卡所用接口的名称，在Linux系统下很容易就可以指定无线网卡的接口名称，例如在Fedora10下就以wlan0表示第一块无线网卡，第二块无线网卡以wlan1表示，其它的以次类推;name可以是一个用一个好记的名字来代替，例如intel5100;至于channel可以指定也可以不指定。在本例中完成此项设置后的内容为Source=iwl4965,wlan0,intel5100。
(3)、logtemplate=/home/ly/kismetlog/，这里用来指定Kismet日志文件保存目录。
完成kismet.conf配置文件的这些设置后，按“Esc”键，再按“Shift”+“：”组合键，进入VI的命令模式，在命令模式下输入“wq”，按回车后就可以保存上述设置。
接下来，为了能在GNOME下启kismet的图形前端，我们还要修改/var/local/etc/kismet_ui.conf配置文件中的gui=curses，这样就能更加直观地使用Kismet。
完成Kismet的安装和基本配置后，要想它能够正常工作，我们还应当对无线网卡按下列方式进行设置：
ifconfigwlan0down#先闭无线网卡
iwconfigwlan0modemonitor#设置无线网卡为监控模式
ifupwlan0up#重新启用无线网卡
完成无线网卡的这些设置后，就可以在系统终端下输入Kismet命令运行它了。
Netstumbler在WindowsXP下的安装非常简单，要使用它必需在系统上安装Winpcap捕包文件，如果在安装Netstumbler之前没有安装这个包文件，那么在安装Netstumbler的过程中会提示是否安装Winpcap的最新版本，此时，直接单击安装就可以了。
如果还要使用GPS设备来定位和绘制无线AP地图，那么，就应当在笔记本上安装所使用的GPS的驱动程序和绘图软件。如果是在Linux系统下使用Kismet来进行战争驾驶，那么可以安装GPSMAP软件就能够完成无线AP地图的绘制。如果是在Windows系统下通过Netstumbler来进行战争驾驶，那么可以安装Stumbverter来绘制GPS地图。
在使用Stumbverter来绘制无线AP地图时，我们应当将Netstumbler产生的“.nsl”文件转换成Wi-Scan格式，以及将Kismet产生的“.CSV.GPS.XML”文件转换成Wi-Scan格式。能够将Netstumbler和Kismet产生的文件转换成Netstumbler所支持格式的软件还有Warglue软件。
一些防范战争驾驶的安全建议
现在，我们了解了战争驾驶是如何进行的，也应该认识到了它所带来的安全风险。对于纯粹性质的战争驾驶来说，最多只是利用我们开放的无线AP连接因特网，但是，对于一些不怀好意的攻击者来说，他就可以通过此得到我们计算机上的隐私信息，或者控制我们的计算机进行其它的网络攻击活动。这些都是我们无法忍受的，因此，我们必需通过一些安全措施来防止这种事情在我们身上发生。
对于防范战争驾驶来说，我们可以从两个主要方面出发：其一就是防范战争驾驶发生在我们的无线局域网之上，其二就是通过一些手段来及时发现和减少战争驾驶带来的危害。第一种方法主要在构建无线局域网时进行，主要用来减少被战争驾驶的可能，第二种方法通常在无线局域网运行当中进行，主要用来及时发现非授权的非法无线接入终端，防止无线攻击事态进一步发展，降低战争驾驶带来的风险。我们不可能就这么轻易地将无线AP无偿地奉献给没有授权的人使用，下面我们就来了解如何实现这两种防范战争驾驶的具体安全措施。
1、防止我们的无线局域网被战争驾驶
要防止我们的无线局域网被战争驾驶，我们就应当按下例给出的方式来加固我们的无线局域网：
(1)、尽管一些基本的无线局域网安全防范措施不能起到最好的效果，但是隐藏无线局域网的SSID号，使用WEP或WPA加密，实施MAC地址过滤，进行802.1x认证，以及禁止以单机adhoc模式接入网络总是应该完成的基本安全措施。
(2)、从战争驾驶的方式我们可以知道，寻找不设防的无线局域网的先决条件，就是要检测到无线局域网的无线信号。要是我们能够将无线信号控制在一定的范围之内，那么，攻击者就不可能在这个范围之外检测到无线信号了，这样也就减少了被攻击的风险，这要比其它的安全方式要来得好得多。
目前，我们可以使用专门的无线信号屏蔽设备来限制无线局域网信号范围，还可以使用一种神奇的能屏蔽802.11a/b/g及蓝牙等无线信号的油漆来控制无线信号在一定的范围内有效，这种神奇的油漆名叫defendairradioshield。
(3)、在设计和部署无线局域时，我们应当慎重考虑无线局域网信号的有效范围，选择的安装无线AP的位置既要满足正常无线用户网络连接的需求，又要减少无线信号对外的泄漏范围。我们可以通过本文中给出的战争驾驶方法来实验无线AP最佳的安装位置。
2、检测战争驾驶的方法
我们可以通过下列方法来发现无线局域网中是否有非授权的无线接入终端：
(1)、我们可以在无线局域网中的主机上安装了相应的基于主机的无线入侵检测防御系统(WIDS/WIPS)，也就可以通过它们来检测到非法的无线接入终端。
(2)、在无线局域网的无线AP之前接入专门的无线防火墙，来防止非授权无线终端的接入。
(3)、使用Kismet可以检测到附近是否有通过Netstumbler的主机存在，这主要是利用Netstumbler发送的数据包特征来检测。
(4)、通过在无线局域网主机中安装OmniPeek之类的无线局域网监控工具，可以实时监控无线局域网中正常存活的无线终端状况，并能实时发现非授权的无线接入终端。
(5)、在无线局域网中应用网络访问控制设备，强制无线终终端的接入。
由于无线局域网本身设计的开放性和不安全性，因此，我们必需在完成必要的无线安全加固措施之后，还可以通过战争驾驶的方法来检测安全加固后的无线局域网是否真的能防范这些无线攻击方法的威胁，证明它的完全性后才能将无线局域网交付使用，并且在无线局域网的运行过程中对它进行实时监控。
总的来说，我们可以按照本文所示的方法来进行娱乐性质的战争驾驶，也可以通过战争驾驶来检验自身所在无线局域网的安全性。无论使用战争驾驶进行哪种活动，我们都应当坚持从安全角度去考虑它的使用。