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加密过程


图四:组建一个实验环境
















当使用一个deauth attack过程强制产生通信时,它通常不能够产生我们所需要的足够数量的IV值,不过Airodump比较适合于干
把由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计算机
| 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长的密钥来说更是要如此了。