目录
一.WEP介绍
二.认证类型
1.开放系统认证
2.共享密钥认证
三.加密算法介绍
1.同步加密算法
2.异步加密算法
3.流加密和块加密
四.WEP加密和解密
1.加密
1.1加密介绍
1.2加密流程
五.Aircrack-ng常用工具包
六.Aireplay-ng的六种攻击模式详解
1.冲突模式
2.伪装客户端连接
3.交互模式
4.注入攻击
5.chop攻击模式
6.碎片包攻击模式
七.WEP wifi破解步骤
1.环境准备
1.1路由器介绍
1.2路由器配置
2.查看网卡是否连接kali
3.开启Monitor Mode工作模式
4.扫描附近的wifi
5.对目标所在的信道进行抓包
6.手工创建客户端连接
7.进行ARP注入攻击
8.使用Deautenticate攻击模式
9.手动连接AP
10.破解wifi,获取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和Data-link层进行了定义,而数据链路层又被分成两个部分,媒介访问控制(MAC)和逻辑链路控制(LLC)。无线数据的加密处理就是在MAC和LLC两个阶段中间做的事情,加密的对象就是MSDU。
所以对于没有MSDP的无线帧是不用加密的,比如管理帧只携带layer2的信息,不需要加密;控制帧只有头部和尾部,不需要加密;空帧没有数据域(但有特定功能),也不需要加密;总之,需要加密的帧,往往是数据帧。
加密的分类主要包括共享密钥认证和开放系统认证,WEP加密是共享密钥式,而TKIP,CCMP和802.1x则是开放系统,这两种分类个人觉得主要区别是先完成密钥认证再进行关联,还是先完成关联再进行密钥认证。。
比如,它要求无线客户端发送的authentication报文中指定加密方式,如果是共享密钥就会进行密钥的确认,如果是开放系统,则辉留到后面关联成功后进行密钥的确认.
这种认证方式不需要确认STA的任何信息,它只是和AP进行一个招呼式的交互,这个过程中并没有交互身份信息,所以也可以认为是一个空加密。这样做的目的是,双方都认为应该再后面使用更安全的加密方式,在这里只是先打个招呼,STA先进来,我们慢慢坐下核对信息。所以STA发送的第一个Authentication报文只要表明自己使用的开放系统认证就好了,AP自然会给予successful答复,接着后面顺利完成关联。
这种认证方式使用WEP认证STA,所以这种认证的前提是STA和AP都有静态的WEP密钥,因此认证的目的就是确认两者使用的密钥是否一致。共享密钥认证是通过四个认证帧的交互来完成的,STA首先发送一个Authentication request给AP,然后AP会给STA恢复一个挑战明文,接着STA使用密钥对这个明文进行加密发送给AP,最后AP对其进行解密,如果能够解密成功并且明文一致则标识认证成功并回复
虽然看起来共享密钥认证比开放系统认证会更安全,其实实际上并不是这样,因为对于共享密钥认证,攻击者可以捕获明文内容,也可以捕获加密后的密文,那就很容易被破解,而且密钥一旦被破解,那么后面交互的所有数据包都能轻易的解密
根据加密算法的分类,可以分为同步加密算法和异步加密算法:
这种算法不管是加密还是解密,都是使用同一个密钥,为了确保数据的安全,就需要对这个密钥进行保护,但问题是在进行认证的时候必须对这个密钥进行确认,那么就需要提出一种安全的确认密钥的方法,这些方法包括WEP,TKIP and CCMP
这种算法包含了两个密钥,分别是公钥和私钥,公钥用于消息的加密,私钥用于消息的解密,所以即使好多人知道公钥,没有私钥也破解不了消息。
流加密以一个bit为单位进行处理,块加密以一个块为单位进行处理
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 则是指静态,也就是说
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,使用时从中选一个进行加密。
1)IV是动态生成的24bit随机数,标准没有指定应该怎么生成,而且在数据帧中以明文的方式进行发送,它和key结合生成随机种子(seed),然后运用ACR4算法生成密钥流(keystream)
注意:图中的CR4应该位ACR4
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是否一致
补充:
MSDU - MAC Service Data Unit,MAC服务数据单元。
在无线网络安全中,MSDU经过添加完整性校验MIC、分帧、添加IV、加密、添加MAC头部后,成为MPDU(MAC Protocol Data Unit,MAC协议数据单元)
MSDU可以认为是Ethernet报文,而MPDU指经过802.11封装过的数据帧。
2.解密
和加密相反,解密也需要这几个过程
1)IV和key结合生成随机种子(seed), 然后运用ACR4算法生成密钥流(keystream)
2)将keystream和加密数据异或,得到plaintext和ICV
3)根据解密后得到的plaintext再计算一个ICV和包中的ICV进行比较,判断是否相等,这也算是一个可靠性的保证
aircrack-ng:破解
airmon-ng:改变网卡工作模式,将网卡从Managed Mode改变为 Monitor Mode
airodump-ng:抓包工具,用于捕获报文
aireplay-ng:提供各种攻击手段,为airodump-ng创造更多的报文
airserv-ng:网卡连接到指定端口,可以用来做无线跳板
airolib-ng:彩虹表破解创建数据库文件
airdecap-ng:解包
-0 Deautenticate 冲突模式
使已经连接的合法客户端强制断开与路由端的连接,使其重新连接。在重新连接过程中获得验证数据包,从而产生有效ARP request。
如果一个客户端连在路由端上,但是没有人上网以产生有效数据,此时,即使用-3也无法生成有效ARP request 。所以此时需要用 -0 攻击模式配合,-3 攻击才会被激活
aireplay-ng -0 10 -a -c wifi0
[-0] :冲突攻击模式,后面跟发送次数(设置为0,则循环攻击,不停的断开连接,客户端无法正常上网)
[-a]:设置ap的mac
[-c]: 设置已连接的合法客户端的mac
如果不设置-c,则断开所有和ap连接的合法客户端。
aireplay-ng -3 -b -h wifi0
注:使用此攻击模式的前提是必须有通过合法认证的客户端连接到路由器
-1 fakeauth count 伪装客户端连接
这种模式是伪装一个客户端和AP进行连接
这步是无客户端的研究学习的第一步,因为是无合法连接的客户端,因此需要一个伪装客户端来和路由器相连。为让AP接受数据包,必须使用自己的网卡和AP关联。如果没有关联的话,目标AP将忽略所有从你网卡发送的数据包,IVS数据将不会产生
用-1伪装客户端成功连接以后才能发送注入命令,让路由器接受到注入命令后才可反馈数据从而产生数据包
aireplay-ng -1 0 -e -a -h wifi0
参数说明:
[-1]:伪装客户端连接模式,后面跟延时
[-e]:设置AP的essid
[-a]:设置ap的mac
[-h]: 设置伪装客户端的网卡MAC(即自己网卡的MAC)
-2 Interactive 交互模式
这种攻击模式是一个抓包和提数据发起攻击包,三种集合在一起的模式
1.这种模式主要用于研究学习无客户端,先用-1建立虚假客户端连接然后直接发包攻击
aireplay-ng -2 -p 0841 -c ff:ff:ff:ff:ff:ff -b -h wifi0
参数说明:
[-2]:交互攻击模式
[-p]:设置控制帧中包含的信息(16进制),默认采用0841
[-c]:设置目标mac地址
[-b]:设置ap的mac地址
[-h]:设置伪装客户端的网卡MAC(即自己网卡MAC)
2.提取包,发送注入数据包,发包攻击
aireplay-ng -2 -r -x 1024 wifi0
-x 1024是限定发包速度,避免网卡死机,可以选择1024
-3 ARP-request 注入攻击模式
这种模式是一种抓包后分析重发的过程,这种攻击模式很有效。
既可以利用合法客户端,也可以配合-1利用虚拟连接的伪装客户端。如果有合法客户端那一般需要等几分钟,让合法客户端和ap之间通信,少量数据就可以产生有效ARP request 才可利用-3模式注入成功。如果没有任何通信存在,不能得到ARP request,则这种攻击就会失败。
aireplay-ng -3 -b -h -x 512 wifi0
参数说明:
[-3]:arp 注入攻击模式
[-b]:设置ap的mac
[-h]:设置自己的mac地址
[-x]:定义每秒发哦是那个数据户包的数量,但是最高不超过1024,建议使用512(也可不定义)
-4 Chopchop攻击模式
用以获得一个包含密钥数据的xor文件,这种模式主要是获得一个可利用包含密钥数据的xor文件,不能用来解密数据包。而是用它来产生一个新的数据包以便我们可以进行注入。
aireplay-ng -4 -b -h wifi0
参数说明:
[-b]:设置需要研究学习的AP的mac
[-h]:设置虚拟伪装连接的mac(即自己网卡的mac)
-5 fragment 碎片包攻击模式
用以获得PRGA(包含 密钥的后缀为xor的文件)这种模式主要是获得一个可利用PRGA,这里的PRGA并不是WEP key数据,不能用来解密数据包。而是利用它产生一个新的数据包以便我们可以进行注入。其工作原理就是使目标AP重新广播包,当AP重广播时,一个新的IVS将产生,我们就是利用这个来研究学习
aireplay-ng -5 -b -h wifi0
[-5]:碎片包攻击模式
[-b]:设置ap的mac
[-h]:设置虚拟伪装连接的mac(即自己网卡的mac)
演示使用的路由器支持WEP,WPA,WPS加密方式,一般家用路由器或者比较新的路由器不支持以上三种模式
1)选择无线配置,设置wifi信道为1
3)安全模式选择wep,输入口令,点击生成密钥,点击显示密钥,点击保存
ip a
airmon-ng start wlan0
确定目标wifi的信道,加密方式,信号强度,mac地址等信息
airodump-ng wlan0mon
airodump-ng wlan0mon -c 1 --ivs -w /root/wifi/bk01/WEP --bssid ff:ff:ff:ff:ff:ff
参数说明:
-c:信道
--ivs:初始化向量
-w:输出抓包文件
--bssid:指定wifi进行抓包
设备连接fiwi
arp重放攻击,通过模拟客户端发送ARP请求,获取AP响应报文,通过AP报文获取ivs初始化向量
aireplay-ng -3 -b ?? -h ??? wlan0mon
-3:arpreplay arp重放攻击
-b:bssid AP的mac
-h:客户端的mac地址
使已经连接的合法客户端强制断开与路由端的连接,使其重新连接。在重新连接过程中获得验证数据包,从而产生有效ARP request
aireplay-ng -0 5 -a ?? -c ?? wlan0mon
-0:冲突攻击模式,后面跟发送次数(设置为0,则循环攻击,不停的断开连接,客户端无法正常上网)
-a:设置ap的mac
-c:设置已连接的合法客户端的mac
等待Frame到2-5万时,就可以尝试破解了
aircrack-ng /root/wifi/bk01/WEP-01.ivs
将冒号去掉,就是wifi的密钥