บทความนี้แนะนำเครื่องมือจับแพ็คเก็ตที่มีประโยชน์อีกอย่างหนึ่ง Wireshark ใช้เพื่อรับแพ็คเก็ตข้อมูลเครือข่ายรวมถึง HTTP, TCP, UDP และแพ็คเก็ตโปรโตคอลเครือข่ายอื่น ๆ
ฉันจำได้ว่าฉันได้เรียนรู้โปรโตคอลการจับมือกันสามครั้ง TCP เมื่อฉันอยู่ในวิทยาลัย ในเวลานั้นฉันเพิ่งรู้ว่าแม้ว่าฉันจะได้อ่านวัสดุ TCP และ UDP จำนวนมากในหนังสือ แต่ฉันไม่เคยเห็นแพ็คเก็ตข้อมูลเหล่านี้เลย ฉันมักจะรู้สึกเหมือนฉันลอยอยู่บนคลาวด์และฉันไม่ได้เรียนรู้อย่างต่อเนื่อง ด้วย Wireshark แพ็คเก็ตเครือข่ายเหล่านี้สามารถสกัดกั้นและแต่ละฟิลด์ในแพ็คเก็ตสามารถมองเห็นได้อย่างชัดเจน มันสามารถทำให้เราเข้าใจโปรโตคอลเครือข่ายได้ลึกซึ้งยิ่งขึ้น
สำหรับฉัน Wireshark เป็นเครื่องมือที่ดีที่สุดในการเรียนรู้โปรโตคอลเครือข่าย
การอ่านเนื้อหา
บทนำสู่ Wireshark
เว็บไซต์ดาวน์โหลดอย่างเป็นทางการของ Wireshark: http://www.wireshark.org/
Wireshark เป็นซอฟต์แวร์การวิเคราะห์แพ็คเก็ตเครือข่ายยอดนิยมที่มีฟังก์ชั่นที่ทรงพลังมาก สามารถสกัดแพ็คเก็ตเครือข่ายต่างๆและข้อมูลโดยละเอียดของแพ็คเก็ตเครือข่ายได้
Wireshark เป็นซอฟต์แวร์โอเพ่นซอร์สที่สามารถใช้งานได้อย่างมั่นใจ สามารถทำงานบน Windows และ Mac OS
ผู้ที่ใช้ Wireshark ต้องเข้าใจโปรโตคอลเครือข่ายมิฉะนั้นพวกเขาจะไม่เข้าใจ Wireshark
สิ่งที่ Wireshark ทำไม่ได้
ด้วยเหตุผลด้านความปลอดภัย Wireshark สามารถดูแพ็กเก็ตเท่านั้น แต่ไม่สามารถแก้ไขเนื้อหาของแพ็กเก็ตหรือส่งแพ็กเก็ตได้
Wireshark vs Fiddler
Fiddler เป็นโปรแกรมที่ทำงานบน Windows โดยเฉพาะที่ใช้ในการจับ HTTP และ HTTPS
Wireshark สามารถรับ HTTP และ HTTPS ได้ แต่ไม่สามารถถอดรหัส HTTPS ได้ดังนั้น Wireshark จึงไม่สามารถเข้าใจเนื้อหาใน HTTPS ได้
โดยสรุปหากคุณใช้ HTTP, HTTPS หรือ Fiddler โปรโตคอลอื่น ๆ เช่น TCP และ UDP ให้ใช้ Wireshark
เครื่องมืออื่น ๆ ในประเภทเดียวกัน
จอภาพเครือข่ายของ Microsoft
ดมกลิ่น
ใครจะใช้ Wireshark
1. ผู้ดูแลระบบเครือข่ายจะใช้ Wireshark เพื่อตรวจสอบปัญหาเครือข่าย
2. วิศวกรการทดสอบซอฟต์แวร์ใช้ Wireshark เพื่อจับแพ็กเก็ตเพื่อวิเคราะห์ซอฟต์แวร์ที่ทดสอบแล้ว
3. วิศวกรที่มีส่วนร่วมในการเขียนโปรแกรมซ็อกเก็ตจะใช้ Wireshark ในการดีบัก
4. ฉันได้ยินมาว่าวิศวกรส่วนใหญ่ที่ Huawei และ ZTE ใช้ Wireshark
ในระยะสั้น Wireshark อาจใช้สำหรับสิ่งที่เกี่ยวข้องกับอินเทอร์เน็ต
Wireshark เริ่มคว้า
เริ่มอินเตอร์เฟส
Wireshark เป็นแพ็คเกจเครือข่ายที่จับการ์ดเครือข่ายบางตัวบนเครื่อง เมื่อมีการ์ดเครือข่ายหลายใบบนเครื่องของคุณคุณต้องเลือกการ์ดเครือข่าย
คลิก caputre-> อินเตอร์เฟส .. กล่องโต้ตอบต่อไปนี้จะปรากฏขึ้นและเลือกการ์ดเครือข่ายที่ถูกต้อง จากนั้นคลิกปุ่ม "เริ่ม" เพื่อเริ่มคว้า
การแนะนำหน้าต่าง Wireshark
Wireshark ส่วนใหญ่แบ่งออกเป็นอินเทอร์เฟซเหล่านี้
1. ตัวกรองแสดงผลที่ใช้สำหรับการกรอง
2. บานหน้าต่างรายการแพ็คเก็ต (รายการแพ็คเก็ต) แสดงแพ็กเก็ตที่จับที่อยู่ที่ใช้งานอยู่และที่อยู่ปลายทางและหมายเลขพอร์ต สีที่แตกต่างกันแสดง
3. บานหน้าต่างรายละเอียดแพ็คเก็ต (รายละเอียดแพ็คเก็ต), การแสดงฟิลด์ในแพ็คเก็ต
4. บานหน้าต่าง dissector (ข้อมูลเลขฐานสิบหก)
5. MISCELLANOUS (แถบที่อยู่เบ็ดเตล็ด)
การกรองการแสดงผล Wireshark
การใช้การกรองเป็นสิ่งสำคัญมาก เมื่อผู้เริ่มต้นใช้ Wireshark พวกเขาจะได้รับข้อมูลซ้ำซ้อนจำนวนมากซึ่งยากที่จะหาส่วนที่พวกเขาต้องการในบันทึกหลายพันหรือนับหมื่น มันทำให้ฉันเวียนหัว
ตัวกรองจะช่วยให้เราค้นหาข้อมูลที่เราต้องการได้อย่างรวดเร็วในข้อมูลจำนวนมาก
มีตัวกรองสองประเภท
หนึ่งคือตัวกรองการแสดงผลซึ่งเป็นตัวกรองในอินเทอร์เฟซหลักที่ใช้เพื่อค้นหาระเบียนที่ต้องการในบันทึกที่จับได้
หนึ่งคือตัวกรองการจับภาพซึ่งใช้ในการกรองแพ็คเก็ตที่จับได้เพื่อหลีกเลี่ยงการจับบันทึกมากเกินไป การตั้งค่าใน Capture -> ตัวกรองจับภาพ
บันทึกตัวกรอง
ในคอลัมน์ตัวกรองหลังจากกรอกนิพจน์ตัวกรองให้คลิกปุ่มบันทึกและตั้งชื่อ ตัวอย่างเช่น "ตัวกรอง 102"
มีปุ่ม "ตัวกรอง 102" เพิ่มเติมบนแถบตัวกรอง
กฎสำหรับการกรองนิพจน์
กฎการแสดงออก
1. การกรองโปรโตคอล
ตัวอย่างเช่น TCP แสดงเฉพาะโปรโตคอล TCP
2. การกรอง IP
ตัวอย่างเช่น ip.src == 192.168.1.102 แสดงให้เห็นว่าที่อยู่แหล่งที่มาคือ 192.168.1.102
IP.DST == 192.168.1.102 ที่อยู่เป้าหมายคือ 192.168.1.102
3. การกรองพอร์ต
tcp.port == 80, พอร์ต 80
tcp.srcport == 80 แสดงเฉพาะว่าพอร์ตความปรารถนาของโปรโตคอล TCP คือ 80
4. การกรองโหมด HTTP
http.request.method == "Get" เพียงแสดงเมธอด HTTP GET เท่านั้น
5. ตัวดำเนินการเชิงตรรกะคือและ/หรือ
นิพจน์ตัวกรองที่ใช้กันทั่วไป
| นิพจน์ตัวกรอง | ใช้ |
| http | ดูเฉพาะบันทึกโปรโตคอล HTTP |
| ip.src == 192.168.1.102 หรือ ip.dst == 192.168.1.102 | ที่อยู่ต้นทางหรือที่อยู่ปลายทางคือ 192.168.1.102 |
บานหน้าต่างรายการแพ็คเก็ต
รายการแพ็คเกจแสดงหมายเลขการประทับเวลาที่อยู่ต้นทางที่อยู่ปลายทางโปรโตคอลความยาวและข้อมูลแพ็คเก็ตในพาเนล คุณจะเห็นว่าโปรโตคอลต่าง ๆ จะแสดงในสีที่แตกต่างกัน
นอกจากนี้คุณยังสามารถแก้ไขกฎการแสดงผลสีมุมมอง -> กฎการระบายสี
บานหน้าต่างรายละเอียดแพ็คเก็ต
แผงนี้เป็นสิ่งที่สำคัญที่สุดของเราในการดูทุกฟิลด์ในโปรโตคอล
ข้อมูลในแต่ละบรรทัดคือ
เฟรม: ภาพรวมของเฟรมข้อมูลสำหรับเลเยอร์ทางกายภาพ
Ethernet II: Data Link Layer Ethernet Frame Header ข้อมูลส่วนหัว
Internet Protocol เวอร์ชัน 4: ข้อมูลส่วนหัวแพ็คเกจ IP ของเลเยอร์อินเทอร์เน็ต
โปรโตคอลการควบคุมการส่งข้อมูล: ข้อมูลส่วนหัวของข้อมูลส่วนของเลเยอร์การขนส่ง t นี่คือ TCP
Hypertext Transfer Protocol: ข้อมูลเลเยอร์แอปพลิเคชันนี่คือโปรโตคอล HTTP
Wireshark และรุ่นเจ็ดชั้น OSI ที่สอดคล้องกัน
เนื้อหาเฉพาะของแพ็คเกจ TCP
จากรูปด้านล่างคุณสามารถเห็นแต่ละฟิลด์ในแพ็คเกจ TCP ที่ Wireshark จับได้
ตัวอย่างการวิเคราะห์กระบวนการจับมือกันสามครั้ง TCP
เมื่อเห็นสิ่งนี้ฉันได้รับความเข้าใจเบื้องต้นเกี่ยวกับ Wireshak ทีนี้มาดูตัวอย่างของการจับมือกันสามครั้ง TCP
กระบวนการจับมือสามครั้งคือ
ฉันเคยเห็นภาพนี้มาหลายครั้งแล้ว เวลานี้เราใช้ Wireshark เพื่อวิเคราะห์กระบวนการของการจับมือสามครั้ง
เปิด wireshark เปิดเบราว์เซอร์และป้อน http://www.cnblogs.com/tankxiao
ป้อน http เพื่อกรองใน wireshark จากนั้นเลือกบันทึกของ Get /Tankxiao HTTP /1.1 คลิกขวาแล้วคลิก "ติดตาม TCP Stream"
จุดประสงค์ของสิ่งนี้คือเพื่อให้ได้แพ็คเก็ตข้อมูลที่เกี่ยวข้องกับการเปิดเว็บไซต์โดยเบราว์เซอร์ คุณจะได้ภาพต่อไปนี้
ในรูปคุณจะเห็นว่า Wireshark สกัดกั้นแพ็คเก็ตข้อมูลสามชุดของการจับมือสามครั้ง แพ็คเกจที่สี่คือ HTTP ซึ่งแสดงให้เห็นว่า HTTP ใช้ TCP เพื่อสร้างการเชื่อมต่อ
แพ็คเก็ตจับมือครั้งแรก
ไคลเอนต์ส่ง TCP พร้อมบิต SYN และหมายเลขซีเรียลคือ 0 ซึ่งแสดงถึงคำขอของลูกค้าในการสร้างการเชื่อมต่อ รูปต่อไปนี้
แพ็คเก็ตข้อมูลสำหรับการจับมือครั้งที่สอง
เซิร์ฟเวอร์ส่งแพ็คเก็ตการยืนยันกลับมาซึ่งการตั้งค่าสถานะคือ SYN และ ACK ตั้งค่าหมายเลขยืนยัน (หมายเลขการตอบรับ) เป็น ISN Plus ของลูกค้า 1 นั่นคือ 0+1 = 1 ดังแสดงในรูปด้านล่าง
แพ็คเก็ตข้อมูลสำหรับการจับมือที่สาม
ลูกค้าส่งแพ็คเก็ตตอบรับ (ACK) อีกครั้ง บิต SYN FLAG คือ 0 และบิต ACK FLAG คือ 1 และเซิร์ฟเวอร์ส่งฟิลด์หมายเลข ACK +1 และวางฟิลด์ยืนยันไปยังอีกฝ่าย และวาง +1 ของ ISN ในส่วนข้อมูลดังแสดงในรูปด้านล่าง:
ด้วยวิธีนี้การจับมือ TCP ถูกส่งผ่านสามครั้งและสร้างการเชื่อมต่อ
ข้างต้นคือการแนะนำขั้นพื้นฐานเกี่ยวกับ Wireshark และการเรียนรู้ TCP สามครั้ง เราจะจัดระเบียบความรู้ที่เกี่ยวข้องต่อไปในอนาคต ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!