Wi-Fi抓包解密
简介:Wi-Fi抓包一般使用Omnipeek+专门的抓包网卡,或者wireshark+monitor网卡,有钱人可以选择eillsys (狗头)
本章主要介绍wireshark解密报文,当然我们需要Wi-Fi密码才能解密(狗头)。
wep
古老的wep,密码填错了我们甚至能连上(狗头)。wep密钥为5个十六进制数或5个ASCII码
解码办法:
- wireshark中 编辑 -> 首选项 -> IEEE 802.11 -> Decryption keys(Edit…)。
- 点加号添加一个密钥
- key type选择wep
- key 按照格式填写如31:32:33:34:35(十六进制),对应的密钥字符串为"12345"
wpa/wpa2
目前主流的加密方式,几乎所有Wi-Fi设备都支持。但是比较老,目前wpa/wpa2都不太安全了,存在一些已知的漏洞。
解码办法:
- wireshark中 编辑 -> 首选项 -> IEEE 802.11 -> Decryption keys(Edit…)。
- 空口抓包要将四次握手都抓到,EAPOL1/2/3/4
- key-type选择wpa_pwd
- key按照格式填写,如12345678:XiaoMi。其中"12345678"为密码,XiaoMi为Wi_Fi名字(bssid)
WAP3
比较新的加密方式,即使我们拥有正确的密钥,完整的四次握手加密报文也无法解密。但这也不意味着他它绝对安全(狗头)。
解码办法:
- wireshark中 编辑 -> 首选项 -> IEEE 802.11 -> Decryption keys(Edit…)。
- wpa3比较特殊,不仅需要四次握手抓全,还需要PMK才能解密。PMK一般是wpa_supplicant生成的,因此PMK可以从wpa_supplicant日志中获取,加上-d -K参数运行wpa_supplicant,日志中就会携带PMK。否则密钥不会打印。
以安卓为例,执行方法如下:
/vendor/bin/hw/wpa_supplicant -i wlan0 -c /data/ wpa_supplicant.conf -d -K -B
(wpa_supplicant是什么?wpa_supplicant.conf怎么填写?请自行百度,我未来可能会介绍(狗头)。) - 然后在安卓中可以通过 logcat -s "wpa_supplicant"收集wpa_supplicant的日志。在里面找到下面这句话:
wpa_supplicant: WPA: PMK - hexdump(len=32): a3 5b 19 ef 15 1a a4 e0 8e 4b 78 d2 86 d7 b2 4a f5 50 70 24 2f 8a b1 4f 20 f5 48 e4 b9 a7 ae 7a
其中这串数字就是我们想要的PMK。 - key type选择wpa-psk。
- 将PMK之间的空格删除,填到key中。
参考文档链接:
https://www.wireshark.org/docs/wsug_html_chunked/Ch80211Keys.html