Wpa2密码破解教程(通过字典破解WPA/WPA2加密WIFI密码)
序
当客户端连接到无线热点时,它们之间会交换一些数据。如果我们能捕捉到这些数据,我们就有望获得这个无线热点的密码。读完这篇文章,你会有所收获:
客户端使用正确的密码连接到无线热点的过程
是指捕获连接时传输的数据,并从中分析密码。
在进行本文的实验之前,请确保基本环境已经准备就绪:
无线网络安全第一步:在虚拟机上配置kali。
并且,Kali系统的一些基本命令行操作已经知道,今天实验必需的无线网卡也准备好了:
无线安全学习:网卡准备和常用命令行操作
在学习过程中,如有疑问,可私信作者,或在文章下评论。我会尽力为读者答疑解惑。
可能比较枯燥,但请耐心听理论解释。
这部分我们会学习WIFI认证过程中的四次握手,这是我们下一步实验的知识储备。
首先,我们的数据是无线传输的,也就是以电磁波(也就是光)的形式传输,不如有线(电)传输安全。因为电传输的介质是电线,有线网络的介质是网线,网线到哪里,数据就传输到哪里,而无线网络是以光的形式向外辐射,光能到达哪里,数据就可以到达哪里。
所以在无线传输中,一定要有一个可靠的加密算法来保护我们的数据,不让不该知道的人知道。
首先提出的加密方法是WEP,它是有线等效保密的缩写。翻译,即有线等效保密。最初提出时,它是作为IEEE 802.11的一部分提出的。提出这种算法的委员会认为这种加密方法和有线传输一样安全,所以这样命名。
遗憾的是,这种被称为“像有线一样安全”的加密方式的寿命只持续了不到五年(1999年9月提出的IEEE802.11在2003年被WPA淘汰)。它的脆弱性是如此严重,以至于解决其安全问题的唯一方法是更换更安全的WPA或WPA2。
"...WEP安全问题最广泛推荐的解决方案是改用WPA或WPA2,比WEP更安全。”——百度百科
取而代之的是WPA,Wifi保护接入,字面翻译为Wifi保护接入。2004年,IEEE802.11i发布,修订了之前的WPA,提出了更加可靠和安全的WPA2。这种加密方法一直被用来保护无线通信的安全。下面,我们来简单了解一下在这种加密方式加密的无线热点的认证过程中,客户端和路由器之间发生的故事,也就是四次握手:
①路由器向客户端发送一个随机数(记为随机数1)。这是第一次握手。
②客户端收到这个随机数1后,自己生成一个随机数(记为随机数2)。然后,客户端通过随机数1、随机数2和输入的Wifi密码三个参数的函数关系生成密码(记为PTK)。
然后,客户端将随机数2(它计算出的PTK)发送回路由器。这是第二次握手。
③路由器收到随机数2,它知道自己的Wifi密码,所以它也通过随机数1、随机数2和自己的Wifi密码三个参数,在客户端通过相同的函数关系生成一个PTK。
将客户端发送的PTK与自己的PTK进行对比,如果通过固定的函数关系,计算的结果相同,即发送的PTK等于自己计算的PTK,则说明三个参数(随机数1、随机数2、输入的密码)都相同,即客户端输入的密码是自己的Wifi密码,已经通过认证。否则握手就结束了。
在这里可能有的读者会问:一个输入只对应一个输出,但是一个输出却未必只对应一个输入?也就是说凭什么就这样认为输入的密码和正确的Wifi密码相同?也有可能是虽然不相同,但是函数运算出相同的结果呢?这是一个好问题,能够问出这个问题,就说明您已经确实地在思考了。生成PTK的这个算法,是我们软件运算中最常见的,Hash,也叫散列运算。它将不同长度的输入映射成长度相同、独一无二的输出,并且,没有办法从输出确定唯一的输入,因此,我们可以通过比较输出来在不知道输入的情况下比较输入。的确存在两个输入映射成同样的输出的情况出现,这也称为哈希碰撞。是有办法避免哈希碰撞的情形的,采取某种措施,可以将碰撞的几率降低到可以忽略的程度。有兴趣的读者可以在网上自行了解。因此,在这里,就认为输入的密码正是正确的Wifi密码。认证成功后,路由器向客户端发送另一个密钥。这是三次握手。
④客户端收到密钥后,向路由器发送消息,告知对方已经收到密钥。这是第四次握手。
四路握手包都是明文传输的,所以我们通过捕获四路握手包(简称握手包)可以得到随机数1、随机数2和PTK。
列出可能的Wifi密码,做一个字典。我们对每个密码和两个随机数执行同样的操作,然后与PTK进行比较。如果相同,说明密码是正确的Wifi密码。
更有趣的实用部分
首先我们设置一个Wifi,密码设置为12345678。
然后,我们让我们的物理计算机连接到这个Wifi。
打开我们的Kali Linux,用airodump-ng wlan0mon扫描周围的Wifi。
当然PWR里最大的Wifi是我设置的无线热点。因为距离最近,信号最好,所以PWR也最大。CH表示它在11频道。
使用airodump-ng-bssid * *:* * *:* * *:* * *:* *-c11-w test WLAN 0 mon指定嗅到的Wifi,将抢到的抓包保存在当前目录cap.cap当然,如果没有抓到手包,也就不会有test.cap这样的文件,只能得到这个Wifi和连接的客户端的信息。
现在可以清楚的看到,我的电脑是这个Wifi的唯一客户端。我们有我手机网卡的Mac和我电脑无线网卡的Mac。(但你实际上并没有得到)
如前所述,握手数据包是一种数据包,只有在客户端和路由器进行身份验证时才会发送。除非我们等待第二个客户端连接到我的热点,否则我们无法捕获握手数据包。
但是,有一个方法可以让我们更快的拿到这个手包。这就是deauth攻击。
路由器能够要求客户端断开与自身的连接。当它想这样做时,它将向客户机发送一个deauth包。那么客户端将与路由器断开连接。但是,这并不是客户端网卡的本意。不是那么容易打发的。被踢飞后,它会尽快尝试重新连接到此路由器。
deauth攻击的原理是模拟路由器发送这个deauth包给客户端。如果你不想让你讨厌的室友在寝室大声玩网游,而他又恰好连上了寝室的wifi,那就用deauth一直攻击他吧。
我们新建一个窗口,使用aireplay-ng-02-a * *: * * *:* * *:* * *:* *-c-:-:-:-:-:-wlan0mon命令,使用WLAN 0 mon网卡寻址mac为* *:* *。
发送后,原airodump-ng窗口右上角会出现一行。
WPA handshake:你的WIFI的MAC地址意思是你已经抓到握手袋了。如果没抓到,可以增加攻击时间或者调整无线网卡接收器的角度。
我们按ctrl+c退出,输入ls,看到确实有一个cap文件。
然后把包含12345678的字典文件(没有12345678在网上是不可能找到字典的)passwd.txt放在这里。美国总统之行政命令
aircrack-ng -w passwd.txt cap-01.cap发现提示键!【12345678】,真的找到了这个密码。
虚拟机缓慢运行字典。利用物理机和GPU共同操作,随着配置的提升,运行字典的速度可以达到几百万。
摘要
今天我们学习了wifi认证的四次握手,以及通过deauth攻击将连接的客户端与路由器重新连接抢握手包,通过字典设置wifi密码的操作。
但是不要以为学了这招就可以为所欲为了。
诚然,只要字典足够大,运行速度足够快,理论上wifi密码总是可以被破解的。
然而,只要做一些计算。假设我们采用一个10位的wifi密码,每一位都有a-z,A-Z,0-9,26+26+10=62种可能,也就是62 ^ 10个密码的可能,每个密码的长度是10个字节,那么我们的字典文件至少有8 * 10 ^ 17个字节,大致就是800000TB。有特殊的符号,以我们普通电脑的速度...
但是正规的密码,比如简单的拼音加数字,比如电话号码,比如固话,比如生日,还是在可以接受的范围内。
反之,使用这些常规密码更容易被破解。
然而,现在有一种新的认证。公共wifi喜欢去肯德基麦当劳,他们没有密码。要求手机号码接收验证码认证。
学习永远不能停止。一旦你停止学习,你就会落后于时代。
如果你在阅读过程中有什么疑问,或者实际操作中有什么问题,请在文章底部留言,我会尽力为你解答。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。