无线攻防:破解WEP密钥
来源:邮件技术资讯网 更新时间:2012-04-13
 

WLAN技术出现之后,“安全”就成为始终伴随在“无线”这个词身边的影子,针对无线网络技术中涉及的安全认证加密协议的攻击与破解就层出不穷。现在,因特网上可能有数以百计,甚至以千计的文章介绍关于怎么攻击与破解WEP,但有多少人能够真正地成功攻破WEP的加密算法呢?下面笔者来给大家介绍一些关于WEP加密手段的知识,以及就是菜鸟只要按照步骤操作也可成功破解WEP密钥的方法。当然最终的目的还是为了让记者做好安全设置对破解更好的进行防范。本系列文章共两篇,在第一篇里主要介绍破解WEP的方法,第二篇里介绍如何设置WLAN的安全设置来进行更好的防范。

  一、WEP:无线网络安全最初的保护者

  相对于有线网络来说,通过无线局域网发送和接收数据更容易被窃听。设计一个完善的无线局域网系统,加密和认证是需要考虑的两个必不可少的安全因素。无线局域网中应用加密和认证技术的最根本目的就是使无线业务能够达到与有线业务同样的安全等级。针对这个目标,IEEE802.11标准中采用了WEP(Wired Equivalent Privacy:有线对等保密)协议来设置专门的安全机制,进行业务流的加密和节点的认证。它主要用于无线局域网中链路层信息数据的保密。WEP采用对称加密机理,数据的加密和解密采用相同的密钥和加密算法。WEP 使用加密密钥(也称为 WEP 密钥)加密 802.11 网络上交换的每个数据包的数据部分。启用加密后,两个 802.11 设备要进行通信,必须具有相同的加密密钥,并且均配置为使用加密。如果配置一个设备使用加密而另一个设备没有,则即使两个设备具有相同的加密密钥也无法通信。(如图一所示)



图一:WEP加密



  WEP加密过程

  WEP支持 64 位和128 位加密,对于 64 位加密,加密密钥为 10 个十六进制字符(0-9 和 A-F)或 5 个 ASCII 字符;对于 128 位加密,加密密钥为 26 个十六进制字符或 13 个 ASCII 字符。64 位加密有时称为 40 位加密;128 位加密有时称为 104 位加密。152 位加密不是标准 WEP 技术,没有受到客户端设备的广泛支持。WEP依赖通信双方共享的密钥来保护所传的加密数据郑其数据的加密过程如下。

  1、计算校验和(Check Summing)。

  (1)对输入数据进行完整性校验和计算。

  (2)把输入数据和计算得到的校验和组合起来得到新的加密数据,也称之为明文,明文作为下一步加密过程的输入。

  2、加密。在这个过程中,将第一步得到的数据明文采用算法加密。对明文的加密有两层含义:明文数据的加密,保护未经认证的数据。

  (1)将24位的初始化向量和40位的密钥连接进行校验和计算,得到64位的数据。

  (2)将这个64位的数据输入到虚拟随机数产生器中,它对初始化向量和密钥的校验和计算值进行加密计算。

  (3)经过校验和计算的明文与虚拟随机数产生器的输出密钥流进行按位异或运算得到加密后的信息,即密文。

  3、传输。将初始化向量和密文串接起来,得到要传输的加密数据帧,在无线链路上传输。(如图二所示)



图二:WEP加密过程
  WEP解密过程

  在安全机制中,加密数据帧的解密过程只是加密过程的简单取反。解密过程如下。

  1、恢复初始明文。重新产生密钥流,将其与接收到的密文信息进行异或运算,以恢复初始明文信息。

  2、检验校验和。接收方根据恢复的明文信息来检验校验和,将恢复的明文信息分离,重新计算校验和并检查它是否与接收到的校验和相匹配。这样可以保证只有正确校验和的数据帧才会被接收方接受。



图三:WEP解密过程
 二、破解WEP密钥前的准备工作

  在以下的两部分内容内,笔者将逐步地向大家介绍关于怎样来破解WEP的密钥的方法。这种方法并不需要什么特别的硬件设备,仅仅只需两台(只有一台也可)带有无线网卡的笔记本而已,整个攻击过程所使用的也只是一些共享和自由软件,并不需什么相当专业的工具。看懂这篇文章和学会操作的读者,并不需要你是一名网络专家,不过要基本上熟悉一些网络术语和基本的原理。最少,你应该知道怎样去ping 另外一台机器以测试网络是否畅通,并会打开一个Windows的命令提示符窗口,知道输入相关命令和了解关于Windows网络属性窗口的相关内容。这就是基本的要求,要不然怎么可称之为菜鸟都可学会的方法呢。

  1、组建实验环境

  开始之前,我们的第一步就是要组建一个实验环境,你不可能拿别人的网络来玩你的破解吧,这样做既违反了法律也是一种不道德的行为噢。搭建一个实验环境下的无线网络平台,则无线AP是少不了的,另外,三台带有无线网卡的笔记本(使用有无线网卡的台式机也可以)组成的简单网络就可满足要求了。组成的网络拓扑如下图四所示。



图四:组建一个实验环境


  在图四所示的网络中,无线AP的选用,我们使用的是一个Netgear的产品,型号为WGT624v2,它在以后充当被攻击目标的角色,在以后就称它为目标AP。在所使用的三台机器中,一台是作为被攻击目标的客户端机器,暂且称之为“Target”;另外两台笔记本一台执行主动攻击,促使网络流量的产生,以便足够多的数据包有比较短的时间内能够被捕捉到,称这台机器为“Attack”;剩下的那台笔记本就是用来嗅探并捕捉那些主动攻击产生的数据包了,则把它称为“Sniff”。当然,尽管整个的破解过程可以在一台笔记本上完成,但笔者并不推荐这种做法,用仅仅一台笔记本,会使以后的工作变得很麻烦,并且发现使用这种方法的话窃听程序可能会发生一点小问题。在一个使用率不高的WLAN中,使用主动攻击比被动探测的机会更大,它可在较短的时间内使WLAN产生更多的数据包从而加快破解WEP的速度。

  在这个实验环境中一定非得要使用笔记本不可,我们当然也能够使用桌面PC或桌面PC与笔记本混用,不过使用笔记本的话它的便携性更好,而且对现在的无线PC Card卡有更好的兼容性。

  Target所使用的无线网卡与芯片无关,只要是基于802.11b,任意厂家的产品都可满足要求。而Attack与Sniff两台机器是使用的两块基于PRISM芯片的802.11b的无线网卡。尽管我们在以后的操作中中使用的很多工具(如Kismet)都可支持相当多种类的无线网卡,但笔者还是建议使用基于PRISM 2芯片的网卡,因为这种芯片能够被我们在破解过程所要使用到的所有工具都支持。

  无线网卡一般有外置天线与内置天线两种,如果所购买的无线网卡并没有内置天线的话,还必须自己再另购天线。不过外置天线的优点就是增益更高,灵敏度更好,可以调节天线的方向从而得到更好的信号接收;而内置天线是可以更方便地携带,缺点是天线方向无法调节。笔者看到有一种移动式外置天线,使用起来是很方便的,在这种移动式天线的底部有几个橡胶材料的小吸杯,可以把它方便地吸附在笔记本的顶盖上,如果是在车内使用的话,还可把它牢牢地吸在车空窗玻璃上呢。如下图五所示。



图四:移动式天线
  2、实验WLAN的设置

  适当地对这个实验环境进行一下设置是很重要的,因为我们毕竟只想要在这个用来实验的环境中来完成所有的操作,在下文中描述的攻击过程中,将会强制终止一个与AP有连接的客户端。这种攻击可能会对在这个邻近区域内的无线用户造成严重损害,为了避免邻近的AP上的用户受到附带的攻击,是要保护那些并不属于实验WLAN的用户。如果这个操作环境中位于一个复杂的办公室、办公大楼或其他有许多无线网络覆盖的区域中的话,要尝试一下这样的破解操作,请最好等到晚上没什么人工作,网络不再繁忙时进行,免得“城门失火,殃及池鱼”。

  第一步就是连接和设置这个被攻击的实验无线局域网,如前面所述,这个WLAN包含有一个Access Point(无线路由器)和仅仅一个无线客户端,且这个无线局域网被我们想要破解的WEP密钥保护起来了。把目标AP的SSID(System Set ID)设置为“starbucks”,SSID用来区分不同的网络,也称为网络名称。无线工作站必须出示正确的SSID,与无线访问点AP的SSID相同,才能访问AP;如果出示的SSID与AP的SSID不同,那么AP将拒绝他通过本服务区上网。可以认为SSID是一个简单的口令,从而提供口令机制,实现一定的安全性。并在这个WAP上配置一个64位的WEP密钥来进行保护。

  把如下的信息记录下来以便以后使用

  ①AP的MAC地址。它通常会在AP的WEB配置菜单上显示出来, AP的底部或侧面的标签上也可能记有本机的MAC地址。

  ②AP的SSID。

  ③AP的无线频道(Channel)。

  ④WEP 密钥。如果无线AP显示的密钥像0xFFFFFFFFFF这样的格式(把设定的值替代F的值),把除0x外的每个字母都记下来。

  第二步就是把Target客户端连接到目标AP上。我们现在需要把这个客户端连接到目标AP以进行进一步的配置,(以下都是在Windows XP下进行的),右键单击桌面上的“网上邻居”图标,或者通过“开始”菜单,然后单击“属性”,双击“Wireless Network Connection”,然后打开如图五所示的窗口,其中显示的是有多个可用的无线网络,但如果只有一个无线网络的话,则在该窗口中可能只仅仅显示刚刚配置的那个名为“starbucks”的AP,双击相应的SSID名称以连接到目标AP。



图五:连接到目标WLAN


  因为AP已开启了WEP保护,连接时Windows会要求输入一个密码(如图六所示),把刚才设置的的WEP密钥输入(当然从记事本或写字板文档中粘贴过来也可),稍等一会儿后Windows就会报告已连接到网络上。确认一下是否已真正地连接成功,去ping一个在有线网络计算机来测试一下;或者假如这个实验WLAN已接连到因特网上,随便打开一个WEB站点看是否能够连接来加以确认。如果不能成功地ping通已知地址的机器或者打不开正常的WEB站点,则打开无线网卡的属性,单击“支持”按钮,检查一下无线网上是否已获取了一个正确的IP地址,如果没有能够获取正确的IP地址,看看网络中的DHCP服务器是否已启用,并检查无线网卡的TCP/IP属性是否设置成“自动获取IP地址”了,如果一切都正常,在这个无线连接中点击 “修复”按钮来加以改正。



图六:输入WEP密钥


  第三步就是记录下Target机器的MAC地址。一旦成功连接到网络上,就把被攻击的Target计算机的MAC地址记录下来。方法有两种,一是打开一个命令提示符窗口并输入ipconfig/all命令也可看到这个MAC地址,这个窗口的内容如下图七所示(无线网卡的MAC地址信息已高亮度显示)。



图七:输入ipconfig/all命令来发现MAC地址


  二是在Windows XP中,可从“无线连接状态”窗口来得到这个MAC地址,单击“支持”按钮,然后单击“详细信息”,这个MAC地址就显示在窗口顶端的右边(如图八所示),当然,不同的机器显示的名称可能不尽相同,另外的计算机显示的就可能如“物理地址”这一类的描述信息了。在这个窗口的信息,组成MAC地址的字母和数字被短划线分隔,短划线的目的只是使这些字符看得更清楚,但实际的MAC地址是没有这些短划线的。



图八:在网络连接详细信息中显示的MAC地址
  3、笔记本的设置

  首先,我们来准备破解WEP密钥所需要的几个工具软件(Kismet、Airodump、Void11、Aireplay 和Aircrack),Kismet:用来扫描整个区域内的WLAN,找到实验用的目标WLAN,收集相关数据(SSID值、频道、AP及与之相连接的客户端的MAC地址等);Airodump:对目标WLAN进行扫描并捕获其产生的数据包到一个文件中;Void11:从目标AP中验证某台计算机,并强制这个客户端重新连接到到目标AP,以使其一个ARP请求;Aireplay:接受这些ARP请求并回送到目标AP,以一个合法的客户端身份来截获这个ARP请求; Aircrack:接受Airodump生成的捕获文件并从中提取WEP密钥。

  它们都是公开源代码的共享或自由软件,这些所有的工具都可以在一个被称为 “Auditor Security Collection LIVE CD” 的共享光盘上找到,这个光盘是一张可引导系统的光盘,可以引导一个经过改进过的Kanotix Linux,这个Linux版本无需存取硬盘,在通过光盘启动时直接安装到内存中就,它启动后可自动检测和配置多种无线网卡。在本文使用的Auditor Security Collection LIVE CD是最新版本,版本号为auditor-150405-04,下载地址为http://new.remote-exploit.org/index.php/Auditor_mirrors,下载的文件格式是CD映像文件或.ISO文件,通过NERO(或其他的刻录软件)把它刻录下来,给Attack和Sniff机器各一张。

  首先把无线网卡插入到笔记本中(如果机器内置有无线网卡就最好不过了),再把笔记本设置成从光盘引导,并把Auditor Security Collection CD放入光驱中。从Auditor引导菜单中选择合适的屏幕分辨率后,Kanotix Linux会被安装到内存中运行并出现Auditor开始屏幕(如图九所示)。



图九:Auditor的开始屏幕


  在这个Auditor系统中,两个最重要的图标是位于屏幕左下方的Programs和Command Line图标,我们以后的许多操作基本上都是要通过它们来完成的。如图十所示。



图十:Program和Command Line的位置


  在这里,开始做其他任何其他的事情之前,先要确认我们机器上的无线网卡能够通过Auditor的验证。单击Command Line图标以打开一个命令行窗口,然后输入iwconfig命令,在Auditor显示出的信息中,你会看到有关于“Wlan0”的信息,它是Auditor为基于PRISM芯片的卡确定的一个名称,如果用来操作攻击的笔记本的屏幕显示如图十一所示的窗口,则表明Auditor已检测到了无线网卡,现在就可以开始下一步工作了。对于另外一台笔记本,也进行同样的步骤,重复这一操作。



图十一:用iwconfig命令检验无线网卡


  好,准备工作现在基本完成,在本文的下篇里,我们将开始实际的解决过程。
三、实战破解过程

  1、用Kismet进行网络探测

  Kismet是一个基于Linux的无线网络扫描程序,这是一个相当方便的工具,通过测量周围的无线信号来找到目标WLAN。虽说Kismet也可以捕获网络上的数据通信,但在还有其他更好的工具使用(如Airodump),在这里我们只使用它来确认无线网卡是否正常工作和用来扫描无线网络,在下面的部分中将会换用不同的工具软件来真正地侦听和捕获网络上的数据通信。

  单击Programs 图标,然后是Auditor,再 Wireless,, 然后Scanner/Analyzer,最后是 Kismet ,来运行Kismet程序。如图十二所示。



图十二:运行Kismet


  除扫描无线网络之外,Kismet还可以捕获网络中的数据包到一个文件中以方便以后加以分析使用,因此Kismet会询问用来存放捕获数据包的文件的位置,如我想把这些文件保存到root\desktop下,则单击“Desktop”,然后选择“OK”即可,如图十三所示。然后Kismet然后会询问捕获文件的前缀名字,我们可以更改这个默认的名字,例如把它更改为“capture”然后点击OK,这样Kismet就会以capture为文件名的开头,再在其后依次添加序号来保存捕捉下来的数据包到不同的文件中。



图十三:在Kismet中指定文件的存放位置


  当Kismet开始运行时,它将会显示这个区域内它找到的所有的无线局域网,“Name”那一列中所显示出来的内容就是哪一个WLAN中AP的SSID值,那当然开始设定的目标WLAN也应该包含中其中(Name下值为starbucks的那一行),在这一行中,CH列的值(AP所使用的频道)应该与开始所记下的相同。在窗口的最右边显示的信息是Kismet发现的WLAN的数目,已被捕捉下来了的数据包、已加密了的数据包的数目等等。如下图十四所示。如果Kismet发现了许多相邻的Access Point,你应把这个实验环境搬得离这些AP更远一些,或者把与你网上相连接的任何高增益天线断开。甚至当目标计算机已关闭时,Kismet也正可从我们的目标AP中检测到数据包,这是因为目标AP在不停地发出“beacons”,它将告之拥有无线网卡的计算机有一个AP在此范围内,我们可以这样想像,这台AP宣布,“我的名字是XXXXX,请大家与我连接。”



图十四:Kismet显示的内容


  默认的Kismet是运行在“autofit”模式下的,它显示的内容杂乱无章的,我们可以通过排序把AP按任何有意义有顺序来重新排列,按下“s”键到“Sort”菜单,在这儿可以按下某个字母来对搜寻到的AP进行排序,如“f”键是按AP名字的第一个字母来排序,而“c”键是按AP使用的频道来进行排序,“l”是按时间来进行排序等等。

  现在我们来查看一下目标WLAN中AP的详细信息,按下“s”键,然后再按下“c”键,把整个AP的列表用频道的方式来排列,使用光标键移动高亮条到表示目标AP的SSID上,然后敲下回车键,然后将打开一个显示所选择AP的详细信息的说明窗口(SSID、MAC地址和频道等)。这样,要破解一个加密WLAN的WEP密钥所需要的基本信息大部分都在这儿了。如图十五所示。有些WLAN从安全方面考试,隐藏了SSID或屏蔽SSID广播,这样做的话的确能够防止使用Netstumbler来扫描,但碰上Kismet就毫无办法了,它可轻易地检测到隐藏的SSID。Kismet能够比Netstumbler捕捉到更多的网络信息,能够通过跟踪AP及与之相连接的客户端之间的会话而发现某个AP的SSID。



图十五:Kismet显示一个AP的详细信息


  要完成一个破解过程,还有最后一个需要了解的信息,就是WLAN中连接在目标AP上的无线客户端的MAC地址,这个使用Kismet也是很轻易地搞定的。返回Kismet,按下“q”键退出详细信息窗口,默认的选择仍旧是刚才查看了的目标AP,使用“Shift+C”键,这时会打开一个与目标AP相关的客户端列表,它们的MAC地址就显示在这个窗口的左边。如图十六所示。在这个窗口显示的内容中,不但包含了与AP相连的客户端的MAC地址,还包括AP自己的MAC地址,还记得在本文的开头所记下的目标AP的MAC地址吗?在这,除了目标AP的MAC地址外就是客户端的MAC地址了。



图十六:使用Kismet寻找客户端的MAC地址


  如果你没有看到Target计算机的MAC地址,请检查一下,确认一下它是否已开机或连接到了目标AP(启动目标计算机,连接到目标AP并打开WEB页面),大约10-30秒后,你将会看到目标计算机的MAC地址在Kismet中弹出。当然,把所有的客户端MAC地址都记下来也不失为一个老道的方法,这样就可避免在开始破解过程时一个客户端也没有出现时受阻。

  2、用Airodump来捕获数据包


  现在了解破解所需的基本信息了,该是开始使用Airodump工具的时候了,Airodump的主要工作是捕获数据包并为Aircrack建立一个包含捕获数据的文件。在用来攻击与破解的两台计算机中的任一一台上,笔者是使用的是Attack计算机,打开一个shell窗口并输入以下的命令:

iwconfig wlan0 mode monitor

iwconfig wlan0 channel THECHANNELNUM

cd /ramdisk

airodump wlan0 cap

  注意:把THECHANNELNUM这个值更改成所要破解的WLAN中的频道数,/ramdisk目录是存储捕获数据文件的位置。如果在实验WLAN环境的附近还有别的WAP,则可目标AP的MAC地址附在airodump命令的后部作为参数,如:airodump wlan0 cap1 MACADDRESSOFAP。如图十七所示。



图十七:Airodump命令的格式


  这个命令仅仅是使airodump把捕获到的目标AP的数据包写入到那个生成的数据文件中(cap1)。 按下Ctrl+C键退出Airodump,输入ls –l命令列出这个目录中的内容,看看扩展名为.cap文件的大校在经过几秒钟的捕获动作后,如果有数据包被成功地捕捉下来,那生成的这个包文件大约为几个 KB大校如果Airodump使用同一个参数在捕获数据包时被停止和重新开始后,这个生成的包文件会依照前一个文件顺序添加,如第一个为cap1,第二个为cap2等。

  当Airodump在运行时,在该窗口左边看到的BSSID下列出来的值就是目标AP的MAC地址。在这个Airodump的运行窗口中,我们会看到Packet和IV这两个值正在不停地增长,这都是由于Windows检测网络时产生的正常网络通信,甚至在目标客户端上并没有打开WEB网页收发email也是如此。过一会儿后就会看到IV值只会几个几个慢慢地上升,不过如果在目标计算机上浏览网页时,随着每一个新页面的打开,Airodump中的IV值会在不断地快速上升。如图十八所示。



图十八:Airodump显示的IV值


  在这儿,我们对Packet 的值不感兴趣,因为它并不能够有助于破解WEP,IV 值则是个很重要的数字,因为如果要破解一个64bit的WEP密钥,需要捕获大约50000到200000个IV,而破解一个128bit的WEP密钥,则需要大约200000到700000个IV。

  大家可能会注意到,在正常的网络通信条件下,IV值不会增长得很快。实际上,在正常的通信条件下,要成功地破解WEP密钥而需要从大多数的WLAN中捕获足够数量的数据包可能会花费数小时甚至数天的时间。幸运的是,我们还有有几个办法可以把这个速度提高起来。要使IV值快速地上升,最有效的办法就是加大网络的通信量,把目标WLAN变得繁忙起来,加快数据包产生的速度,通过连续不断地ping某台计算机或在目标计算机上下载一个很大的文件能够模仿这一过程,让Attack计算机上运行Airodump,可看到IV值慢慢在上升,再使用BT软件下载一个大的文件(如分布式Linux系统的.ISO文件或电影),这样IV值上升的速度就快多了。

  还有一个方法,在Windows的命令提示符窗口输入如下的命令来进行一个持续不断的ping: ping -t -l 50000 ADDRESS_OF_ANOTHER_LAN_CLIENT

  这里 ADDRESS_OF_ANOTHER_LAN_CLIENT值更改成在本局域网中目标AP、路由器或其他任何可ping得通的客户端的IP地址。

  3、用Void11来产生更多的通信流量


  void11把一个无线客户端从它所连接的AP上使用一个强制验证过程,也就是说这个客户端开始被断开,当它被从WLAN中断开后,这个无线客户端会自动尝试重新连接到AP上,在这个重新连接过程中,数据通信就产生了,这个过程通常被叫做de-authentication或deauth attack过程。

  启动Sniff计算机,并把Auditor CD插入它的光驱,Auditor启动后,打开一个shell命令窗口并输入以下的命令:

switch-to-hostap

cardctl eject

cardctl insert

iwconfig wlan0 channel THECHANNELNUM

iwpriv wlan0 hostapd 1

iwconfig wlan0 mode master

void11_penetration -D -s MACOFSTATION -B MACOFAP wlan0

  注意:把THECHANNELNUM替换成目标WLAN的频道数,MACOFSTATION 和 MACOFAP分别替换成目标WLAN的客户端的MAC地址和AP的代号,如下形式:void11_penetration -D -s 00:90:4b:c0:c4:7f -B 00:c0:49:bf:14:29 wlan0。当在Auditor Security Collection CD中运行void11时可能会看到“invalid argument error”的错误信息,这无关紧要,不要理会这个错误。

  当void11在Sniff计算机上运行时,我们来看看Target计算机上正在发生的变化,通常,使用这台机器的用户会发现网络突然地变得非常慢,而且最后好像停顿了,几秒钟后,彻底与网络失去了连接。如果查看Windows XP自带的无线客户端实用程序,会发现void11开始攻击之前,一切都正常,Windows显示你正连接在AP上,Void11启动后,网络状态会从连接状态改变到断开状态。如图十九所示。如果在在Sniff计算机上停止void11后,Target计算机会在大约几秒钟内重新连接到目标AP。



图十九:目标计算机被断开


  让我们到Attack计算机上去看一下,它总是在那运行着Airodump,当void11在运行后,IV值在几秒钟内增加大概100-200,这是由于目标客户端机器重复地尝试重新连接到目标AP上时产生的网络通信引起的。

  4、用Aireplay引起数据包的延迟


  当使用一个deauth attack过程强制产生通信时,它通常不能够产生我们所需要的足够数量的IV值,不过Airodump比较适合于干扰正常的WLAN操作的工具。为了产生更多的网络通信流量,我们需要使用一种叫做replay attack的不同方法,replay attack截获由目标客户端产生的合法数据包,然后再通过某种手段来欺骗这个客户端,再三地延迟它的数据包,这个延迟过程比正常使用的时候更频繁。由于这些通信流量看上去好像来自一台网络上合法的客户端,因此它并不干扰正常的网络操作,只是在幕后静静地从事着产生更多IV的职责。

  把由void11的deauth attack产生的数据包捕获下来后,停止这个deauth attack过程,然后使用这些捕获下来的数据包开始一个replay attack过程。我们在破解过程中所要捕获的数据包最好选择是ARP包,因为它们都很小(68字节长),并有固定和容易被侦测的格式。把Attack和Sniff这两台机器都重新启动, Attack计算机只运行aireplay,它仅仅是用来促使网络中产生数据流量(和IV)以缩短破解WEP密钥所使用的时间,Sniff计算机的用途不是来运行deauth attack(通过Void11),就是用来捕获通信流量(通过Airodump),并最后使用Aircrack工具来对被捕获到的数据进行破解。

  先启动Aireplay,在Attack计算机上,打开一个shell窗口并输入以下命令(如下图二十所示):

switch-to-wlanng

cardctl eject

cardctl insert

monitor.wlan wlan0 THECHANNELNUM

cd /ramdisk

aireplay -i wlan0 -b MACADDRESSOFAP -m 68 -n 68 -d ff:ff:ff:ff:ff:ff

  注意:switch-to-wlanng和monitor.wlan是来自于Auditor CD,为简化操作和减少输入的脚本命令。 把THECHANNELNUM更改为目标WLAN的频道数。来看看这个操作命令会有什么结果产生,首先,没有什么太令人激动的事发生,会看到Aireplay报告已捕获到了某些类型的数据包,不过由于这些数据包基本上不是我们所需要的(目标MAC地址为FF:FF:FF:FF:FF:FF的68字节的包)。



图二十:启动Aireplay


  现在来操作Target计算机并打开它的无线实用程序,监视它的网络连接状态,然后在Sniff计算机上启动一个void11的deauth attack,一旦开始启动void11,这时可看到Targets计算机已从目标AP上断开了,当然,Aireplay显示的数据包速率增加得更快了。

  Aireplay捕获了相关的数据包后会并询问是否与你所希望得到的相匹配,在本次破解中,我们需要捕获的数据包具有以下特征:

FromDS - 0

ToDS - 1

BSSID – 目标AP的MAC地址

Source MAC – 目标计算机的MAC地址

Destination MAC - FF:FF:FF:FF:FF:FF

  如果数据包并不与这些条件相匹配,输入n(表示no),Aireplay会重新再捕获,当aireplay成功地找到与以上条件相匹配的数据包后,回答y(表示yes),Aireplay会从捕获转换到replay模式并开始启动replay攻击。这时立即返回到Sniff计算机上停止void11的deauth attack。如图二十一所示。



图二十一:Void11捕获到了相匹配的数据包


  如果Aireplay在几千个数据包中并没有捕获到相应的数据包包,则可使用Void11来助力,Void11能够干扰目标AP和它的客户端不,给它们任何机会去完成重新连接。手动停止void11(按Ctrl+C键)然后重新启动它,添加“d”参数到void11的命令行中(延迟的值是微秒),尝试用不同的值去允许AP与客户端重新连接的时间。

  如果目标客户端处于空闲状态,通过deauth攻击来捕获ARP包可能是比较困难的,这在一个真实环境的WLAN中可能不会发生,但在这个实验的WLAN下环境中则成了一个问题。如果Aireplay没有捕获到你所需要的数据包破解不能进行下去,则可在开始deauth attack之前你需要到目标客户端计算机上运行一个连续不断的ping或开始一个下载任务。如果Void11完全不能正常工作,可Attack计算机上保持运行aireplay,在Sniff计算机上关闭void11,操作Target计算机并手动断开无线网络连接,再重新连接,在三十秒内,当它重新连接到WLAN并请求获取一个IP地址时,在Attack计算机上的Aireplay能够看到由目标计算机发出的ARP包。
 
  5、最后的破解的时刻

  经过一段时间的运行,在Attack计算机上运行的replay attack产生了足够多的IV,现在是做真实的WEP破解的最终时刻到了,在Sniff计算机上停止void11,并输入如下的命令以,设置Airodump来捕获数据包。

switch-to-wlanng

cardctl eject

cardctl insert

monitor.wlan wlan0 THECHANNELNUM

cd /ramdisk

airodump wlan0 cap1

  把THECHANNELNUM替换成目标WLAN的频道数,如果在这个区域内有多个WAP,把目标AP的MAC地址添加到airodump的尾部作为参数,如:airodump wlan0 cap1 MACADDRESSOFAP。随着Airodump把IV写进一个文件中,我们可同时运行Aircrack来寻找包含在这个文件中的这个WEP密钥,让Airodump继续运行,打开另外一个shell窗口,在这个新的命令窗口中输入如下的命令来启动Aircrack。

  cd /ramdisk

  aircrack -f FUDGEFACTOR -m MACADDRESSOFAP -n WEPKEYLENGTH -q 3 cap*.cap

  注意:FUDGEFACTOR 在一个整数(默认值为2),MACADDRESSOFAP是目标AP的MAC地址。  WEPKEYLENGTH 是你尝试破解的WEP密钥的长度(64, 128等等)。如下图二十二所示。



图二十二:Aircrack命令的格式


  Aircrack将从捕获下来生成的数据包文件中读入IV值,并依靠这些IV值上完成WEP密钥的破解,Aircrack默认的是使用一个速度比较慢的模式来寻找WEP密钥,不过这种模式速度虽慢,但它找到WEP密钥的机会很高;还有一种模式就是使用-f参数,这个则速度相当快,不过成功的机会比前一个小得多。如果运气好的话,你会看到WEP密钥被成功地找到啦。如下图二十三所示。



图二十三:成功破解WEP密钥


  要破解一个64bit的WEP在需要5分钟时间,由同时运行于replay attack的几个操作的时间组成的:用airodump扫描、用aircrack破解和用aireplay产生网络通信流量,不过这里有许多幸运的地方,有时破解一个64bit的WEP的密钥要收集25000个左右的IV,则它花费的时间就更长了。必须把这个你尝试恢复的WEP密钥的长度输入到Aircrack中,这个长度没有哪一个工具能提供,对你自己的实验环境的WLAN当然能够知道这个信息,但在别的你一无所知的网络环境中则可以使用64或128这两个密钥长度去尝试。

  使用配置更好的机器能够有助于加快破解的过程,把捕获下来生成的数据包文件拷贝到另外有更大内存和更快处理器的机器上去完成最后的破解动作不失为一个好的办法,在这台机器上就只要运行Aircrack这个工具了,并且aircrack能够使用-p选项来支持多处理器,使用AMD和Intel的新双处理器设备能使破解过程更快。对于128bit长的密钥来说更是要如此了。