Wireshark คืออะไร วิธีใช้งาน

ในปัจจุบันมีเครื่องมือที่สามารถนำมาช่วยให้ผู้ใช้งานสามารถวิเคราะห์ข้อมูลที่เกี่ยวข้องกับ Network ตรวจสอบแก้ไขปัญหาต่าง ๆ โดยตัวเครื่องมือที่นำมาใช้งานลักษณะนี้​มีอยู่มากมายหลากหลายตัว อาทิเช่น tcpdump, Wireshark, Tshark, NetworkMiner, BrimSecurity

ในวันนี้จะกล่าวถึงตัวที่เราได้ยินชื่อเสียงเรียงนามและคุ้นหน้าคุ้นตาเป็นอย่างดีก็คือเจ้า Baby Shark doo doo doo doo doo ไม่ใช่สิต้อง Wireshark หรือเจ้าโปรแกรมที่มี logo เป็นรูปครีปฉลามนั่นเองครับ

โดยตัว Wireshark นี้อย่างที่หลาย ๆ คน พอจะทราบกันดีว่า Wireshark คือเครื่องมือ open-source ที่ใช้งานกันอย่างแพร่หลาย ทางด้าน network monitoring โดยนำมาใช้ capture packet และ analyzes network traffic ผ่านช่องทางการติดต่อสื่อสารหลากหลายช่องทาง หรือทางด้าน Cyber Security เช่น การทำ Penetration Testing, หรือการทำ Forensics นั้น ตัว Wireshark ยังเป็นเครื่องมือที่สำคัญที่ช่วยให้ผู้ใช้งานสามารถวิเคราะห์รูปแบบข้อมูลทางด้าน network ในรูปต่าง ๆ กันได้โดยอัตโนมัติ เช่น Ethernet, token ring, loopback, และ connection ในรูปแบบ asynchronous transfer mode (ATM)

อีกทั้งตัว Wireshark นั้นยังช่วยให้ผู้ใช้งานสามารถตรวจสอบปัญหาทางด้าน security บนเครือข่าย network ช่วยระบุองค์ประกอบของเครือข่ายที่มีการทำงานผิดพลาดและสามารถนำข้อผิดพลาดไปใช้โจมตีได้ ช่วยค้นหา protocol ที่มีการกำหนดค่า หรือ configuration ที่ผิดพลาดได้อีกด้วย

การทำงานของ Wireshark

การใช้งานเบื้องต้นของตัว Wireshark นั้น ผู้ใช้งานสามารถเลือก capture packet ที่เราต้องการ โดยจะบันทึกไว้อยู่ในรูปแบบ pcap ไฟล์ หรือจะบันทึกด้วยตัว tcpdump หรือโปรแกรม, อุปกรณ์อื่น ๆ แล้วนำไฟล์ pcap มาทำการ analyze ผ่านตัวโปรแรกม Wireshark ก็ได้เช่นกัน ซึ่งการใช้งานสามารถกำหนด display filter เพื่อเลือกดูข้อมูล traffic หรือ protocol ที่เราสนใจได้ในการใช้งานเบื้องต้นอีกด้วย

อีกทั้งบางที traffic ที่เราสนใจนั้นเต็มไปด้วยจำนวนของ packet ทั้ง inbound และ outbound จำนวนมากเช่น traffic ของ http request/response หรือข้อมูลในระดับ application layer ที่มีจำนวนมากจึงทำให้ยากต่อการตรวจสอบ ซึ่งตัว Wireshark ก็ยังมีส่วนของ ‘FOLLOW’ TRAFFIC STREAMS ที่ทำให้ผู้ใช้งานสามารถเลือกดู TCP Stream หรือ HTTP Stream ที่เราต้องการได้ฟ

ตัวอย่างของ inbound และ outbound traffic ที่ highlighted นั้นแสดงข้อมูลการสื่อสารของ application layer

ฟังก์ชันอื่น ๆ ของ Wireshark

นอกเหนือจากการใช้งานขั้นตอนเบื้องต้นแล้ว ยังมีอีกหลายฟังก์ชันที่ช่วยให้ผู้ใช้งานด้าน security นำไปใช้งาน เพื่อช่วยในการค้นหาและตรวจสอบ ไม่ว่าจะเป็นทางด้าน ​Pentest, Forensic หรือ CTFs อีกด้วย โดยอย่างเช่นฟังก์ชันดังนี้

Expert Information

ฟังก์ชัน Expert Information นั้นช่วยแสดงให้เห็นมุมมองมากขึ้นของรูปแบบ traffic ที่ไม่ปกติหรือช่วยค้นหาสาเหตุของปัญหาได้อย่างรวดเร็วกว่าการตรวจสอบจาก packet manual อีกด้วย โดยผู้ใช้งานสามารถเลือกที่เมนู Analyze > Expert Information โดยจะแสดงภาพรวมของสิ่งที่เกิดขึ้นเกี่ยวกับ packet ที่วิเคราะห์ได้

Resolved Addresses

ส่วนของ Resolve Addresses นั้นจะแสดง list ของ resolved address และ hostname นั้นๆ โดยปกติ host ที่สามารถระบุชื่อ hostnames ได้นั้นได้รับข้อมูลมาจากการตอบกลับของ DNS ในกรณีที่ขึ้นเป็น unknown host name ผู้ใช้งานอาจต้อง enable ในส่วนของ Name Resolution ในส่วนของการ Reverse DNS lookup ได้

ในส่วนของ Resolved Addresses นั้น ผู้ใช้งานเลือกที่เมนู Statistics > Resolved Addresses ผู้ใช้งานสามารถหาข้อมูลเบื้องต้นที่ตัว Wireshark สามารถระบุข้อมูลจากตัวของ Wireshark เองเช่นชนิดของ Ethernet Address, Ethernet to the manufacturer เป็นต้น

Protocol Hierarchy

ในส่วนของเมนู Statistics > Protocol Hierarchy ผู้ใช้งานสามารถค้นหา protocols ที่เกี่ยวข้องกับข้อมูลและสื่อสารกันได้อีกด้วย ตัวอย่างดังรูปที่แสดงนั้นเป็นข้อมูลของไฟล์ pcap ที่ได้ download มาจาก CTF ข้อ EscapeRoom ของทาง cyberdefenders ซึ่งตัว Protocol Hierachy จะแสดงให้เห็น Protocols ที่มีการใช้งานทั้งหมด เช่น HTTP และ SSH(Secure Shell) ซึ่งในตัวคำถามข้อแรกของ CTF EscapeRoom นี้ถามว่าผู้โจมตีเข้าถึงระบบผ่าน service อะไร ซึ่งจากข้อมูลน่าจะเป็นการ access ผ่าน SSH(Secure Shell) Protocol นั่นเอง

Conversations

ฟังก์ชันนี้จะแสดงให้เห็นการสื่อสารของ traffic ระหว่างต้นทางและปลายทาง ซึ่งสามารถเลือกเมนูได้ในส่วนของเมนู Statistics > Conversations ผู้ใช้งานสามารถค้นหาจำนวนของการติดต่อสื่อสารกันและข้อมูล data ได้ นอกจากดูข้อมูลจำนวนของการเชื่อมต่อกันแล้ว ยังสามารถระบุได้ว่า traffic ที่เราตรวจสอบนั้นเป็นรูปแบบของการโจมตีหรือไม่ ตามในรูปนั้นเป็นไฟล์ pcap ของ CTF EscapeRoom เราสามารถสังเกตได้ว่าในส่วนที่ highlighted สีแดงนั้นแสดงให้เห็นถึง SSH sessions นั้นสำเร็จ ในขณะที่อันที่อยู่ด้านล่างคาดเดาได้ว่า เป็นลักษณะของการโจมตีรูปแบบ SSH bruteforce guessing ซึ่งสามารถระบุได้จากความแตกต่างกันของค่าจำนวน bytes ที่ส่งจากเครื่อง (B) ไปยังเครื่อง (A) โดยที่ผลของการ authentication attempt เมื่อสำเร็จนั้นจะมีการส่งข้อมูลที่ขนาดมากกว่าเทียบกับการส่งข้อมูลที่ไม่สำเร็จ ในส่วนของรายละเอียดเนื้อหาเพิ่มเติมในส่วนนี้สามารถดูได้จาก link นี้

อีกทั้งเรายังสามารถหาจำนวนของการ failed attempt ของการ SSH bruteforce ได้ โดยระบุ SSH ในช่อง filter

จากนั้นเลือกที่เมนู Statistics > Conversations > TCP tab ที่ด้านล่างของตัว Conversations จะมี check box option “Limit to display filter” ให้เลือก เมื่อเลือก check box แล้ว จากรูปเราจะเห็นว่ามีจำนวน attempts ทั้งหมด 54 ครั้ง โดยที่สามารถระบุได้ว่ามีจำนวน 2 ครั้งที่ successful โดยดูจากจำนวนของ bytes ที่ส่งจากเครื่อง (B) ไปยังเครื่อง (A) ดังนั้นหมายความว่าน่าจะมีจำนวนที่เป็น failed attempts จำนวน 52 ครั้ง

DNS info

ที่เมนู Statistics > DNS ผู้ใช้งานสามารถค้นหา statistics เกี่ยวกับ DNS request ที่ captured ได้

I/O Graph

ที่เมนู Statistics > I/O Graph จะแสดง graph ของ traffic ที่ติดต่อสื่อสารกัน

EXPORTING OBJECTS

ในการทดสอบเจาะระบบหรือการทำ Pentest นั้นเราสามารถเรียกดูข้อมูลที่เป็น sensitive information จากข้อมูลที่เป็น plain text streams โดยที่ตัวโปรแกรม Wireshark จะมีเมนู “File > Export Objects ” ซึ่งเป็นฟังก์ชันที่สามารถ export objects จาก Protocol’s streams ของไฟล์ pcap ที่เราได้ capture มา หากเราเลือก HTTP ก็จะสามารถ export HTML Document, images, executables หรือไฟล์ที่ถูกส่งผ่านทาง HTTP ลงบน disk ได้

จากฟังก์ชันข้างต้นของ ตัว Wireshark ที่ได้ยกตัวอย่างมานั้น ช่วยเหลือผู้ใช้งานในแต่ละด้านได้อย่างมาก อีกทั้งยังสามารถช่วยในการเรียนรู้ไม่ว่าจะเป็นการ debug protocol หรือ troubleshoot ปัญหาทางด้าน security หรือด้าน network ได้ อีกทั้งยังเป็น tool ที่ใช้งานด้าน Forensics หรือใช้ในการแก้โจทย์ CTFs ได้อีกด้วย

หากผู้ที่ใช้งานหรือผู้ที่สนใจสามารถศึกษารายละเอียดการทำงานหรือฟังก์ชันต่างๆของตัว Wireshark เพิ่มเติม เบื้องต้นสามารถศึกษาจาก document ของทาง Wireshark เอง ตามลิงก์ด้านล่างนี้ครับ


0
336