一. 什么是aircrack-ng?
aircrack-ng是一套用于测试WIFI安全的工具。它可以在任何支持监听模式的无线网卡上工作,并嗅探802.11a、802.11b和802.11g的数据。该程序可在Linux和Windows上运行。主要用于以下几个方面:
- 监控:捕获数据包并导出到文本文件中,以供第三方编辑工具进一步处理。
- 攻击:通过包注入重放攻击、反身份验证、假接入点等方式进行攻击。
- 测试:检查WiFi卡和驱动程序的功能(捕获和注入)。
- 破解:破解WEP和WPA PSK(WPA 1和2)无线保密协议。
本文将重点介绍几个常用的工具:
- aircrack-ng:用于破解密钥。
- airmon-ng:用于开启无线网卡的监听模式(monitor)。
- aireplay-ng:用于进行洪水攻击,迫使某个设备断开与WIFI的连接。
- airodump-ng:用于进行无线嗅探,对握手包进行捕捉。
通过一次破解过程,我们将了解这些工具的使用方法。
二. 破解WIFI密码
(请注意,破解他人路由器的密码属于违法行为。本次破解过程仅针对自己的路由器,请勿尝试破解他人路由器。)
准备工作:
- 一款带有监听模式的无线网卡。我使用的是LB-LINK的一款无线网卡,请在购买前向卖家确认该无线网卡是否支持监听模式。
- aircrack-ng工具套件。在kali系统中,aircrack-ng工具是自带的。我使用的是运行在虚拟机中的kali系统,需要注意一些细节,稍后会提到。
- 一个强大的字典。强大的字典是破解无线AP密码的关键。使用WEP协议的路由器只需要足够数量的数据包就能破解,但现如今绝大多数路由器都使用WPA协议,只能通过字典进行暴力破解。因此,我们需要一个强大的字典。kali系统自带一个字典,位于/user/share/wordlists/rockyou.txt.gz。使用前需要使用gzip命令解压。然而,该字典主要面向外国用户,我们需要一个符合国情的字典。这里分享一个字典:链接: 提取码: d5j7。
现在,让我们开始破解。首先,安装好无线网卡并将其连接到虚拟机上。
然后打开终端,使用ifconfig命令查看。wlan0就是无线网卡的ID。命名是根据接入设备的顺序进行的,第一个是wlan0,第二个是wlan1,没有特殊含义。
网卡调试完成后,我们可以开始破解WiFi密码。我们的思路如下:移动设备在连接到无线AP时,会发生以下四次握手过程:
- 当一个无线客户端与一个无线AP连接时,先发送连接认证请求(握手申请:你好!)。
- 无线AP收到请求后,将一段随机信息发送给无线客户端(你是?)。
- 无线客户端将接收到的随机信息进行加密后发送给无线AP(这是我的名片)。
- 无线AP检查加密结果是否正确,如果正确则同意连接(哦~原来是自己人呀!)。
我们要监听并捕获的就是在握手过程中互相发送的握手包,其中包含WiFi的密码。
现在,让我们开始使用aircrack-ng:
- 使用命令”airmon-ng check kill”停止所有对工具有影响的进程。
-
使用命令”airmon-ng start wlan0″开启无线网卡wlan0的监听模式(monitor)。此后,网卡的ID将变为wlan0mon,表示已开启监听模式。
-
使用命令”airodump-ng wlan0mon”进行WiFi嗅探,查看该区域的所有无线AP。
这将列出附近所有AP的列表。列表中每项的含义如下:
- BSSID:AP的MAC地址
- PWR:网卡接收到的信号强度,距离越近信号越强
- Beacons:接收到此AP发送的beacon帧数量
- #Data:抓到的数据帧数量(WEP表示IV数量),包括广播数据帧
- #/s:最近10秒内,每秒平均抓到的帧的数量
- CH:信道号(从beacon帧中获得),信道重叠时可能发现其他信道
- MB:AP支持的最大速率
- ENC:采用的无线安全技术(WEP、WPA、WPA2、OPEN)
- CIPHER:采用的加密套件(CCMP、TKIP、WEP40、WEP104)
- AUTH:身份认证方法(MGT、PSK、SKA、OPEN)
- ESSID:无线网络名称,隐藏AP此值可能为空,airodump从probe和association request帧中发现隐藏AP
- STATION:STA的MAC地址
我们需要关注的是BSSID、CH和DATA。我们选择要破解的WiFi时,最好选择DATA不为0的,因为DATA不为0意味着有设备连接到AP并进行网络活动,我们可以截取握手包并获取密码。在这里,我选择的是自己的路由器,即第一个2333,我们将尝试对其进行破解。
- 使用命令”airodump-ng -c 6 –bssid 96:63:72:6B:E3:CF -w /root/cap/ wlan0mon”针对目标WIFI接入点进行监听,捕获握手包。
进入目标AP的监听界面后,STATION下的MAC地址就是连接到目标AP的设备MAC地址,这里是我的手机。
此时,我们已经进入监听状态,只需等待移动设备重新连接WiFi以捕获握手包。然而,我们并不知道需要等待多长时间,对于黑客来说,这是不可接受的。因此,我们可以使用下一个命令。
- 使用命令”aireplay-ng -0 2 -a 96:63:72:6B:E3:CF -c 14:5F:94:1C:5D:52 wlan0mon”对连接到AP的设备进行洪水攻击,使其掉线后自动重连,从而获取握手包。
其中的参数解释如下:
- -0:进行洪水攻击的次数,这里设定为2次。如果设置为0,则表示不断攻击。
- -a:目标AP的MAC地址
- -c:连接到AP的移动设备的MAC地址
此时,我们再看右上角,会发现监听终端多了一个”WPA handshake”,这表示握手包捕获成功。
可以按Ctrl + C退出监听。
- 使用命令”aircrack-ng -a2 -b 96:63:72:6B:E3:CF -w /usr/share/wordlists/rockyou.txt /root/cap/*.cap”对握手包进行暴力破解。
其中的参数解释如下:
- -a2:代表WPA2的握手包
- -b:目标AP的MAC地址
- -w:字典地址
破解成功!这次破解过程中,我故意设置了最弱的密码12345678,所以破解速度很快。
当然,我们也可以将这项工作交给GPU来完成:
首先,将cap文件转换为hccap文件:
aircrack-ng /root/cap/*.cap -J /root/hccap/1
转换成功…
然后,利用工具Hashcat进行破解。Hashcat可以利用GPU的运算能力破解各种不同算法的哈希值。
使用以下命令:
hashcat -m 2500 /root/hccap/1.hccap /usr/share/wordlists/rockyou.txt
参数解释如下:
- -m:代表哈希函数的类型,2500代表WPA/WPA2的加密函数。可以通过输入hashcat -h命令查找其他类型。
- hccap文件路径
- 字典文件路径
总之,要防御他人的攻击,最简单且最有效的方式就是设置一个复杂度高的密码。