WEP使用RC4(Rivest Cipher)串流技术达到加密性,并使用WEP使用RC4(RivestCRC32(循环几余校验)校验和保证资料的正确性。RC4算法是一种密钥长度可变的流加密算法簇。它由大名鼎鼎的RSA三人组中的头号人物Ron Rives于1987年设计的。下面将详细介绍WEP的工作原理。
WEP是用来加密数据的,所以就会有一个对应的加密和解密过程这里将分别介绍WEP加密和解密过程。
1.WEP加密过程
WEP加密过程如图
(1)WEP协议工作在Mac层,从上层获得需要传输的明文数据后,首先使用CRC循环冗余校验序列进行计算。利用CRC算法将生成32位的ICV完整性校验值,并将明文和ICV组合在一起,作为将要被加密的数据。使用CRC的目的是使接收方可以发现在传输的过程中有没有差错产生。
(2)WEP协议利用RC4的算法产生伪随机序列流,用伪随机序列流和要传输的明文进行异或运算,产生密文。RC4加密密钥分成两部分,一部分是24位的初始化向量I,另一部分是用户密钥。由于相同的密钥生成的伪随机序列流是一样的,所以使用不同的IV来确保生成的伪随机序列流不同,从而可用于加密不同的需要被传输的帧。
(3)逐字节生成的伪随机序列流和被加密内容进行异或运算,生成密文,将初始化向量IV和密文一起传输给接收方。
2.WEP解密过程
WEP解密过程如图
在以上解密过程中,接收方使用和发送方相反的过程,但是使用的算法都是相同的。首先进行帧的完整性校验,然后从中取出IV和使用的密码编号,将IV和对应的密钥组合成解密密钥流。最后再通过RC4算法计算出伪随机序列流,进行异或运算,计算出载荷以及ICV内容。对解密出的内容使用WEP加密第一步的方法生成ICV,然后比较ICV和ICV,如果两者相同,即认为数据正确。
WEP漏洞分析
WEP的安全技术源于名为RC4的RSA数据加密技术,是无线局域网WLAN的必要的安全防护层。目前常见的是64位WEP加密和128位WEP加密。随着无线安全的一度升级,WEP加密已经出现了100%的破解方法。通过抓包注入,获取足够的数据包,即可彻底瓦解WEP机密。所以,下面将分析一下WEP加密存在的漏洞。
1.密钥重复
由于WEP加密是基于RC4的序列加密算法。加密的原理是使用密钥生成伪随机密钥流序列与明文数据逐位进行异或,来生成密文。如果攻击者获得由相同的密钥流序列加密后得到的两段密文,将两段密文异或,生成的也就是两段明文的异或,因此能消去密钥的影响。通过统计分析以及对密文中几余信息进行分析,就可以推出明文。因而重复使用相同的密钥是不安全的。
2.WEP缺乏密钥管理
在WEP机制中,对应密钥的生成与分发没有任何的规定,对于密钥的使用也没有明确的规定,密钥的使用情况比较混乱。
数据加密主要使用两种密钥,Default Key和Mapping Key。数据加密密钥一般使用默认密钥中Key ID为0的Default Key密钥。也就是说,所有的用户使用相同的密钥。而且这种密钥一般是使用人工装载,一旦载入就很少更新,增加了用户站点之间密钥重用的概率。
此外,由于使用WEP机制的设备都是将密钥保存在设备中。因此一旦设备丢失,就可能为攻击者所使用,造成硬件威胁。
3.IV重用问题
IV重用问题(也称为IV冲撞问题),即不同的数据加密时使用的IV值相同。而且使用相同的数据帧加密密钥是不安全的。数据加密密钥是基密钥与IV值串联而成。一般,用户使用的基密钥是KeyId为0的Default key,因此不同的数据帧加密使用相同的IV值是不安全的。而且,IV值是明文传送的,攻击者可以通过观察来获得使用相同数据帧加密密钥的数据帧获得密钥。所以,要避免使用相同的IV值,这不仅指的是同一个用户站点要避免使用重复的IV,同时也要避免使用别的用户站点使用过的IV。
IV数值的可选范围值只有224个,在理论上只要传输224个数据帧以后就会发生一次IV重用。
设置WEP加密
通过前面的详细介绍,用户对WEP加密模式有了一个新的认识。为了使用户熟练地使用WEP加密,本节将介绍如何设置WEP加密
WEP加密认证类型
在无线路由器的WEP加密模式中,提供了3种认证类型,分别是自动、开放系统和共享密钥。其中,“自动”表示无线路由器和客户端可以自动协商成“开放系统”或者“共享密钥”。下面将分别对这两种认证类型进行详细介绍。
1.开放系统认证类型
开放系统认证是802.11的默认认证机制,整个认证过程以明文方式进行。一般情况下,凡是使用开放系统认证的请求工作站都能被成功认证,因此开放系统认证相当于空认证,只适合安全要求较低的场合。开放系统认证的整个过程只有两步,即认证请求和响应。
请求帧中没有包含涉及任何与请求工作站相关的认证信息,而只是在帧体中指明所采用的认证机制和认证事务序列号,其认证过程如图。如果802.11认证类型不包括开放系统,那么验证请求结果将会是“不成功”。
2.共享密钥认证
共享密钥认证是可选的。在这种认证方式中,响应工作站是根据当前的请求工作站是否拥有合法的密钥来决定是否允许该请求工作站接入,但并不要求在空中接口传送这个密钥。采用共享密钥认证的工作站必须执行WEP,其基本过程如图。
共享密钥认证过程,也就是前面所介绍的四次握手。下面详细介绍整个认证过程。如下所述。
(1)请求工作站发送认证管理帧。其帧体包括工作站声明标识=工作站的Mac地址、认证算法标识=共享密钥认证、认证事务序列号=1。
(2)响应工作站收到后,返回一个认证帧。其帧体包括认证算法标识=“共享密钥认证”、认证事务序列号=2、认证状态码=“成功”、认证算法依赖信息=“质询文本”。如果状态码是其他状态,则表明认证失败,而质询文本也将不会被发送,这样整个认证过程就此结束。其中质询文本是由WEP伪随机数产生器产生的128字节的随机序列。
(3)如果步骤(2)中的状态码=“成功”,则请求工作站从该帧中获得质询文本并使用共享密钥通过WEP算法将其加密,然后发送一个认证管理帧。其帧体包括认证算法标识=“共享密钥认证”、认证事务序列号=3、认证算法依赖信息=“加密的质询文本”。
(4)响应工作站在接收到第三个帧后,使用共享密钥对质询文本解密。如果WEP的ICV校验失败,则认证失败。如果WEP的ICV校验成功,响应工作站会比较解密后的质询文本和自己发送过的质询文本,如果它们相同,则认证成功。否则,认证失败。同时响应工作站发送一个认证管理帧,其帧体包括认证算法标识=“共享密钥认证”、认证事务序列号=4、认证状态码=“成功/失败”。
在AP中设置WEP加密模式
随便点点就行
破解WEP加密
由于WEP加密使用的RC4算法,导致WEP加密的网络很容易被破解。在Kali Linux中提供了几个工具(如Aircrack-ng和Wifite等),可以用来实现破解WEP加密的网络。本节将介绍使用这些工具,来破解WEP加密的WiFi网络的方法。
使用Aircrack-ng工具
Aircrack-ng工具主要用于网络侦测、数据包嗅探及WEP和WPA/WPA2-PSK破解。该工具在前面已经详细介绍过,所以这里不再赘述。下面将介绍使用Aircrack-ng工具破解WEP加密的WiFi网络。
使用Aircrack-ng工具破解WEP加密的WiFi网络。
参数的含义如下所述。
–ivs:该选项是用来设置过滤,不再将所有无线数据保存,而只是保存可用于破解的IVS数据包。这样,可以有效地缩减保存的数据包大小。
-w:指定捕获数据包要保存的文件名。
–bssid:该选项用来指定攻击目标的BSSID。
-c:指定攻击目标AP的工作频道。
有客户端连在目标ap上
实操1
本例中以破解Test1无线网络为例,其密码为12345。具体操作步骤如下所述。
iwconfig
airmon-ng start wlan0
airodump-ng wlan0mon
以上输出的信息,显示了扫描到的所有WiFi网络,并从中找出使用WEP加密的网络。当找到有使用WEP加密的WiFi网络时,就停止扫描。从以上信息中可以看到,ESSID名为Test1的WiFi网络是使用WEP模式加密的,所以接下来对Test1无线网络进行破解。
通过以上的方法,找出了要攻击的目标。
接下来,使用如下命令破解目标(Test1)WiFi网络。
airodump-ng --ivs -w wireless --bssid 14:E6:E4:84:23:7A -c 6 wlan0mon
从输出的信息中,可以看到连接Test1无线网络的客户端,并且Data列的数据一直在增加,表示有客户端正与AP发生数据交换。当Data值达到一万以上时,用户可以尝试进行密码破解。如果不能够破解出密码的话,继续捕获数据。
注意:以上命令执行成功后,生成的文件名是wireless-01.ivs,而不是wireless.ivs。这是因为airodump-ng工具为了方便后面破解的时候调用,对所有保存文件按顺序编了号,于是就多了-01这样的序号。以此类推,在进行第二次攻击时,若使用同样文件名wireless保存的话,就会生成名为wirelessattack-02.ivs文件。
当捕获一定的数据包后,开始进行破解。
aircrack-ng wireless-01.ivs
从输出的信息中可以看到,显示了KEY FOUND,这表示已成功破解出Test1无线网络的密码。其密码的十六进制值为31:32:33:34:35ASCII码值为12345。
实操2
下面的例子带你参观一个入侵“有线等效保密协议”WEP无线网络的完整的步骤,不过,整个入侵过程中,有一个重要的特征,那就是这种入侵方式中至少有一个无线网络的某个“被占领客户端”。(victim client)已连在了这个无线网络上。
1.airodump抓包
2.arpreplay欺骗从而获取更多数据包
3.aircrack解密
在这个例子中,我们假设有一个名为 linksys的网络,运行在信道1上,其“基本服务集标识”为 10:FE:ED:40:95:B5首先,设置无线网络适配器,使其进入“监测模式”:
airmon-ng start wlan0 1
接下来,我们开始运行 airodump-ng程序,并设定我们感兴趣的信道和“基本服务集标识”
这时,airodump-ng也将所有捕获到的数据包写人到文件Linksyschl-01.pcap中。
在上面的操作实例中,我们已经看到当前有一个客户端在线,它的MAC地址是02:BA:DC:OD:ED:01。
我们将使用该MAC地址,并“从”“这个客户端发送“重新注入”(reinject)的ARP地址解析数据包。这样做的目的是创造更多的数据包,这样我们就可以更快地破解密钥:
aireplay-ng
是一个用于无线网络攻击和测试的工具,在使用之前需要安装 aircrack-ng 套件。它有多种攻击模式,包括 arp-replay (ARP重放攻击)、deauth (断开连接攻击)、interactive (交互式攻击) 等。
--arpreplay
选项表示使用 ARP 重放攻击模式。ARP 重放攻击是一种对无线网络的攻击方式,它通过重放之前捕获到的网络流量的 ARP 数据包来欺骗网络设备,从而实现对网络的入侵。
-h 02:BA:DC:0D:ED:01
选项指定了连接ap的客户端的 MAC 地址。
-b 10:fe:ed:40:95:b5
选项指定了目标接入点的 MAC 地址。这是你想要攻击的无线接入点的硬件地址。
mon0
是无线接口的监控模式接口名。
ARP重放攻击是一种针对局域网的攻击方式,利用ARP协议的漏洞来欺骗网络设备,使其将通信发送到攻击者控制的设备上。攻击者使用aireplay-ng
工具捕获并重放原始的ARP请求和响应数据包,使目标设备产生误认,从而实现攻击者的目的。ARP重放攻击主要侧重于对特定设备和通信的欺骗。
在上面的操作实例中,aireplay-ng成功地将ARP地址解析协议数据包以注入的方式发送到了网络中。由于数据包是以当前这个客户端的名义发送的,所以这个客户端很快就会收到AP接入点和其他客户端回复给它的数据包。aireplay-ng发送的动作是不停地连发(还记得一轮向各设备分别64个数据包吧),因此,网络中各相关的设备为各自的发送和回复而开始发送数据包。回过头来,看看 airodump-ng,我们会发现大量的数据包正在快速地暴涨。
看到捕获的数据包个数正在稳定增长,这时,就可以运行aircrack-ng程序了
$aircrack-ng -b 10:fe:ed:40:95:b5 Linksysch1-01.cap
最初,我们高兴地看到,在一个屏幕上显示的是分配到每一个密钥字节的权重(weight),以及“初始向量IV”的个数等值。如果 aircrack-ng不能推导出最初的密钥,它会等待更多的数据写入到文件中,然后再试一次。
无客户端连在目标ap上
实操
在没有客户端连接到网络的前提下进行入侵攻击。
第1步:启动 airodump-ng 在这个例子中,作为攻击目标的无线网络上,信道是11,“服务集标识”是“quiet type”,目前无用户连接到网络上。首先,运行 airodump-ng,以便开始捕获网络上的活动,以备随后的入侵。 $sudo airodump-ng --channel 11–bssid 10:fe:ed:40:95:b5 --write quiet type mon0
第2步:假认证 AP接入点下一步,使用aireplay-ng伪造一个和AP接人点之间的关联。这就像是一个常规的客户端会去做的连接一样,你只需要使用aireplay-ng在不知道“有线等效保密协议”密钥的前提下,去和AP接入点建立连接关系。
$ifconfig mon0 | grep Hwaddr
这个命令是用于在 Linux 系统中查看网络接口的配置信息的。ifconfig
命令用于显示和配置网络接口,mon0
是一个网络接口的名称,特指用于监视模式的无线网络接口。
|
符号是管道符号,用于将一个命令的输出作为另一个命令的输入。在这种情况下,ifconfig mon0
命令的输出会被传递给 grep Hwaddr
命令。
grep
命令用于在给定的输入中查找匹配某个模式的行。在这个命令中,grep Hwaddr
表示查找包含字符串 “Hwaddr” 的行。
因此,整个命令 ifconfig mon0 | grep Hwaddr
的作用是查看 mon0
网络接口的配置信息,并筛选出包含 “Hwaddr” 字符串的行,即硬件地址(MAC 地址)所在的行。
输出mon0 Link encap:UNSPEC HWaddr 00-C0-CA-60-1F-D7-00
使用无线网卡的 MAC地址作为源地址,并通过aireplay-ng命令的“-h”参数使用这个地址。
$sudo aireplay-ng --fakeauth 1 -o 1 -e quiet_type -b 10:fe:ed:40:95:b5 -h 00:C0:CA:60:1F:D7 mon0
第一个参数告诉 aireplay-ng执行假的认证,并且认证的时候,命令要带上1秒的延迟,“-o 1”参数是告诉 aireplay-ng一次只发一组数据包,在实施攻击的时候,这样做可以减少对 AP接入点的冲击。再后面的“-e”参数是设置“服务集标识”SSID,“-b”参数设置“基本服务集标识”BSSID,“-h”参数设置源MAC(这应该是当前分配给你的无线接口的MAC地址)。
aireplay-ng
:这是一个用于攻击无线网络的工具,它是 aircrack-ng 套件的一部分。--fakeauth 1
:这里的1
表示要带上1秒的延迟-o 1
:这个选项说明一次只发一组数据包-e quiet_type
:这个参数指定了目标无线网络的SSID(服务集标识)。在这种情况下,SSID 是 “quiet_type”。-b 10:fe:ed:40:95:b5
:这个标志用于指定目标接入点的 BSSID(基本服务集标识),BSSID 唯一标识了无线接入点。在这里,BSSID 是 “10:fe:ed:40:95:b5”。-h 00:C0:CA:60:1F:D7
:这个选项指定要执行伪身份认证的客户设备的 MAC 地址。这里提供的 MAC 地址是 “00:C0:CA:60:1F:D7”。mon0
:这是无线网卡所使用的监视模式接口。监视模式用于数据包捕获和网络监视。
如果你看到一个消息:“得到了一个解除认证的数据包!”,那么假关联已经失败。最可能的原因是 AP接入点实现“MAC地址过滤”(MACaddress flter)。这时,你只能等,等待一个正常用户上线,借助于他的MAC地址,静等他下线,或是发起攻击将他“踢”下网或者与他一起用同一个MAC地址共用网络。总之,拿到他的MAC地址后,你就可以修改自己的MAC地址为该MAC地址,然后再连上网络,继续后面的攻击。
再回到 airomon-ng上,你会看到你的假客户端名单也名列客户端名单中。
下一步尝试一下“碎片攻击”方式(fragmentation attack)。
如果完成后面的“碎片攻击”(和随后的ChopChop攻击),可以留下这个假认证(fake-auth)的程序运行在后台上。这样一来,如果高级攻击中的某一个导致了AP 接入点解除与我们的认证,我们将在1秒延迟以后自动重新认证(re-authenticate)。
第3步:启动碎片攻击“碎片攻击”是一种先进的“有线等效保密协议”破解技术,该技术可以用于使用AP接入点作为一个解密工具,一次解密一个单一的数据包。除非这次指定的就是“碎片攻击”方式,否则只要用之前 aireplay-ng中“假认证攻击”(fake-authattack)进行攻击就可以了。
碎片攻击(Fragmentation Attack)是一种用于破解WEP(有线等效保密协议)加密的技术。通过碎片攻击,可以通过发送特制的碎片数据包来迫使WEP加密使用相同密钥的数据包重新发送,并捕获足够数量的重新发送的数据包来恢复WEP密钥。
在 aireplay-ng 工具中,--fragment
参数可以用于指定启动碎片攻击。此参数后面需要提供一个数字,表示碎片大小。例如,--fragment 128
表示使用128字节的碎片大小进行攻击。
如果你看到这段关于保存密钥流(keystream)的信息,这说明现在程序正在执行一个数据包中,明文(plaintext)和密文(ciphertext)的“异或”(xor)操作。如果“碎片攻击”进入工作状态,你可以直接跳转到第5步。如果“碎片攻击”无法进入工作状态,那么可以试试ChopChop 攻击。
第4步:启动ChopChop攻击除了“碎片攻击”之外的,另一种常用的攻击方式就是“ChopChop 攻击”。“ChopChop 攻击”需要比“碎片攻击”花更长的一点时间(最多几分钟)才能完成。它通过发送修改过的数据包来诱使访问点重新发送被攻击的数据包,并通过捕获和分析这些重新发送的数据包来获取WEP密钥。与"碎片攻击"相比,"ChopChop攻击"可能需要更长的时间来完成,通常最多几分钟。这个攻击方法的目的是逐位地恢复WEP密钥,通过逐个改变数据包中的一个或多个字节,攻击者可以观察到如何影响CRC(循环冗余校验)校验和以及最终解密的结果。
运行如下所示代码。
注意:如果要实施攻击,你可以尽可能只使用尺寸较小的数据包,以便加快“ChopChop攻击”的攻击速度。如果要实施“数据包注入”,则可以使用较大的包,大于68字节的数据包都应该能够满足以后在一次“ARP注入攻击”(ARPinjecton attack)中使用。数据包越大,“ChopChop攻击”所用的时间就越长。如果实施攻击的数据包大于 300字节,你可能就会考虑扔掉这个软件,等待有能发小数据包的合适攻击软件了。
这种攻击将需要几分钟。如果你觉得在攻击的中途接收到了解除认证的信息,那就先确认一下在最初很早运行的“假认证”攻击是否仍在运行。
一旦攻击完成,你会在“.cap”文件中得到解密数据包的一份拷贝,在“.xor”文件中得到密钥流的一份拷贝。一个比较好的主意,是理智地查找攻击程序所留下的输出内容。这主要是在上面保存的“.cap”文件中。这里,会包含有某种“有效的P地址”的数据包。例如,刚解密的数据包,经过解码,发现是“简单服务发现协议(SimpleServiceDiscoveryProtocol,SSDP)”“的数据包,该数据包位于一个192.168.0.X的子网中:
tshark -r ./replay dec-0620-012702.cap
通过使用类似tshark的工具可以读取 “.cap” 文件
得到以下信息
1 0.000000 192.168.0.1 -> 239.255.255.250 SSDP 325 NOTIFY * HTTP/1.1任何时候,数据包的应用层(applicationlayer)信息能够被解出来,这都是一个好的迹象。毕竟,看到应用层的数据,意味着所有与应用层以下各层(对于TCPIP协议来说物理层、网络层、传输层)上的问题已解决。
第5步:手工制作 ARP 数据包 成功地进行了“碎片攻击”或“ChopChop 攻击”之后,你现在可以通过注入你自己的数据包,实现“还原的密钥流”(recovered keystream)。
但应该注入什么样的数据包呢?你需要的是AP接入点直接向广播地址发送的内容。从这样的一个加密的数据包中,通过使用“ChopChop攻击”进行解密,你就可以知道AP接入点所管理的网络位于192.168.0.x子网中。跳过802.11的头部和加密的部分,如果随后的ARP“who-has”请求数据包“在网络上被生成,那么这个AP接入点将会向所有的客户端重新广播一遍。并且在随后的处理中,使用新的“初始向量IV”
你可能会看到类似以下内容的ARP请求数据包:
ARP, Request who-has 192.168.0.122 tell 192.168.0.123
这个ARP请求表明有一个设备正在寻找IP地址为192.168.0.122的目标,从IP地址192.168.0.123发送。这种类型的数据包可以被用来执行ChopChop攻击并进一步分析网络。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
工具以及使用教程和实战。**
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-lh4fqa5H-1712957829938)]