【2】Kali破解家用WI-FI密码 - WPA/WPA2加密
【实验目的】使用Kali系统中已有的Aircrack-ng套件,破解附近使用WPA/WPA2加密的家用WI-FI密码。这里想说的是其实没有WPA/WPA2破解没有什么好办法,这里介绍的方法无非还是攻击连接到目标AP的客户端,让其重新连接目标AP,然后抓到握手包后跑字典,暴力破解,因此需要密码字典(通常只有弱口令才能搞出来)。如果你没有密码字典,可以直接在kali上输入命令:git clone
下载完成后打开下载出来的wpa-dictionary文件夹,里面就有一些密码字典可以用来实验。
【实验环境】
【试验步骤】输入ifconfig
命令查看自己的无线网卡名称
我们可以看到有三条信息,eth0对应物理网卡,lo对应localhost本地回环,而wlan0就是我们所要用到的无线网卡。
输入airmon-ng start wlan0
使无线网卡开启监听模式
开启监听模式后的无线网卡可以接收所有经过它的数据流,它和混杂模式类似。监听模式的不需要和AP建立连接,监听模式是无线网卡特有的特殊模式,而混杂模式应用于有线网卡和无线网卡,切记不要搞混。
之后我们可以再次输入ifconfig
查看确认一下我们的无线网卡是否已经开启了监听模式,如果看到出现了mon
的字样(不同的网卡,主机可能显示的开启监听后的网卡名称不一样,但总归是应该带有mon
字样),我这里开启监听后网卡的工作名称变成了wlan0mon
。
输入命令airodump-ng wlan0mon
回车
使用airodump-ng命令来扫描附近的无线路由器和与之连接的客户端信息,这里我们需要特别注意的是接下来要用到的无线路由的BSSID, ESSID与CH,也就是我图中绿色标注的地方,BSSID表示该AP的MAC地址;CH表示该AP目前的工作信道;ESSID表示该无线局域网的名称,也就是我们连接WIFI时候显示的WIFI名称。
这里我已经扫描到了我需要的信息,获得了BSSID、ESSID与CH,就可以Ctrl+C停止了。这里我们要记录一下我们获取到的BSSID与CH,目标AP目前工作在6号信号上。
输入命令airodump-ng -c 6 -w luoluo wlan0mon
回车
这里的命令表示让无线网卡在6号信道进行工作,并且将抓取到的包保存到名为luoluo的cap文件中,因为上一步扫描中只是为了寻找我们的目标AP,所以没有设置对应信道。我所理解的是如果不设置工作信道,它会不停更换自己的工作信道来尽力扫描附近所有信道上工作的AP,我们也可以在上一步的扫描中看出来,左上角的CH一直在不停的更换数字,并且AP列表是逐个部分逐个部分的显示出来的。
与上面不同的是后面的参数与扫描方式:
【-c】表示让我们的无线网卡在相应的信道进行工作,因为上面我们搜索到目标AP是在6号信道工作的,所以设置为-c 6
;
【-w】表示将提取到的握手包保存至文件中,后面的参数luoluo
可以修改为你所需的文件名;
因为已经设置了我们无线网卡的工作信道为6,所以不在6号信道工作的AP都不会再被扫描,所以相比上一步的扫描。
上方红绿色标记的仍然是我们上一步扫描到的AP信息,而下面红绿色标记的则是连接到目标AP的客户端的一些信息。这里我们可以看到,BSSID列仍然表示对应AP的MAC地址,STATION列表示连接到对应客户端的MAC地址,在这次实验中一个MAC地址为A0:3B:E3:B4:15:3F的客户端连接到了我们的目标AP上。
当然了,我们这次的实验原理是通过攻击连接到目标AP的客户端,使其掉线并且重连,在重连的过程中来抓取其中的握手包。握手包中保存了经过计算后的一些值,通过一系列复杂的计算,然后密码字典中密码的值也进行计算,最后进行比对来得出正确密码。如果目标AP中没有任何与之连接的客户端,就无法或许握手包,也就没有办法。当然唯一的办法就是等待对方来连接他的AP,自然而然我们不需要攻击就能直接得到连接时的握手包。
因为是在实验中,只是为了说清楚这种破解方式的原理与方法,所以都是在理想条件下,这里我们需要记下上面的BSSID与STATION,为我们下一步的攻击做准备。
这个窗口暂时不要再关闭或者停止,因为我们需要它一直去抓取握手包。
新开一个黑窗,输入命令aireplay-ng -0 5 -a 38:83:45:95:70:A4 -c A0:3B:E3:B4:15:3F wlan0mon
这里还是有必要说明一下,因为我们一直在用同一块无线网卡去抓包的同时进行攻击,因为在抓包时我们已经把网卡的工作信道设置为6了,与我们的目标AP工作信道6相同,因此这里进行攻击没什么问题。
但是如果你在上一步没有设置网卡的工作信道,并且一直使用同一块网卡,没设置工作信道会使网卡的工作信道一直在变动,并且可能会由此因为不在目标AP工作的信道上进行监听而错过握手包,还存在一个问题是,例如你在这一步攻击的时候,你的网卡正工作在11号信道,而你的目标AP工作在6号信道,此时你输入完这一步的命令回车,就会出现一些错误提示(我记得是带有channel字样的提示,大意是提示你AP的工作信道与你目前所在的信道不同,没法攻击)。
参数:
【-0】 Deautenticate 冲突模式,伪造一个disassocate包,让客户端与AP失去连接,之后客户端会重新连接AP(说直白点就是把你连接到wifi的手机、电脑之类的打掉线,然后这些设备会自动去重新连接WIFI),通过重新连接过程我们可以获取到握手包;
【5】 表示攻击次数,这里填多少都可以,我这里5次足矣把客户端打掉重连;
【-a】表示需要攻击AP的BSSID,也就是我们一直来攻击的目标AP;
【-c】表示连接到目标AP的客户端的MAC地址,也就是我们上面进行ARP攻击的客户端的MAC地址;
这种攻击模式的前提也是在目标AP中有合法的客户端相连。
这里的合法客户端就是我的手机,我们可以来看一下目前我各个设备的反应,当我输入了上面的命令并且回车后,我的无线网卡会伪装成我的手机来给目标AP发送disassocate包,让AP误以为我的手机要断开WIFI连接,而我的手机则已经从WIFI中掉线,变回了4G模式。
当攻击结束之后,也就是上面的命令跑完了,我的手机已经是4G模式,会再去搜索附近连接过的WIFI,当然了因为是在家中,我的手机又搜索到了之前连接的WIFI:luoluo,然后就通过已经保存和配置下来的设置去自动加入这个网络,这个一般的手机电脑都会去自动加入。在我的手机连接网络的过程中,会用正确的密码与AP进行四次握手并成功连接,而我们所开的第一个窗口正是在抓取握手包,因此我们会得到所需的握手包。
这里我攻击了两次,只是为了保证手机确实掉线了。然后我们先别着急关掉这两个窗口,我们新建一个窗口,来看看握手包是否确实已经抓到。
如果你没有密码字典,可以直接在kali上输入命令:git clone
下载完成后打开下载出来的wpa-dictionary文件夹,里面就有一些密码字典可以用来实验
新开一个黑窗,输入命令ls
确定一下我们保存的cap的文件名,之后输入aircrack-ng -w /root/wpa-dictionary/pass luoluo-01.cap
回车
这里我们通过第一个窗口保存下来并且需要用到的是cap文件,我在之前保存的文件名是luoluo,因此会生成一个luoluo-01.cap的文件。
参数:
【-w】后面写的是你密码字典的路径,我的密码字典的路径是/root/wpa-dictionary/pass
;
最后跟上之前抓包所用的cap文件路径;
回车后:
通过刚才的攻击我们可以看到,目标AP后面显示 WPA(1 handshake),表示已经抓取到了一个握手包,如果我们看到了上面的字样,就表示握手包抓取成功了,成功之后我们就可以停掉之前的两个窗口了,因为我们需要的就是这个抓到目标AP握手包的cap文件。
但如果我们按照上一步骤攻击完后,这里仍然显示 WPA(0 hand shake),我们Ctrl+Z停止现在的工作,然后重复第5、6步骤,看看是否抓取到,还不行就干脆从第一步重做,一般只要重连是可以抓取到的,因为我从我自己和好多邻居的WIFI上试都抓到了。
继续往下,这里我们的字典也选好了,握手包也抓到了,万事俱备,第八个是我们要破解的WIFI,因此输入8然后回车,就会开始跑字典,如下图所示。
这里只需要等待就行了,如果跑完之后还是KEY NOT FOUND,就换字典继续跑,我这里的显卡是GTX 950的垃圾,因此跑的还是挺慢的,当初1G多的字典跑了4个小时也没跑出来正确密码…当然这跟时间没关系,还是看人家的密码在不在你的字典里存着,我的经验是…如果用了弱口令字典没跑出来,那你基本自己是跑不出来了,可以选择上网花15块钱找人跑,把你抓到的cap文件存下来,百度一搜挺多的。
等待结果…
当然,我这里使用的密码太弱了,11111111,随便找个字典一下就跑出来了。虽然是实验,只是为了说明原理与实验过程,但也说明确实可以跑出来密码,要比pywifi之类的方法速度快多了(虽然跑包确实僵硬,但是谁又说得准它没用呢)!
【实验总结】这里可以叫暴力破解,暴力破解WPA/WPA2密码的方法很简单,大体总结起来就是:1. 监听抓包、2. 攻击客户端、3. 检查获得握手包、4. 跑包,就这么四个步骤,我们最终的目的其实就是获得抓取下来包含握手包的cap文件,有了这个cap文件之后我们可以选择自己跑包或者交给网上的一些专业人士(15块)来跑包,最后跑的出来跑不出来完全是看你的字典、对方密码强度和运气。
当然了,我们也不难发现,如果密码随机性越大,或者复杂程度越大,我们就越难跑到也可以说根本跑不到密码,所以如果弱口令没跑出来的话,基本也就够呛了。
不过还是那句话,知道实验原理和思路最重要!如果希望尝试的话最好先用自己的WIFI试一下,看一下整个破解的流程是什么样的,做到心中有数,整个过程也都只是用工具,内容其实很简单,只有几行命令而已。
如果有问题就欢迎给我留言啦!