Wireshark WPA จับมือ 4 ทิศทาง


13

จากหน้าวิกินี้ :

WPA และ WPA2 ใช้คีย์ที่ได้รับจากการจับมือ EAPOL เพื่อเข้ารหัสการรับส่งข้อมูล ยกเว้นว่าแพ็กเก็ตจับมือทั้งสี่นั้นมีอยู่สำหรับเซสชันที่คุณกำลังพยายามถอดรหัส Wireshark จะไม่สามารถถอดรหัสการรับส่งข้อมูลได้ คุณสามารถใช้ตัวกรองการแสดงผล eapol เพื่อค้นหาแพ็กเก็ต EAPOL ในการจับภาพของคุณ

ฉันสังเกตเห็นว่าการถอดรหัสนั้นใช้ได้กับ (1, 2, 4) ด้วย แต่ไม่ใช่กับ (1, 2, 3) เท่าที่ฉันรู้สองแพ็กเก็ตแรกนั้นเพียงพออย่างน้อยสำหรับสิ่งที่เกี่ยวข้องกับการรับส่งข้อมูลแบบ unicast ใครช่วยอธิบายได้อย่างชัดเจนว่า 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 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 อยู่ที่ 00: a0: c5: 68: 3a: e4

ไม่สามารถ .. ต้องถอดรหัสเพราะมันมีทั้งสี่อย่างหรือคุณเชื่อมต่อกับเครือข่าย wifi และนั่นเป็นการถอดรหัสแพ็กเก็ต
Paul

ฉันกำลังพูดถึงแพ็กเก็ตที่ถ่ายในโหมด RFMON
cYrus

@ พอล: ฉันได้แก้ไขคำถาม; คุณตอบได้ไหม
cYrus

ผมอยากจะทำได้. หากคุณทำตามลำดับ EAPOL ไคลเอนต์จะมี PTK หลังจากที่มีเพียงแพ็กเก็ตแรกเท่านั้น (ผ่าน anonce) AP รู้ PTK หลังจากแพ็กเก็ตที่สอง (snonce) หากคุณสังเกตเห็นทั้งสองนี้และรู้ว่า MACs ใดที่คุณทำและ ssid + psk สิ่งนี้ควรเป็นสิ่งที่คุณต้องการ แพ็คเก็ตที่สามเป็นเพียง GTK สำหรับการออกอากาศและมัลติคาสต์และที่สี่เป็นเพียง ACK หากคุณกำลังถอดรหัส unicast (ซึ่งเป็น arp-reply) แพ็กเก็ตสองอันแรกควรจะเพียงพอ ฉันอดไม่ได้ที่จะคิดว่าฉันขาดอะไรไปเพราะทุกอย่างบอกว่าคุณต้องการทั้งสี่อย่าง
พอล

คุณได้อะไรเพิ่มเติมจากเรื่องนี้หรือไม่?
พอล

คำตอบ:


1

การแลกเปลี่ยน EAPOL ยังใช้เพื่อต่ออายุคีย์ชั่วคราว คีย์ใหม่ถูกติดตั้งบน Supplicant หลังจากส่ง 4/4 และติดตั้งบน Authenticator เมื่อได้รับ 4/4 [1] หาก Wireshark ต้องจัดการการ rekeying อย่างถูกต้องจะต้องใช้คีย์หลังจากอ่านแพ็กเก็ต 4/4 ในเฟรมเนื่องจากแพ็กเก็ตอาจยังคงไหลในระหว่างการ rekeying (แม้ในกรณีที่พวกเขาไม่ควรเพราะบัฟเฟอร์)

สำหรับ 4WHS แรกการไม่รอ 4/4 เป็นไปได้ แต่เป็นที่เข้าใจได้อย่างสมบูรณ์ว่าพวกเขาขี้เกียจที่จะใช้งาน 3/4 ยังมีความจำเป็นเนื่องจากมีคีย์กลุ่ม (แม้ว่าคุณจะไม่สนใจ แต่ก็รู้ว่าคุณจะไม่เห็นคำขอ ARP จาก AP หรือไคลเอนต์ที่คุณไม่มีส่วน 4WHS) และคีย์การจัดการ คุณอาจข้าม 3/4 ได้เช่นกัน แต่จากนั้นคุณไม่มีการยืนยันว่าการแลกเปลี่ยนนั้นประสบความสำเร็จเพราะ 3/4 ถูกใช้เพื่อตรวจสอบว่า Authenticator รู้จัก PMK

[1] โปรดทราบว่าด้วยรูปแบบปัจจุบันหากข้อความ 4/4 หายไปผู้ร้องขอเริ่มใช้คีย์ใหม่และผู้รับรองความถูกต้องยังคงใช้คีย์เก่าและการส่งรหัส 3/4 ที่เข้ารหัสด้วยคีย์เก่าจะไม่ช่วยได้ . ปัญหานี้ในหมู่คนอื่น ๆ ที่มี WPA2 ได้รับการแก้ไขในมาตรฐาน 802.11 2012 ล่าสุดด้วยการรักษาสองปุ่มให้ขนานกัน


1

ข้อมูลทั้งหมดที่จำเป็นในการสร้าง PTK มีการแลกเปลี่ยนในขั้นตอนที่ 1 และ 2 ซึ่งควรจะเพียงพอที่จะถอดรหัสการรับส่งข้อมูลแบบ unicast

หากไม่มีขั้นตอนที่ 3 คุณจะไม่มี GTK ดังนั้นการถอดรหัสมัลติคาสต์ / การออกอากาศจึงเป็นไปไม่ได้

ขั้นตอนที่ 4 ไม่จำเป็นต้องถอดรหัสการรับส่งข้อมูล แต่ถ้าไม่มีขั้นตอนที่ 4 ไคลเอ็นต์ / AP จะไม่เริ่มใช้การเข้ารหัส Wireshark อาจปิดการใช้งานสิ่งนี้ก่อนที่จะพยายามถอดรหัสข้อมูลเช่นกัน


0

เห็นได้ชัดว่าเอกสาร WireShark นั้นผิด :-)

ออกจากเอกสารที่นี่ :

  • หลังจาก EAPOL 1 และ 2 ทั้งสองฝ่ายรู้รหัสชั่วคราวที่จะใช้ในการถอดรหัสการรับส่งข้อมูล
  • ข้อความที่สามเป็นข้อพิสูจน์ว่าทั้งสองฝ่ายรู้รหัสชั่วคราวและบ่งชี้ว่าผู้รับรองความถูกต้อง (สถานีฐาน) พร้อมที่จะเริ่มใช้รหัสชั่วคราว
  • ข้อความที่สี่เรียกใช้สวิตช์จาก PMK ที่ตั้งค่าไว้ก่อน EAPOL ไปยังคีย์ชั่วคราวที่ได้รับใน EAPOL

ด้วยเหตุนี้มันจึงสมเหตุสมผล WireShark ไม่ต้องการข้อความ 3 เพื่ออะไร มันรู้คีย์หลังจากข้อความที่ 1 และ 2 แต่มันรอที่จะเริ่มใช้มันเพื่อถอดรหัสทราฟฟิกจนกระทั่งหลังจากที่มันได้รับข้อความ 4

ไม่มีการรับประกันใด ๆ ในชีวิตโดยเฉพาะอย่างยิ่งพฤติกรรมของซอฟต์แวร์ฟรี แต่เป็นการเดิมพันที่สมเหตุสมผลที่จะไม่มีข้อกำหนดสำหรับข้อความ 3 ที่จะนำเสนอสำหรับ WireShark เพื่อถอดรหัสเซสชัน


ดูเหมือนว่าสำหรับฉันแพ็กเก็ต 4 ไม่จำเป็นเช่นกัน - มันออกแบบมาเพื่อรอ
พอล

@ พอลนั่นก็เหมือนกับการพูดว่า "ดำเนินการต่อ" ไม่จำเป็นหลังจาก "หยุด"
โปรเก่า

@OldPro ฉันไม่แน่ใจว่าการรอ 4 °เป็นความคิดที่ดีแพ็กเก็ตที่จับมักจะหายไปโดยเฉพาะเมื่อพวกเขาเดินทางผ่านอากาศ
cYrus

@ cYrus การรอ 4 เป็นสิ่งจำเป็นเนื่องจากต้องเปลี่ยนคีย์การเข้ารหัสพร้อมกันทั้งสองด้าน หากลูกค้าไม่ได้รับ 4 ก็ไม่ทราบว่าฐานที่ได้รับ 3 หากลูกค้าไม่ได้รับ 4 ก็จะส่ง 3 อีกครั้ง (ซึ่งก่อให้เกิดการส่งครั้งที่ 4) จนกว่าจะได้รับ 4 หรือให้ขึ้นพยายาม เพื่อสร้างการเชื่อมต่อ
โปรเก่า

@OldPro: ฉันไม่ได้พูดถึงโปรโตคอล ทั้งสองฝ่ายสามารถรับแพ็คเก็ตทั้งหมด แต่พวกเขาอาจถูกทิ้งหรือไม่ถูกจับโดยเอนทิตีที่คอยรับส่งข้อมูล
cYrus

0

นี้ไม่ได้อธิบายว่าทำไม แต่อ้างจาก airdecap-ng เอกสาร anyways,

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. 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.