Bắt tay Wireshark WPA 4 chiều


13

Từ trang wiki này :

WPA và WPA2 sử dụng các khóa có nguồn gốc từ một cái bắt tay EAPOL để mã hóa lưu lượng. Trừ khi tất cả bốn gói bắt tay đều có mặt cho phiên bạn đang cố giải mã, Wireshark sẽ không thể giải mã lưu lượng. Bạn có thể sử dụng bộ lọc hiển thị eapol để xác định vị trí các gói EAPOL trong bản chụp của bạn.

Tôi cũng nhận thấy rằng việc giải mã cũng hoạt động với (1, 2, 4), nhưng không phải với (1, 2, 3). Theo như tôi biết thì hai gói đầu tiên là đủ, ít nhất là đối với những gì liên quan đến lưu lượng unicast. Ai đó có thể vui lòng giải thích chính xác làm thế nào để Wireshark đối phó với điều đó, nói cách khác tại sao chỉ có chuỗi cũ hoạt động, cho rằng gói thứ tư chỉ là một sự thừa nhận? Ngoài ra, có đảm bảo rằng (1, 2, 4) sẽ luôn hoạt động khi (1, 2, 3, 4) hoạt động không?

Trường hợp thử nghiệm

Đây là cái bắt tay được nén (1, 2, 4) và một ARPgói được mã hóa (SSID : SSID, password password:) trong base64mã hóa:

H4sICEarjU8AA2hhbmRzaGFrZS5jYXAAu3J400ImBhYGGPj / n4GhHkhfXNHr37KQgweqAwQzMAgx
6HkAKbFWzgUMhxgZGDiYrjIwKGUqcW5g4Ldd3rcFQn5IXbWKGaiso4 + RmSH + H0MngwLUZMarj4Rn
S8vInf5yfO7mgrMyr9g / Jpa9XVbRdaxH58v1fO3vDCQDkCNv7mFgWMsAwXBHMoEceQ3kSMZbDFDn
ITk1gBnJkeX / GDkRjmyccfus4BKl75HC2cnW1eXrjExNf66uYz + VGLl + snrF7j2EnHQy3JjDKPb9
3fOd9zT0TmofYZC4K8YQ8IkR6JaAT0zIJMjxtWaMmCEMdvwNnI5PYEYJYSTHM5EegqhggYbFhgsJ
9gJXy42PMx9JzYKEcFkcG0MJULYE2ZEGrZwHIMnASwc1GSw4mmH1JCCNQYEF7C7tjasVT + 0 / J3LP
gie59HFL + 5RDIdmZ8rGMEldN5s668eb / tp8vQ + 7OrT9jPj / B7425QIGJI3Pft72dLxav8BefvcGU
7 + kfABxJX + SjAgAA

Giải mã với:

$ base64 -d | gunzip > handshake.cap

Chạy tsharkđể xem nếu nó giải mã chính xác ARPgói:

$ tshark -r handshake.cap -o wlan.enable_decryption:TRUE -o wlan.wep_key1:wpa-pwd:password:SSID

Nó nên in:

  1 0,000000 D-Link_a7: 8e: b4 -> HonHaiPr_22: 09: b0 Khóa EAPOL
  2 0,006997 HonHaiPr_22: 09: b0 -> D-Link_a7: 8e: b4 Khóa EAPOL
  3 0,038137 HonHaiPr_22: 09: b0 -> D-Link_a7: 8e: b4 Khóa EAPOL
  4 0,376050 ZyxelCom_68: 3a: e4 -> HonHaiPr_22: 09: b0 ARP 192.168.1.1 nằm ở 00: a0: c5: 68: 3a: e4

Không thể .. nó phải được giải mã vì nó có tất cả bốn hoặc bạn được kết nối với mạng wifi và đó là giải mã các gói tin
Paul

Tôi (rõ ràng) đang nói về các gói được chụp ở chế độ RFMON.
cYrus

@Paul: Tôi đã chỉnh sửa câu hỏi; bạn có thể trả lời không?
cYrus

Tôi ước tôi có thể. Nếu bạn tuân theo trình tự EAPOL, máy khách có PTK chỉ sau gói đầu tiên (anonce được thông qua). AP biết PTK sau gói thứ hai (snonce). Nếu bạn quan sát hai cái này và biết MAC, tất nhiên là bạn làm và ssid + psk, thì đây sẽ là tất cả những gì bạn cần. Gói thứ ba chỉ là GTK để phát sóng và phát đa hướng, và gói thứ tư chỉ là một ACK. Nếu bạn đang giải mã unicast (mà arp-reply là) thì hai gói đầu tiên là đủ. Tôi không thể không nghĩ rằng tôi đang thiếu một cái gì đó vì mọi thứ nói rằng bạn cần cả bốn.
Paul

Bạn có nhận được thêm với điều này?
Paul

Câu trả lời:


1

Trao đổi EAPOL cũng được sử dụng để làm mới các khóa tạm thời. Các khóa mới được cài đặt trên Cung cấp sau khi gửi 4/4 và được cài đặt trên Trình xác thực khi nhận được 4/4 [1]. Nếu Wireshark phải xử lý rekeying chính xác, nó chỉ phải sử dụng các phím sau khi đọc gói 4/4 trong khung, bởi vì các gói vẫn có thể chảy trong quá trình rekeying (ngay cả trong trường hợp không nên, vì đệm)

Đối với 4WHS đầu tiên, không thể chờ 4/4 là có thể, nhưng hoàn toàn dễ hiểu khi họ chỉ lười biếng thực hiện nó. 3/4 vẫn cần thiết vì nó chứa các khóa nhóm (ngay cả khi bạn không quan tâm đến chúng, nhưng biết rằng bạn sẽ không thấy các yêu cầu ARP từ AP hoặc máy khách mà bạn không có phần nào trong 4WHS của nó) và các khóa quản lý. Bạn cũng có thể bỏ qua 3/4, nhưng sau đó bạn không có xác nhận rằng việc trao đổi đã thành công, vì 3/4 được sử dụng để xác minh rằng Trình xác thực biết PMK.

[1] Lưu ý rằng với sơ đồ hiện tại, nếu tin nhắn 4/4 bị mất, thì người thay thế bắt đầu sử dụng khóa mới và trình xác thực vẫn sử dụng khóa cũ và gửi lại 3/4 được mã hóa bằng khóa cũ sẽ không giúp ích gì . Vấn đề này, trong số nhiều vấn đề khác với WPA2, được giải quyết trong tiêu chuẩn 802.11 2012 mới nhất bằng cách giữ hai khóa song song.


1

Tất cả thông tin cần thiết để xây dựng PTK được trao đổi trong bước 1 và 2. Điều này đủ để giải mã lưu lượng unicast.

Nếu không có bước 3, bạn sẽ không có GTK, vì vậy việc giải mã phát đa hướng / phát sóng là không thể.

Bước 4 không thực sự cần thiết để giải mã lưu lượng truy cập, nhưng nếu không có bước 4, máy khách / AP sẽ không bắt đầu sử dụng mã hóa. Wireshark có thể tắt khóa này trước khi nó cố gắng giải mã dữ liệu.


0

Chà, rõ ràng là tài liệu của WireShark là sai. :-)

Đi ra khỏi tài liệu ở đây :

  • Sau EAPOL 1 và 2, cả hai bên đều biết khóa tạm thời sẽ được sử dụng để giải mã lưu lượng.
  • Thông điệp thứ ba là bằng chứng cho thấy cả hai bên đều biết khóa tạm thời và cho biết Trình xác thực (trạm gốc) đã sẵn sàng để bắt đầu sử dụng khóa tạm thời.
  • Thông báo thứ tư kích hoạt chuyển đổi từ PMK được thiết lập trước EAPOL sang khóa tạm thời xuất phát trong EAPOL

Vì vậy, với điều đó, nó có ý nghĩa. WireShark không cần tin nhắn 3 cho bất cứ điều gì. Nó biết các khóa sau tin nhắn 1 và 2, nhưng nó chờ để bắt đầu sử dụng chúng để giải mã lưu lượng cho đến khi nhận được tin nhắn 4.

Không có gì đảm bảo cho mọi thứ trong cuộc sống, đặc biệt là hoạt động của phần mềm miễn phí, nhưng đặt cược hợp lý rằng sẽ không có yêu cầu nào về thông báo 3 phải có mặt để WireShark giải mã phiên.


Dường như với tôi rằng gói 4 không cần thiết hoặc là đúng - nó chỉ được thiết kế để chờ đợi.
Paul

@Paul, kiểu như nói "tiếp tục" là không cần thiết sau khi "tạm dừng".
Old Pro

@OldPro, tôi không chắc chắn rằng chờ 4 ° là một ý tưởng hay, các gói được chụp có xu hướng bị mất đặc biệt là khi chúng di chuyển trong không khí.
cYrus

@cYrus, chờ 4 là điều cần thiết, vì các khóa mã hóa phải được thay đổi đồng thời ở cả hai bên. Nếu khách hàng không nhận được 4, thì không biết rằng cơ sở đã nhận được 3. Nếu khách hàng không nhận được 4, họ sẽ gửi lại 3 lần nữa (kích hoạt gửi lại 4) cho đến khi nhận được 4 hoặc từ bỏ thử để tạo kết nối.
Old Pro

@OldPro: Tôi không nói về giao thức. Cả hai bên có thể nhận được tất cả các gói, nhưng chúng có thể bị rơi hoặc không bị bắt bởi thực thể bắt lưu lượng truy cập một cách thụ động.
cYrus

0

Điều này không giải thích tại sao, nhưng dù sao trích dẫn từ tài liệu airdecap-ng ,

WPA/WPA2 Requirements

The capture file must contain a valid four-way handshake. For this purpose having (packets 2 and 3) or (packets 3 and 4) will work correctly. In fact, you don't truly need all four handshake packets. 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.