​ 实验原理:WPA密码其实叫PSK(pre-shared key),它加上ssid通过一定的算法可以得到PMK(pairwise master key):

​ $$ PMK=SHA_1(ssid,psk) $$
​ PMK的长度是定长的,都是64字节。由于计算PMK的过程开销比较大,是我们破解花费时间长的关键,所以采用以空间换时间的原则把PMK事先生成好,这个事先生成好的表就是常说的HASH表,这个工作就是用airlib-ng这个工具来完成。
​ 目前的破解方法是我们获得握手包后,用我们字典中的PSK+ssid生成PMK,然后结合握手包中的(客户端MAC,AP的BSSID,$A_NONCE$,$S_NONCE$)计算PTK,再加上原始的报文数据算出MIC并与AP发送的MIC比较,如果一致,那么该PSK就是密钥。

airolib-ng

​ airolib-ng是Aircrack-ng套装里的又一个工具,用来存储和处理网络名和密码表。通过计算PMK,用于WPA/WPA2的破解。其语法格式如下:

airolib <database> <operation> [options]
选项 说明
database 表示数据库文件,可以是绝对路径。
operation 指定了我们要对数据库进行的操作。
–import {essid|passwd} {file} 导入含有网络名或者秘钥列表的文本文件。文件每行需含一个网络名或者密码,以换行符结束(这样读入时就会被当做“enter”)。
–batch 开始计算所有网络名和密码的组合。此命令需用在aircrack-ng破解之前。当数据库添加了新的SSID或者密码时,也许重新计算。
–export cowpatty [essid] [file] 导出为cowpatty文件。
–sql {sql} 执行所给的SQL语句。
airolib-ng –help 查看帮助文档。

1.创建包含ESSID的文档

创建包含ESSID的文档,每行含有一个ESSID。创建名称为gryffinbit(名称自取)的数据库,向数据库插入ESSID。

airolib-ng gryffinbit --import essid /root/ssid.txt

2.创建包含密码的文档,并向rainbow数据库插入密码。

airolib-ng gryffinbit --import password /root/password.txt

3.批量生产PMK数据。

airolib-ng gryffinbit --batch

查看数据的状态

airolib-ng gryffinbit --stats

可以看到,当前数据库中有11个ESSID和16个密码,并且已成功对其进行了计算。

4.使用aircrack-ng进行破解

aircrack-ng -r gryffinbit -e helloworld handshake-01.cap 
选项 说明
-r 指定PMK数据库
-e 指定ESSID

​ 也可以选择使用Cowpatty工具进行破解。Cowpatty是一款Linux下用于破解WPA-PSK加密的工具。其语法格式如下:

cowpatty [options]
选项 说明
-d Hash表
-r 含有握手包的cap文件
-s AP的ESSID

在使用Cowpatty之前,需要先提取用于cowpatty跑的hash 表。

airolib-ng gryffinbit --export cowpatty helloworld R_table

然后就可以使用Cowpatty工具。

cowpatty -s kong -d R_table -r  .cap


​ 使用airolib-ng生成PMK数据后,可以对该数据进行管理,比如导入第三方数据、校验数据和清理数据。
导入ssidlist.txt 文件中的ESSID到数据库。

airolib-ng gryffinbit --import password /root/password.txt

导入pword.txt 文件中的密码到数据库。

airolib-ng gryffinbit --import essid /root/ssidlist.txt

使用–verify选项校验数据,以验证数据库的状态正常。也可以使用–clean选项进行数据清理。

airolib-ng gryffinbit --verify

可以使用下面的命令行插入单个ESSID。插入单个密码也可类似操作。

echo Love | airolib-ng gryffinbit --import essid -

hashcat工具

​ hashcat一款强大的开源密码恢复工具。该工具可以利用CPU或GPU资源,破解多种hash类型的密码。当捕获握手包以后,可以使用该工具快速的破解出WPA密码。使用hashcat工具破解WPA的语法格式如下:

hashcat  -m 2500 [pcap file ] [words] --force
选项 说明
-m 指定使用的hash类型,与WPA相关的hash如下图。
Words 指定要使用的字典。
–force 忽略警告信息。
hashcat –help 查看帮助文档。

1.使用aircrack-ng将捕获的握手包文件转换为hccapx格式。

aircrack-ng test-01.cap -j hashcattest 

2.使用hashcat工具进行破解。

hashcat -m 2500 hashcattest.hccapx /root/password.txt --force

评论