在前一段时间,WPA2出了个问题,WPA2协议漏洞被公布,该漏洞命名为KRACK (密钥重装攻击),可利用漏洞对WPA2进行密钥重装攻击,破解WAP2加密入侵对应的网络,当完成破解WAP2后就可以完成监听与劫持,剩下的套路基本与中间人攻击(MITM)类似如果拦截未被加密的数据流进行解密并查看其中的内容,在数据流中插入恶意内容在不知不觉中潜入你的电脑。当然这个攻击的前提条件可能需要攻击已经可以搜索到您的WiFi信号,也就是在既定的物理范围内才可以。
此次漏洞的CVE编号包括:
CVE-2017-13077,13078,13079,13080,13081,13082,13084,13086,13087 ,13088
首先我们先分析下漏洞的原理
本次的WPA2“密钥重装攻击”,基本原理为利用WPA协议层中的逻辑缺陷,多次重传握手过程中的消息3从而导致重放随机数和重播计数器,为攻击者提供了利用条件。
在协议中还存在一条危险的注释“一旦安装后,就可从内存中清除加密密钥”,若按此注释进行实现,在密钥重装攻击时会从内存中取回已经被0覆盖的key值,从而导致客户端安装了值全为零的秘钥。而使用了wpa_supplicant的Linux及Android设备便因此遭受严重威胁。 整体来说,此次漏洞的危害程度弱于WEP漏洞的影响,但对于Linux及Android设备需额外注意要及时更新修补此漏洞,防止遭受嗅探、劫持等攻击。
需要注意的是:
此攻击无法破解WIFI密码,同时更改WiFi密码无法缓解此类攻击。
攻击主要面向客户端设备,路由器可能并不需要进行安装更新。
WPA/WPA2协议还是安全的,一些客户端的实现需要更改,可通过向下兼容的方式进行修复,无需更换设备。一旦修复更新发布,请立即为您的设备安装。
本次攻击主要是针对WPA2协议的四次握手过程,使用了一种叫做Key重新安装攻击(KRACK)新的攻击技术。我们知道当客户端试图连接到一个受保护的WiFi网络时,AP将会发起四次握手,完成相互认证。
同时,在四次握手过程中将会协商好一个新的用于加密接下来通信数据的加密密钥。在四次握手过程中,当客户端收到AP发来的Message 3后将会安装加密密钥key,用于加密正常的数据帧。因为message可能丢失或者被丢弃,如果AP没有收到响应AP将会重新传输message3,这样客户端可能会收到多次message3。客户端每次收到此message都会重新安装加密key,从而重置加密协议使用的增量发送数据包号nonce和接收重放计数器。而攻击者可以通过收集和重放重新发送四次握手中的message3强制重置nonce,从而成功攻击加密协议,解密客户端发送通信数据包,截获敏感信息。
另外,这一漏洞似乎是由WiFi标准中的一句话引起的。该标准建议,一旦首次安装,就可以从内存中清除加密密钥。当客户端收到四次握手的重传message3时,它将重新安装现已清除的加密密钥,有效地安装了一个全为零的密钥。
值得注意的是本次攻击没有获取到wifi网络的密码,也没有获取在四次握手过程中协商的新生的加密密钥。
STOP
是不是觉得说的粗涩难懂。是不是觉得对你的大脑是残忍至极的事情,好吧,我用人话给大家好好的说一下,首先,我县画个图,说一下什么叫做四次握手!!
我的天啊,这小图画的,绝了~~~~
(AP:wifi STA:客户端)
第一次:AP向STA发送一个随机数。Anonce到STA
第二次:STA收到Anonce,顺带上自己的PTK(PTK是由密钥,AP的anonce,mac地址,乱起八糟的)重新生成一个Snonce,顺带一个MIC的确认完整的信息到AP
第三次:AP收到Snonce,再加上自己的PTK,还有一个组密钥一起发送给STA
第四次:收到密钥,开始安装,安装结束后向AP发送一个ACK确认
结束~~~~~
这个密钥重装攻击呢,我再来一张图!
好,这个小圈圈就是黑客,在中间偷东西
攻击发生在第三次握手后,AP向STA发送了密钥让他安装,STA收到后进行安装,安装结束后发送一个我安装完了,我要开车了~
但是这个确认包被黑客拦截,这个时候AP好奇了,这是干嘛呢,还不回来,暖被窝都要凉了,又发送了一个,第三次握手,这个时候STA又收到了一个密钥的安装通知,得,这孩子没脾气,又安装,停停停~这个时候就出事了。WPA2协议里面有这么一句话,密钥安装后,清除内存中的密钥,而第二次密钥的安装,这小子不按握手包里面的,去内存重新找,所以取到了全为0000000000的密钥。造成了WPA2的绕过。
实话说,我不太清楚网上有很多的什么WPA2的破解视频有到底展示出了什么,可能是我菜吧 ,通篇一路的复现方法~仔细看看,文字不匹配图片的~呵呵了
虽然我也不知到这个跟WPA2密钥重装攻击有什么关系,但是我也按照网上的给大家详细的复现一下正确的方式,然后大家一起坐等最新的正确的POC~
实战:
本次测试环境为KALI
首先我们需要kali里面安装好我们的依赖环境,执行以下的几条命令
apt-get update
apt-get install libnl-3-dev libnl-genl-3-dev pkg-config libssl-dev net-tools git sysfsutils python-scapy python-pycryptodome
这个我就不上图了啊
接下来下载我们本次用的脚本,Github项目地址为https://github.com/NoahhhRyan/krackattacks-test
在kali命令行执行
git clone https://github.com/NoahhhRyan/krackattacks-test
cd krackattacks-test
cd krackattack
chmod 777 krack-ft-test.py
chmod 777 disable-hwcrypto.sh
./disable-hwcrypto.sh
python krack-ft-test.py
傻瓜式一键操作。复制黏贴,一把梭,就是干~~~
当是图下的这个界面我们就已经安装成功了
我画的这个红框框是他的使用方法,英语8级自行翻译,英语2级请听我瞎胡说~~~
他首先介绍了./disable-hw巴拉巴拉~的作用,启动他是因为有的一些网卡有本身的加密什么的,我们为了试验的效果我们要禁用它。
接下来我们要创建一个network.conf文件
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="testnet"
key_mgmt=FT-PSK
psk="password"
}
ssid是我们要攻击的WIFI名称,密码随便
然后向kali配置上我们的无线网卡。不会的同学自行百度!
执行以下命令
sudo wpa_supplicant -D nl80211 -i wlan0 -c network.conf
这个时候,他会提示我们delete一个东西 ,卡里上面会有提示~
直接
rm /那个东西
再次执行就好了,就达到了网上所有人都得到的效果~
有的小伙伴会说没反应 ,一直卡在successfull的那,这是因为我们需要用外置网卡连接到我们攻击的网络,把有线断开,然后执行,就会发现,不听的重新连接,,,,得到了视频的效果,我抓了下包,全是第一二次请求~天杀的土拨鼠知道这跟那有什么关系,难道是还有其他的操作,嗯!一定是 ,我是彩笔!
看后面右上角的113后面的MESSAGE的数字 ,全是第一次握手!
猜测,这是不是视频上所说的信道攻击,攻击原热点,让客户端链接到伪AP上,但是为什么是自己在那不断的重连,手机链接一点影响没有~
也求各位大佬留言讲解下!!感谢
一支穿云箭~
文章评论
我也遇到同样问题!