从此Wiki页面:
WPA和WPA2使用从EAPOL握手派生的密钥来加密流量。除非您要解密的会话存在所有四个握手数据包,否则Wireshark将无法解密流量。您可以使用显示过滤器eapol在捕获中定位EAPOL数据包。
我注意到解密也适用于(1、2、4),但不适用于(1、2、3)。据我所知,前两个数据包就足够了,至少对于单播流量而言。有人可以解释一下Wireshark的处理方式吗,换句话说,鉴于第四个数据包只是一个确认,为什么只使用前一个序列?另外,是否可以保证(1、2、3、4)工作时(1、2、4)总是工作?
测试用例
这是压缩的握手(1、2、4)和一个加密的ARP
数据包(SSID :SSID
,密码:)password
,其base64
编码为:
H4sICEarjU8AA2hhbmRzaGFrZS5jYXAAu3J400ImBhYGGPj / n4GhHkhfXNHr37KQgWEqAwQzMAgx 6HkAKbFWzgUMhxgZGDiYrjIwKGUqcW5g4Ldd3rcFQn5IXbWKGaiso4 + RmSH + H0MngwLUZMarj4Rn S8vInf5yfO7mgrMyr9g / Jpa9XVbRdaxH58v1fO3vDCQDkCNv7mFgWMsAwXBHMoEceQ3kSMZbDFDn ITk1gBnJkeX / GDkRjmyccfus4BKl75HC2cnW1eXrjExNf66uYz + VGLl + snrF7j2EnHQy3JjDKPb9 3fOd9zT0TmofYZC4K8YQ8IkR6JaAT0zIJMjxtWaMmCEMdvwNnI5PYEYJYSTHM5EegqhggYbFhgsJ 9gJXy42PMx9JzYKEcFkcG0MJULYE2ZEGrZwHIMnASwc1GSw4mmH1JCCNQYEF7C7tjasVT + 0 / J3LP gie59HFL + 5RDIdmZ8rGMEldN5s668eb / tp8vQ + 7OrT9jPj / B7425QIGJI3Pft72dLxav8BefvcGU 7 + kfABxJX + SjAgAA
解码:
$ base64 -d | gunzip > handshake.cap
运行tshark
以查看其是否正确解密了ARP
数据包:
$ tshark -r handshake.cap -o wlan.enable_decryption:TRUE -o wlan.wep_key1:wpa-pwd:password:SSID
它应该打印:
1 0.000000 D-Link_a7:8e:b4-> HonHaiPr_22:09:b0 EAPOL密钥 2 0.006997 HonHaiPr_22:09:b0-> D-Link_a7:8e:b4 EAPOL密钥 3 0.038137 HonHaiPr_22:09:b0-> D-Link_a7:8e:b4 EAPOL密钥 4 0.376050 ZyxelCom_68:3a:e4-> HonHaiPr_22:09:b0 ARP 192.168.1.1位于00:a0:c5:68:3a:e4