Wireshark ชื่อเดิม Ethereal เป็นโปรแกรมจำพวก packet sniffer ชนิดหนึ่งซึ่งประกอบไปด้วยส่วนของ Packet Capture และ Packet Analyzer โดยทำหน้าที่ในการวิเคราะห์ระบบ Network โดย Wireshark นั้นสามารถทำงานได้ทั้งบนระบบปฏิบัติการ Linux, window และ OSX สามารถทำการวิเคราะห์ข้อมูลบนเครือข่ายได้หลากหลายรูปแบบ และที่สำคัญ Wireshark นั้นเป็นซอฟต์แวร์แบบ Open Source หรือ Freeware ซึ่งให้ใช้งานโดยไม่ต้องเสียค่าใช้จ่ายและมีต้นฉบับสำหรับให้นำไปพัฒนาต่อยอดได้อีกด้วย ปัจจุบัน Wireshark ได้พัฒนามาถึงเวอร์ชัน 1.1.0 Development release
Table 3.1. Keyboard Navigation
Accelerator | Description |
Down | ไปยัง packets หรือ item ถัดไป |
Up | ไปยัง packets หรือ item ก่อนหน้านี้ |
Ctrl+Down, F8 | ไปยัง packets ถัดไป แม้ว่า รายการของ packet นั้นจะไม่ได้ โฟกัสเอาไว้ |
Ctrl+Up, F7 | ไปยัง packets ก่อนหน้านี้ แม้ว่า รายการของ packet นั้นจะไม่ได้ โฟกัสเอาไว้ |
Ctrl+. | ไปยัง packets of the conversation ถัดไป (TCP, UDP or IP) |
Ctrl+, | ไปยัง packets of the conversation ก่อนหน้านี้ (TCP, UDP or IP) |
Left | ใน packet detail ให้ปิดทุก items ที่เลือกไว้ หาก item นั้นได้บันทึกไว้แล้ว |
Right | ใน packet detail ให้เปิดทุก items ที่เลือกไว้ |
Shift+Right | ใน packet detail ให้เปิดทุก itemsและส่วนประกอบย่อยๆที่เลือกไว้ |
Ctrl+Right | ใน packet detail ให้เปิดทุก items. |
Ctrl+Left | ใน packet detail ให้ปิดทุก items. |
เมนูการใช้งาน
File: เมนูนี้ ใช้สำหรับ open (เปิด) ,merge capture files (รวมแฟ้มเอกสาร), save(บันทึก) / print(พิมพ์) / export capture files (ส่งไฟล์ไปยังโปรแกรมอื่นๆ) และ quit from Wireshark. (ปิดโปรแกรมนี้)
Table 3.2. File menu items ฉบับคร่าวๆ
Menu Item | Accelerator | Description |
Open... | Ctrl+O | เมนูนี้ใช้สำหรับเปิดกล่อง dialog เพื่อดาวโหลด capture file |
Close | Ctrl+W | เมนูนี้ใช้สำหรับปิด Capture. ถ้าคุณไม่ได้บันทึก capture ตัวโปรแกรมจะถามคุณก่อนการปิดโปรแกรม |
Save | Ctrl+S | เมนูนี้ใช้สำหรับบันทึก Capture. คุณไม่สามารถบันทึก capture ในขณะที่โปรแกรมกำลังทำงานอยู่ ควรกด stop ก่อนการ save capture |
Save As... | Shift+Ctrl+S | เมนูนี้ใช้สำหรับบันทึก capture file เป็นไฟล์อะไรก็ตามที่คุณต้องการบันทึก |
Export > File... |
| เมนูนี้ใช้สำหรับส่ง packets ทั้งหมดใน the capture file ไปยัง file |
Print... | Ctrl+P | เมนูนี้ใช้สำหรับพิมพ์ packets ใน capture file |
Quit | Ctrl+Q | เมนู นี้ใช้สำหรับสั่งปิดโปรแกรมนี้ ซึ่งก่อนการปิดโปรแกรม หากคุณไม่ได้ทำการบันทึกไว้ก่อนหน้านี้ ตัวโปรแกรมจะถามคุณก่อนการปิดโปรแกรมว่า คุณต้องการบันทึก capture นี้ ใช่หรือไม่ |
Edit: เมนูนี้ใช้สำหรับ ค้นหา packet, ตั้งค่าตามความพึงพอใจ (ตัด, คัดลอก, และวาง)
Table 3.3. Edit menu items
Menu Item | Accelerator | Description |
Copy > Description | Shift+Ctrl+D | This menu item will copy the description of the selected item in the detail view to the clipboard. |
Copy > Fieldname | Shift+Ctrl+F | ใช้สำหรับคัดลอก fieldname ของ item ที่ถูกเลือกในclipboard |
Copy > Value | Shift+Ctrl+V | ใช้คัดลอกจำนวนของ item ที่ถูกเลือกใน clipboard |
Find Packet... | Ctrl+F | ใช้สำหรับค้นหา packet จากหลายหลักเกณฑ์ |
Find Next | Ctrl+N | ใช้สำหรับค้นหา Packet ถัดไปที่เข้ากันได้กับการตั้งค่าจาก "Find Packet...". |
Find Previous | Ctrl+B | ใช้สำหรับค้นหา Packet ก่อนหน้านี้ที่เข้ากันได้กับการตั้งค่าจาก "Find Packet...". |
Mark Packet (toggle) | Ctrl+M | ใช้สำหรับทำเครื่องหมาย displayed packets ที่ถูกเลือกเอาไว้ |
Mark All Displayed Packets | Shift+Ctrl+M | ใช้สำหรับทำเครื่องหมาย displayed packets ทั้งหมด |
Preferences... | Shift+Ctrl+P | ใช้สำหรับกำหนดหรือตั้งค่าตัวแปรที่ใช้ควบคุม Wireshark. คุณสามารถบันทึกpacketหรือcapture ที่คุณต้องการเพื่อใช้ในเวลาต่อๆไป |
View : ใช้สำหรับควบคุมการแสดง captured data ซึ่งประกอบด้วย colorization of packets, การซุมของ font, การแสดง packet ในหน้าต่างที่แยกกันออกไป และอื่นๆอีกมากมาย
Table 3.4. View menu items
Zoom In | Ctrl++ | ขยายขนาดของ Packet data (เพิ่มขนาดของตัวอักษร). |
Zoom Out | Ctrl+- | ลดขนาดของ Packet data (ลดขนาดของตัวอักษร). |
Normal Size | Ctrl+= | ทำให้ขนาดกลับสู่ปกติ คือ 100% |
Resize All Columns | Shift+Ctrl+R | ให้สำหรับเปลี่ยนขนาดความกว้างของ column ทั้งหมด เพิ่มความเหมาะสมของงาน |
Expand Subtrees | Shift+Right | ใช้สำหรับขยาย subtree ที่ถูกเลือกใน packet |
Expand All | Ctrl+Right | Wireshark ใช้สำหรับบอกรายการของ protocol subtrees ทั้งหมด ที่สามารถแผ่ขยายต่อไปได้อีก และใช้สำหรับขยาย subtrees ทั้งหมดในทุก packets ของ capture. |
Collapse All | Ctrl+Left | เมนูนี้ใช้สำหรับลบ packet ทั้งหมดที่มีในรายการ capture |
Reload | Ctrl+R | เมนูนี้อนุญาตให้คุณเพิ่ม Capture file. |
Go: เมนูนี้ใช้สำหรับออกคำสั่งในการหา packet พิเศษหรือ packet จำเพาะเจาะจง
Table 3.5. Go menu items
Menu Item | Accelerator | Description |
Back | Alt+Left | ข้ามไปยัง packet ก่อนหน้านี้ที่เคยเข้า โดยเข้าไปยัง packet history ซึ่งคล้ายกับ history ใน web browser |
Forward | Alt+Right | ข้ามไปยัง packet ต่อไปที่เข้าเยี่ยม โดยเข้าไปยัง packet history, ซึ่งคล้ายกับ history ใน web browser |
Previous Packet | Ctrl+Up | ไปยัง packet ก่อนหน้านี้ในรายการ |
Next Packet | Ctrl+Down | ไปยัง packet ถัดไปในรายการ |
First Packet | Ctrl+Home | ไปยัง packet แรกสุดใน capture file |
Last Packet | Ctrl+End | ไปยัง packet สุดท้ายใน capture file |
Capture: เมนูนี้ใช้สำหรับ เริ่มต้น ,แก้ไข และสั่งหยุด captures
Table 3.6. Capture menu items
Menu Item | Accelerator | Description |
Interfaces... | Ctrl+I | เมนูนี้ใช้สำหรับแสดงว่าตอนนี้ network กำลังทำอะไรอยู่ ซึ่ง Wiresharkสามารถเข้าถึงและตรวจสอบ |
Options... | Ctrl+K | เป็นเมนูที่นำไปสู่ กล่อง Capture Options dialog และอนุญาตให้คุณเริ่มต้นสร้าง capturing packets. |
Start | Ctrl+E | เริ่มต้นเข้าใช้captureอย่างรวดเร็วกว่าครั้งแรกๆที่เริ่มใช้ |
Stop | Ctrl+E | เมนูนี้ใช้สำหรับสั่งหยุด capture ที่กำลังทำงานอยู่ |
Restart | Ctrl+R | เมนูใช้สำหรับเริ่มต้น capture ที่เพิ่งสั่งหยุด ให้เข้าสู่สภาพเดิมโดยใช้เวลาเพียงไม่นาน |
Capture Filters... |
| เป็นเมนูที่นำไปสู่กล่อง dialog ที่อนุญาตให้คุณสร้าง หรือแก้ไข capture filters ซึ่งคุณสามารถตั้งชื่อ filters และบันทึกไว้ล่วงหน้า |
Analyze: เมนูนี้ประกอบด้วย item ที่ใช้ปรับ display filters, ติดตาม a TCP stream และ วิเคราะห์ความเป็นไปได้ของ protocols
Statistics: เมนูนี้ประกอบด้วยใจความสรุปของ packet ที่เคย capture ไปแล้ว, display protocol hierarchy statistics (สถิติของแสดงการจัดระบบตามลำดับขั้นระเบียบการ) และอื่นๆอีกมากมาย
Telephony: เมนูนี้ประกอบด้วย telephonyที่แตกต่างกัน ซึ่งเกี่ยวกับจำนวนสถิติของการใช้โปรแกรมซึ่งประกอบด้วย media analysis (การวิเคราะห์ของ media) , flow diagrams (แผนภาพ flow) , display protocol hierarchy statistics (วิชาสถิติแสดงการจัดระบบตามลำดับขั้นระเบียบการ) และอื่นๆอีกมากมาย
Tools: เมนูนี้ประกอบด้วยเครื่องมือหลากหลายชนิดใน wireshark อย่างเช่น creating Firewall ACL Rules
Internals: เมนูนี้ใช้สำหรับ บอกหรือโชว์ข่าวสารเกี่ยวกับ wireshark
Help: เมนูนี้ใช้สำหรับช่วยเหลือ ผู้ใช้โปรแกรม ตัวอย่างเช่น ช่วยสอนวิธีการใช้โปรแกรมแบบพื้นฐาน, ออนไลน์สิทธิ์หรือโอกาสในการเข้าถึงบางส่วนของ webpage และ มีคู่มือการใช้งานของโปรแกรมนี้
The "Main" toolbar
วิธีการใช้งาน Wireshark บทความนี้จะมาแนะนำการใช้งานโปรแกรม Wireshark เบื้องต้น สำหรับผู้ที่กำลังเขียนโปรแกรมติดต่อ ระหว่างไมโครคอนโทรลเลอร์ กับเครือข่ายอยู่ (หรือจะเอาไป hack ก็ได้นะ แต่ไม่แนะนำให้ทำนะ) ก่อนอื่นต้องดาวน์โหลด ตัวโปรแกรมมาติดตั้งบนคอมพิวเตอร์ โดยดาวโหลดจากเว็บไซต์ของ Wireshark : www.wireshark.org หลังจากที่ดาวน์โหลดโปรแกรมมาติดตั้งเรียบร้อยแล้ว ก็ให้เปิดโปรแกรม wireshark ขึ้นมา จะปรากฏหน้าต่างว่าง ดังรูปด้านล่าง รูปหน้าต่างหลักของโปรแกรม Wireshark
หลังจากที่เปิดโปรแกรม Wireshark ขึ้นมาแล้ว ต่อไปก็จะเริ่มดักจับ Packet บนการ์ดแลนของเราครับ ให้คลิกที่เมนู Capture แล้วก็เลือก Option หรือจะกดคีย์ลัด Ctrl+K เพื่อตั้งค่าการดักจับข้อมูล ดังรูป เลือกเมนู Capture->Option
จะปรากฏหน้าต่าง Capture Option ขึ้นมา ตรงช่อง Interface ให้เลือกการ์ดแลนบนคอมของเรา ที่เชื่อมต่อกับเครือข่ายอยู่ ตรงช่อง Capture Filers ยังไม่ต้องใส่ filter อะไรลงไป
ตั้งค่าก่อนดักจับข้อมูลโดย กดเอาเครื่องหมายออกในช่องของ Display Option ตามรูปด้านล่าง และคลิก Start
หลังจากที่กด Start แล้ว จะปรากฏหน้าต่างแสดงสถานะ การดักจับข้อมูลขึ้นมาดังรูป
สถานะของการดักจับข้อมูล
ต่อไปให้เปิด command line ขึ้นมา โดยคลิกที่ Start->Run แล้วพิมพ์คำว่า cmd แล้วกด Enter จะปรากฎหน้าต่าง command line ขึ้นมา ให้พิมพ์ ping [ip address] -n 1 แล้วกด Enter กลับไปที่หน้าต่างสถานะของการดักจับ ก็จะแสดงออกมาว่าตอนนี้ดักจับข้อมูลได้กี่ packet แบ่งเป็น protocol อะไรบ้าง ดังรูป สถานะของการดักจับข้อมูล
หลังจากที่ดักจับข้อมูลที่เราทดสอบเรียบร้อยแล้ว ก็ให้กด Stop เพื่อหยุดการดักจับข้อมูล หลังจากนั้นโปรแกรมจะแสดงรายละเอียดของข้อมูลที่ดักจับได้ดังรูป โดยจะแบ่งรายระเอียดเป็นสามช่อง ช่องแรกเป็นข้อมูลคร่าวๆ ของแต่ละ packet ช่องที่สองเป็นรายละเอียดของแต่ packet ที่ดักจับได้ ส่วนช่องที่สามเป็นข้อมูลดิบฐานสิบหก ที่โปรแกรมจับได้
Three-way Handshake : เป็นวิธีการส่งแพ็กเก็ตที่สามารถช่วยแก้ปัญหาในเรื่องแพ็กเก็ตซ้ำซ้อนได้ดี แต่วิธีนี้จำเป็นจะต้องสร้างช่องสื่อสารให้ได้ก่อนที่จะเริ่มรับ-ส่งข้อมูล อย่างไรก็ตาม แพ็กเก็ตควบคุมที่ใช้ในการต่อรองค่าตัวแปรสำหรับการสื่อสารต่างๆ อาจเกิดการตกค้างอยู่ในระบบได้ ทำให้การกำหนดค่าหมายเลขลำดับมีปัญหาไปด้วย ตัวอย่างของ Three-way-handshake บรรทัดที่ 21-23 ของ Protocol TCP
เป็นการแสดงการทำ Three-way-handshake โดยมีของ Protocol TCP มี segment ที่เกี่ยวข้องดังนี้ 1. SYN 2. SYN, ACK 3. ACK โดยที่มีเครื่องลูก (Client) คือหมายเลข IP 192.168.1.4 ที่ Port 53887 ติดต่อไปยังเครื่องแม่ (Server) ที่หมายเลข IP 192.168.1.1 ที่ Port 80 มีการทำงานดังนี้ 1. TCP ของเครื่องผู้ใช้ส่งเซกเมนต์ที่บรรจุเลขลำดับนี้ไปยังเครื่องของ server พร้อมทั้งแฟล็ก SYN ให้เป็น "1"(เซกเมนต์ 1) 2. TCP ของเครื่อง server ได้รับเซกเมนต์จากเครื่องผู้ใช้แล้วตอบกลับด้วยเซกเมนต์ SYN (เซกเมนต์ 2)พร้อมทั้งเซ็ตแฟล็ก ACK เพื่อแจ้งว่าเซกเมนต์ 1 โดยใช้เลขลำดับที่ได้รับจากทางเครื่องของผู้ใช้บวกด้วย 1 3. TCP ของเครื่องผู้ใช้ จะส่งเซกเมนต์ตอบกลับไป (เซกเมนต์ 3) โดยเซ็ตแฟล็ก ACK และใช้เลขลำดับที่ได้รับจากเครื่อง server บวกด้วยหนึ่ง แสดงได้ตามตารางดังนี้
ลำดับ | Segment | Source | Destination | Seq No. | Ack No. | การคำนวณ Ack |
IP Address | Port | IP Address | Port |
1 | SYN | 192.168.1.4 (Client) | 53887 | 192.168.1.1 (Server) | 80 | 0 | 0 |
|
2 | SYN,ACK | 192.168.1.1 (Server) | 80 | 192.168.1.4 (Client) | 53887 | 0 | 1 | Seq.No SYN = 0+1 |
3 | ACK | 192.168.1.4 (Client) | 53887 | 192.168.1.1 (Server) | 80 | 1 | 1 | Seq.No SYN = 0+1 |
Wireshark มีประโยชน์อะไร ตามปกติถ้าเราใช้คอมพิวเตอร์เปิดเว็บไซต์ทั่วไปหรือติดต่อกับเครื่องอื่นๆ นั้นจะไม่แสดง protocols (สิ่งที่ใช้การสื่อสารระหว่างคอมพิวเตอร์)แต่ถ้าเราต้องการจะเห็น protocols เพื่อศึกษาการทำระบบ หรือ Hack (ไม่แนะนำ) เราจำเป็นใช้โปรแกรมดักจับ protocols หนึ่งในนั้นก็คือ โปรแกรม wireshark โดยการทำงานของ wireshark นั้นจะทำการจับ ข้อความที่ส่งกันระหว่าง protocols ซึ่งเราจะเรียกว่า Packet sniffer
อ้างอิงจาก : Wireshark User's Guide (คู่มือการใช้โปรแกรมที่ได้มาพร้อมกับตัวโปรแกรม ซึ่งเป็นคู่มือภาค ภาษาอังกฤษ หากแปลเป็นภาษาไทยตรงไหนผิดพลาด ต้องขออภัยด้วย เนื่องจากอาศัยการแปลศัพท์ด้วยตัวเอง)
|