WPA та WPA2 використовують ключі, отримані від рукостискання EAPOL для шифрування трафіку. Якщо всі чотири пакети рукостискання не будуть присутні для сеансу, який ви намагаєтесь розшифрувати, Wireshark не зможе розшифрувати трафік. Ви можете використовувати фільтр дисплея eapol, щоб знайти пакети EAPOL у вашому захопленні.
Я помітив, що дешифрування працює і з (1, 2, 4), але не з (1, 2, 3). Наскільки я знаю, перших двох пакетів достатньо, принаймні для того, що стосується одноразового трафіку. Може хтось, будь ласка, пояснить, як саме Wireshark справляється з цим, іншими словами, чому працює лише колишня послідовність, враховуючи, що четвертий пакет - це лише підтвердження? Також, чи гарантується, що (1, 2, 4) завжди працюватиме, коли (1, 2, 3, 4) працює?
Тестовий випадок
Це gzipped рукостискання (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