破解WPA,你真的准备好了吗(二)

六月 13, 2011

一:实验

在四次握手的过程中,哪次握手最重要?

用 Beini 下的 FeedingBottle 抓到的含有 WPA 握手信息的 CAP 包:targetap_wpa-01_ok.cap 。

用 Wireshark 编辑生成下列 CAP 包,并用 Elcomsoft Wireless Security Auditor (EWSA)2.12 和 Aircrack-ng 1.1 分别使用包含正确密码的字典进行测试,结果如下:

fourway-handshake.pcap —— 仅含握手信息的 cap 包(含Beacon frame,下同) ->成功

fourway-handshake-missing-1-item.pcap —— 丢失第1次握手信息的 cap 包 ->成功

fourway-handshake-missing-3-item.pcap —— 丢失第3次握手信息的 cap 包 ->成功

fourway-handshake-missing-4-item.pcap —— 丢失第4次握手信息的 cap 包 ->成功

fourway-handshake-missing-2-item.pcap —— 丢失第2次握手信息的 cap 包 ->失败

fourway-handshake-only-2-item.pcap —— 仅含第2次握手信息的 cap 包 ->失败

fourway-handshake-only-1-2-item.pcap —— 包含第1、2次握手信息的 cap 包 ->成功

fourway-handshake-only-3-2-item.pcap —— 包含第3、2次握手信息的 cap 包 ->成功

fourway-handshake-only-4-2-item.pcap —— 包含第4、2次握手信息的 cap 包 ->失败

另外:targetap_wpa-01_ok.cap —— 原始 cap 包 -> 成功

图1:fourway-handshake.pcap —— 仅含握手信息的 cap 包(含Beacon frame)

 

结论1:第2次握手信息相对来说比较重要,与第1次或第3次握手信息结合时才能破解密码。

附1:EWSA 的输出信息

图2

附2:EWSA 打开上述包时的提示信息

targetap_wpa-01_ok.cap

提示:–>

Some handshakes may be missing because the file is corrupted.

fourway-handshake.pcap

fourway-handshake-missing-1/3/4-item.pcap

fourway-handshake-only-1-2-item.pcap

fourway-handshake-only-3-2-item.pcap

提示:–>

At least one handshake you selected contains no information about password validity. This means that the recovered password may not be valid for wireless network. Continue anyway?

fourway-handshake-missing-2-item.pcap

fourway-handshake-only-2-item.pcap

fourway-handshake-only-4-2-item.pcap

提示:–>

No handshakes have been found in the given file.

结合结论1:

EWSA 提示:”No handshakes have been found in the given file.” ,

Aircrack-ng 提示:”No valid WPA handshakes found.”

此时破解工作无法进行。

图3:No handshakes have been found in the given file.

 

图4:No valid WPA handshakes found.

 

二:理论知识

穷举法破解 WPA ,主要涉及到以下两个计算方法,当然,这也是 WPA 进行身份验证的方法:

1:PMK(PSK) <- pdkdf2_SHA1(passphrase, SSID)

2:PTK <- PRF-X(PMK, “Pairwise key expansion”, AA, SA, ANonce, SNonce)

下面这张图5,简要地描述了四次握手的过程并注明了哪些信息是穷举法破解 WPA 所必须的。

 

四次握手过程的简要描述:

1:无线接入点 AP 向客户端 STA 发送随机数 ANonce。

2:STA 收到 ANonce 后,选择一个随机数 SNonce ,利用 WPA 密码(passphrase)和 AP 的 SSID 计算得出 PMK(PSK),用 PRF-X 函数计算得出 PTK ,并使用 PTK 的前 16 bytes 和发往 AP 的信息计算出 MIC 认证值。将 SNonce 和 MIC 发送至 AP。

3:AP 收到来自 STA 的信息,用上面相同的方法计算出 MIC ,对 STA 生成的 MIC 进行校验,如果匹配,发送 ANonce 和其他信息。

4:装载 PTK 。

从上面的描述可以看出, WPA 的认证实际上可以说是对 MIC 的认证。 MIC 由 PTK 产生,计算 PTK 需要: ANonce 、 SNonce 、客户端 STA 的 Mac 地址 SA 、无线接入点 AP 的 Mac 地址 AA 、以及 PMK 。而 PMK 由 SSID 和 WPA 密码 (passphrase) 计算得出。假如我们知道了 passphrase ,而握手过程又是由合法的 STA 产生的,那么只要获得第1和第2次握手的信息,就已经能计算出 MIC 的值。这里要注意:是我们假如知道了 passphrase !

如果我们要使用穷举法破解 WPA ,用通俗易懂的说法描述,就是:

1:从字典中取出一条密码 passphrase ,配合 AP 的 SSID,计算得出 PMK(PSK) ,可以使用 wpa_passphrase 命令生成,其结果将参与 PTK 的计算。有一点要说明,PMK(PSK) 说白了也就是 WPA 的密码,她不会出现在身份认证的网络传输过程中,PMK(PSK) 信息保存在认证双方的系统内部,否则,直接截取该信息,穷举就得了。见下图6:

2:截获客户端 STA 的 Mac 地址,无线接入点 AP 的 Mac 地址, AP 发往 STA 的随机数 ANonce , STA 发往 AP 随机数 SNonce ,配合上一步骤得到的 PMK(PSK) ,用这些参数生成 PTK 。

3:用上一步骤得到的 PTK 的前 16 bytes 计算出 MIC 值,用该值与第2次握手中 STA 发往 AP 的信息中的 MIC 值进行比较,如果一致,则证明步骤1取出的密码 passphrase  即为 WPA 的真实密码 PMK(PSK) 。

4:现在流行的用 Hash 表快速破解的方法,实际上就是用指定的 SSID 和字典文件配合,生成字典内各个密码对应的 PMK(PSK) 。如果 SSID 具有通用性,那么生成的 Hash 表还可以分享给他人使用,否则无实用价值,因为 PMK(PSK) 是 SSID 和密码计算得出的。如果有了与破解目标 SSID 相应的 Hash 表,在破解的过程中可以免去计算 PMK(PSK) 的过程,从而达到节省破解时间的目的。见下图7:

图6:wpa_passphrase 命令生成 PMK(PSK)

 

图7:Hash 表的相关测试

 

对 EWSA 2.12 和 Aircrack-ng 这两款工具来说:

1:验证密码正确与否的关键是 MIC 信息,源自第2次握手,故:第2次握手信息丢失时,程序将无法进行破解工作。相应的,如果第2次握手信息是由非合法 STA 产生的,那么破解出来的密码也是非合法的密码,将不能使用,因为错误的密码会产生错误的 MIC 信息。虽然 coWPAtty 4.6 判断的是第4次握手中的 MIC 信息,比较严谨,但实际上效果并不好,大家可能发现过这个问题:有些握手包用 EWSA 和 Aircrack-ng 都能破解出来,但使用 coWPAtty 却不行,原因就在于此。但可以使用 “-2” 参数修改成对第2次握手中的 MIC 信息进行判断。

2:AP 发往 STA 的随机数 ANonce 可由第1、3次握手中获得,但 STA 发往 AP 随机数 SNonce 只能在第2次握手中出现。所以,当第1次或第3次握手信息丢失后,仍然可以使用第2次握手的信息配合第3次或第1次握手产生的信息破解密码。但当第1次和第3次握手同时丢失后,由于缺少 ANonce 信息,所以破解工作将不能继续。同样,如果第2次握手的信息丢失,由于缺少 SNonce 信息,破解工作也将不能继续。

3:由于第2次握手是 STA 发往 AP 的信息,包含两个重要的信息: MIC 和 SNonce 。故:作为处在混杂模式的网卡来说,AP 和 STA 的有效工作距离要弄清楚,没准儿你距离 STA 非常远——你的位置恰恰处于能接收到 AP 的信号,但不能接收到 STA 的信号,此时将无法获得 MIC 和 SNonce 信息,这就是为什么能获取到很多由 AP 产生的 IVs ,可死活获取不到握手信息的原因之一,此乃地利。当然,握手信息的截取是在 STA 和 AP 建立认证的过程中产生的,时机也很重要,此乃天时。

总之,第2次握手信息相对来说很重要!

转自:

赵春生 的博客:

http://blog.163.com/prince_vegeta

http://blog.csdn.net/prince_vegeta

08:58 2010-07-14 修

22:46 2010-06-25 修

08:55 2010-06-12 修

20:43 2010-06-10

Tags: , , , ,
Posted in 无线安全 by Anonymous

Follow comments via the RSS Feed | Leave a comment | Trackback URL

Leave a comment
2 Comments.

Leave a Reply


[ Ctrl + Enter ]

 
Copyright © 2017 WiFi~BETA | Powered by WordPress  | Theme designed by Evlos  | 本站法律顾问:ITLAW-庄毅雄 | 知识共享许可协议 |