基于Kali渗透无线网络,实战抓包破解密码
最近我阅读了几篇关于无线网络加密方式以及使用Kali进行抓包和破解Wi-Fi密码的文章。这些文章的内容与我刚开始学习无线网络安全和渗透测试时参考的文档相似。今天我想浅谈一下关于无线网络抓包方式、破解无线网络密码以及分析获取用户信息的过程和防范措施。
注意:本文涉及的内容具有一定的风险,请仅作为参考和技术研究之用,切勿用于破坏公共场所网络或非法目的!重要事情说三遍!
0X01 Wi-Fi加密方式
一般来说,Wi-Fi有以下几种加密方式:
- WEP(有线等效加密)——采用WEP 64位或者128位数据加密。
- WPA-PSK [TKIP]——采用预共享密钥的Wi-Fi保护访问,采用WPA-PSK标准加密技术,加密类型为TKIP。
- WPA2-PSK [AES]——采用预共享密钥的Wi-Fi保护访问(版本2),采用WPA2-PSK标准加密技术,加密类型为AES。
- WPA-PSK [TKIP] + WPA2-PSK [AES]——允许客户端使用WPA-PSK [TKIP]或者WPA2-PSK [AES]。
- WAPI——即无线局域网鉴别与保密基础结构,中国支持的加密技术,在行货手机上内置,目前无线运营商的Wi-Fi网络设备已经支持这种加密技术,但没有开始推广使用。
在我们周围最常见的加密方式是WPA/WPA2 PSK,它的使用范围比较广泛(电脑和手机等设备发起热点也是采用这种加密方式)。
0X02 前期准备
在Kali环境下进行抓包需要利用aircrack-ng工具,并且要求网卡支持监听模式。因此,我们需要选择支持监听模式的无线网卡来进行实验,建议选择网卡芯片为rt5572、rt8187或rtl8812aul的网卡。
0X03 开始抓包
第一步:打开一个终端,使用iwconfig
命令查看本机的无线网卡。
这里检测出来的无线网卡名称为wlan0(由于网卡的芯片和系统版本的原因,名称可能不一样)。
第二步:使用airmon-ng start wlan0
命令开启网卡的监听模式(wlan0为网卡名称)。
注意:输入完命令后,重新查看本机网卡,如果发现检测出来的网卡名称是wlan0mon,而不是刚才的wlan0,则表示监听模式开启成功!
第三步:使用airodump-ng wlan0mon
命令扫描附近的Wi-Fi。
输入命令后,系统开始扫描附近的Wi-Fi,并且不断增加扫描结果。扫描结果包括详细的Wi-Fi信息,如信道、MAC地址、信号强度等。其中,CH代表信道,BSSID是目标的MAC地址!(若想终止扫描,则按Ctrl+C停止!)
第四步:使用airodump-ng wlan0mon -c 目标网络信道 --bssid 指定的目标MAC地址 -w 抓包文件保存目录
命令对无线网络进行抓包(这里以抓包目标为无线网络vm888)。
0X04 进攻网络
现在系统开始对目标网络进行抓包。下面是关于抓包破解的一些需求:
对于抓包而言,需要目标网络正在被他人使用并与路由器进行数据交换。如果没有人使用该网络,一直处于空闲状态,则无法抓到数据包。此外,如果在用户使用过程中无法抓到数据包,则需要对该Wi-Fi进行攻击(最常见的是deauth攻击),迫使用户断开连接并重新连接该网络,从而获取用户连接该网络时使用的密码。
在这里,我们利用aireplay-ng工具来实现强制用户断开Wi-Fi连接的目的。原理是向连接到Wi-Fi的设备发送解除认证攻击包(deauth攻击),使设备断开Wi-Fi连接,然后设备会自动重新连接Wi-Fi。aireplay-ng的生效前提是,Wi-Fi网络中至少有一个已连接的设备。
以下是aireplay-ng支持的攻击类型:
第五步:新建一个终端(注意不要停止或关闭当前正在进行抓包的终端),使用aireplay-ng -0 攻击次数 -a 指定无线路由器BSSID -c 已连接该无线网的合法客户BSSID
命令发起解除认证攻击(deauth攻击)。这里主要说明的是aireplay-ng -0 10 -a <BSSID> -c <BSSID>
命令,其中:
-0
:冲突攻击模式,后面跟发送次数(设置为0,则为循环攻击,不停地断开连接,客户端无法正常上网)。-a
:设置AP的MAC地址。-c
:设置已连接的合法客户端的MAC地址。如果不设置-c
,则断开所有与AP连接的合法客户端。
在这里,我们对已经连接目标网络(vm888)的合法用户(可以连接该网络的设备)进行解除认证攻击(deauth攻击):
从上面的照片可以看出,目标网络已连接的客户端有两个合法用户。我们对其中一个用户进行解除认证攻击,并让他重新连接该网络。
0X05 结束抓包
第六步:发起解除认证攻击后,返回当前的抓包终端,并按Ctrl+C结束抓包。
0X06 破解密码
第七步:使用aircrack-ng -a2 -b 1C:60:DE:9D:6F:A6 -w pass.txt hack-08.cap
命令进行密码破解。参数解释如下:
-a2
代表WPA的握手包。-b
指定要破解的Wi-Fi的BSSID(即刚才我们进行抓包的目标网络vm888的BSSID)。-w
指定字典文件(这里使用的是pass.txt)。- 最后是已破解完的包名(hack-08.cap)。
破解成功!根据以上结果,对目标包进行破解只需要不到1秒的时间,平均每秒使用66.68个密码进行对比(66.68k/s),成功破解出的密码是18871208。
0X07 结果分析
这里需要说明的是,破解速度与个人电脑的配置有关。当然,可能有人会问,破解出来的密码很简单,复杂的密码有用吗?答案是肯定的。然而,需要提前说明的是,根据破解原理来讲,最终的破解过程仍然依赖于密码字典。如果你的密码字典足够强大,没有你破解不到的密码。Kali Linux默认提供了一些密码字典,但是根据地区和用词习惯的不同,破解效果也会有所不同。默认字典可能无法破解一些密码,比如开发商提供的默认字典密码通常由英文单词组成,如Alex199502、Alexander等人名+数字或其他词语。但是在我们这边就不一定了,比如chenglei123、wodewangluo等。
我之前查找了一些相关资料,了解了很多密码破解的方法,例如分布式破解、制作哈希表等方法,以提高破解速度和成功率。一个强大的哈希表可以将破解速度提升到每秒700,000个密码(在设备足够强大的条件下),还可以利用GPU(显卡)的性能来加速破解。有兴趣的人可以自行搜索,也有一些网站提供密码字典和哈希表,但有些大小甚至超过300GB。不过,Kali Linux和Windows环境下也有制作哈希表的工具,我们以后再讲。
最后要提到的是,我们抓取的数据包中可能包含用户的一些敏感信息,如论坛账号及密码、邮箱账号密码及邮箱内容,以及用户登录或访问的网站及提交的敏感参数等。在这里就不能再详细解释了,有兴趣的人可以自行搜索。本文仅供技术研究之用,请勿用于非法目的!