特别声明:本文是参照“9.2 使用Aircrack-ng工具破解无线网络”进行实验的。链接为:https://wizardforcel.gitbooks.io/daxueba-kali-linux-tutorial/content/52.html
因为这个链接我经常打不开,所以特地实验并记录一遍以方便以后查阅。
Aircrack-ng是一款基于破解无线802.11协议的WEP及WPA-PSK加密的工具。本文采用aircrack-ng(Kali系统自带aircrack-ng工具)实验破解WEP、WPA/WPA2加密方式的无线网络,其中破解WEP加密方式的无线网络能够100%破解,而且破解速度比较快;破解WPA/WPA2加密的无线网络,存在着个别网络获取不到握手包的情况,即便获取到握手包也需要依赖强大的密码字典才能破解,若是密码字典里不包含要破解的密码也破解不了。
实验环境
操作系统:连着网线的笔记本,笔记本在VMware中安装Kali系统,Kali版本kali-Linux-2017.1-i386.iso
Kali系统下载链接:https://www.kali.org/downloads/
无线网卡:NETGEAR wg111 v3 RTL8187B 网卡(kali下免驱)
破解WEP加密的无线网络
Wired Equivalent Privacy或WEP(有线等效加密)协议是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络。这种加密方式非常容易破解,不过现在还是有不少使用这种加密方式无线网络。
下边介绍下破解步骤:
1.使用airmon-ng命令查看当前系统中的无线网络接口
输出的信息表示,当前系统中存在一个无线网络接口。从输出结果的Interface列,可以看到当前系统的无线接口为wlan0。
2.修改wlan0接口的MAC地址。因为MAC地址标识主机所在的网络,修改主机的MAC地址可以隐藏真实的MAC地址。在修改MAC地址之前,需要停止该接口。命令如下:
ifconfig wlan0 down
macchanger --mac 00:11:22:33:44:55 wlan0
输出的信息显示了wlan0接口永久的MAC地址、当前的MAC地址及新的MAC地址。可以看到wlan0接口的MAC地址已经被修改.
3.重新启动wlan0
airmon-ng start wlan0
输出的信息显示了无线网卡wlan0的芯片及驱动类型,并显示监听模式被启用,映射网络接口为wlan0mon。
4.使用airodump命令定位附近所有可用的无线网络
airodump-ng wlan0mon
以上输出的信息显示了附近所有可用的无线网络。当找到用户想要攻击的无线路由器时,按下Ctrl+C键停止搜索。
从输出的信息中看到有很多参数。详细介绍如下所示。
- BSSID:无线的IP地址
- PWR:网卡报告的信号水平
- Beacons:无线发出的通告编号
- CH:信道号(从Beacons中获取)
- ENC:使用的加密算法体系。OPN表示无加密。WEP?表示WEP或者WPA/WPA2模式,WEP(没有问号)表示静态或动态WEP。如果出现TKIP或CCMP,那么就是WPA/WPA2。
- ESSID:指所谓的SSID号。如果启用隐藏的SSID的话,它可以为空。这种情况下,airodump-ng试图从proberesponses和associationrequests中获取SSID。
- STATION:客户端的MAC地址,包括连上的和想要搜索无线来连接的客户端。如果客户端没有连接上,就在BSSID下显示“notassociated”。
- Frames:客户端发送的数据分组数量
- Probe:被客户端查探的ESSID。如果客户端正试图连接一个无线,但是没有连接上,那么就显示在这里。
5.使用airodump-ng捕获指定BSSID的文件
airodump-ng --ivs -c 4 --bssid E0:05:C5:A7:0F:60 -w wifi8103 wlan0mon
airodump-ng命令常用的选项如下所示
- –ivs 这里的设置是通过设置过滤,不再将所有无线数据保存,而只是保存可用于破解的IVS数据报文,这样可以有效地缩减保存的数据包大小
- -c:指定选择的频道
- -bssid:指定攻击的BSSID
- -w:指定一个文件名,用于保存捕获的数据
从输出的信息中可以看到ESSID为TP-LINK8103无线路由器的#Data一直在变化,表示有客户端正与无线发生数据交换。以上命令执行成功后,会生成一个名为wifi8103-01.ivs的文件,而不是wifi8103.ivs。这是因为airodump-ng工具为了方便后面破解的时候调用,所有对保存文件按顺序编了号,于是就多了-01这样的序号,以此类推。在进行第二次攻击时,若使用同样文件名wifi8103保存的话,就会生成名为wifi8103-02.ivs文件。
6.打开一个新的终端窗口,运行aireplay命令。aireplay命令的语法格式如下所示:
aireplay-ng -1 0 -a [BSSID] -h [our Chosen MAC address] -e [ESSID] [Interface]
aireplay-ng -dauth 1 -a [BSSID] -c [our Chosen MAC address] [Interface]
在终端窗口执行
aireplay-ng -1 0 -a E0:05:C5:A7:0F:60 -h 00:11:22:33:44:55 -e TP-LINK_8103 wlan0mon
7.使用aireplay发送一些流量给无线路由器,以至于能够捕获到数据。
aireplay-ng -3 -b E0:05:C5:A7:0F:60 -h 00:11:22:33:44:55 wlan0mon
输出的信息就是使用ARP Requests的方式来读取ARP请求报文的过程。若连接着该无线路由器/AP的无线客户端正在进行大流量的交互,比如使用迅雷、电骡进行大文件下载等,则可以依靠单纯的抓包就可以破解出WEP密 码。但是无线黑客们觉得这样的等待有时候过于漫长,于是就采用了一种称之为“ARP Request”的方式来读取ARP请求报文,并伪造报文再次重发出去,以便刺激AP产生更多的数据包,从而加快破解过程,这种方法就称之为 ArpRequest注入攻击。
回到airodump-ng界面
可以看到YP-LINK_8103的Frames栏的数字在飞速的递增。在抓取的无线数据报文达到了一定数量后,一般都是指IVsX值达到2万以上时,就可以开始破解,若不能成功就等待数据包文继续抓取,然后多尝试几次。
8.使用Aircrack破解密码
执行此步骤时,上一步的aireplay-ng窗口不用关闭,可以新开一个终端窗口运行
aircrack-ng wifi8103-01.ivs
从输出的结果中可以看到“KEY FOUND!”,后边括号里的为密码:ABCDEF2017。
破解WPA/WPA2无线网络
WPA全名为Wi-Fi Protected Access,有WPA和WPA2两个标准。它是一种保护无线电脑网络安全的协议。对于启用WPA/WPA2加密的无线网络,其攻击和破解步骤及攻击是完全一样的。不同的是,在使用airodump-ng进行无线探测的界面上,会提示为WPA CCMP PSK。当使用aireplay-ng进行攻击后,同样获取到WPA握手数据包及提示;在破解时需要提供一个密码字典。下面将介绍破解WPA/WPA2无线网络的方法。
前3步跟破解WEP密码步骤是一样的
1.使用airmon-ng命令查看当前系统中的无线网络接口
2.修改wlan0接口的MAC地址
ifconfig wlan0 down
macchanger --mac 00:11:22:33:44:55 wlan0
3.重新启动wlan0
airmon-ng start wlan0
4.使用airodump命令定位附近所有可用的无线网络
airodump-ng wlan0mon
这里要破解的无线网络是WPA2加密的TP-LINK123
5.捕获数据包
airodump-ng -c 1 --bssid F4:EC:38:0D:6A:B8 -w wifi123 wlan0mon
这一步执行完若是恰好有客户端在连接要攻击的TP-LINK123,那么就可以获取WPA handshake的握手包了,就不需要步骤6了;若是没有客户端正在连,没有获取到WPA handshake握手包,需进行步骤6。
6.对无线路由器进行Deauth攻击
和破解WEP时不同,这里为了获得破解所需的WPA-PSK握手验证的整个完整数据包,无线黑客们将会发送一种称之为“Deauth”的数据包来将已经连接至无线路由器的合法无线客户端强制断开,此时,客户端就会自动重新连接无线路由器,黑客们也就有机会捕获到包含WPA-PSK握手验证的完整数据包了
aireplay-ng --deauth 1 -a F4:EC:38:0D:6A:B8 -c 18:59:36:1B:C5:03 wlan0mon
- 采用deauth攻击模式,后面跟上攻击次数,这里设置为1,可以根据实际情况设置
- a 后跟AP的MAC地址
- c 后跟客户端的MAC地址,也就是要踢掉的已经连上的客户端的MAC地址
若是执行完这一步还没出现握手包,可适当增加deauth后边的攻击次数,比如增加到10。
7.将抓到的包跑密码字典(我用的密码字典为wordlist.txt)
aircrack-ng -w wordlist.txt wifiDED5A2-01.cap
从输出的结果中可以看到“KEY FOUND!”,后边括号里的为密码:12346789。
创建密码字典
密码字典可以到网上下载,也可以使用Crunch创建。Crunch是一种创建密码字典工具,该字典通常用于暴力破解。使用Crunch工具生成的密码可以发送到终端、文件或另一个程序。
使用Crunch生成字典步骤为:
1.启动crunch命令
2.使用crunch命令生成密码的语法格式如下所示:
crunch [minimum length] [maximum length] [character set] [options]
crunch命令常用的选项如下所示
- -o:用于指定输出字典文件的位置
- -b:指定写入文件最大的字节数。该大小可以指定KB、MB或GB,但是必须与-o START选项一起使用
- -t:设置使用的特殊格式
- -l:该选项用于当-t选项指定@、%或^时,用来识别占位符的一些字符
采用上述命令将生成密码列表的最小长度为8,最大长度为10,并使用1234567890为字符集的密码列表文件。
参考资料:
https://wizardforcel.gitbooks.io/daxueba-kali-linux-tutorial/content/52.html
http://blog.csdn.net/wyvbboy/article/details/52260417