WPA и WPA2 используют ключи, полученные из рукопожатия EAPOL, для шифрования трафика. Если для сеанса, который вы пытаетесь расшифровать, присутствуют все четыре пакета квитирования, Wireshark не сможет расшифровать трафик. Вы можете использовать фильтр отображения EAPOL, чтобы найти пакеты EAPOL в вашем захвате.
Я заметил, что расшифровка работает также с (1, 2, 4), но не с (1, 2, 3). Насколько я знаю, первых двух пакетов достаточно, по крайней мере, для одноадресного трафика. Может кто-нибудь объяснить, как именно Wireshark справляется с этим, другими словами, почему работает только предыдущая последовательность, учитывая, что четвертый пакет является просто подтверждением? Кроме того, гарантируется ли, что (1, 2, 4) всегда будет работать, когда (1, 2, 3, 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 Key 2 0.006997 HonHaiPr_22:09:b0 -> D-Link_a7:8e:b4 EAPOL Key 3 0.038137 HonHaiPr_22:09:b0 -> D-Link_a7:8e:b4 EAPOL Key 4 0.376050 ZyxelCom_68:3a:e4 -> HonHaiPr_22:09:b0 ARP 192.168.1.1 is at 00:a0:c5:68:3a:e4