การดักจับข้อมูลในเครือข่าย (SNIFFER)
การดักจับข้อมูลถูกเรียกว่า Sniffing และเครื่องมือสำหรับการดักจับข้อมูลคือ Sniffer โดย Sniffer สามารถดักจับ packet หรือ frame ในเครือข่ายได้ ในปัจจุบันเราสามารถเห็นรายละเอียดย่อยๆได้ผ่าน GUI (Graphic User Interface) และสามารถถอดรหัส packet stream ไปเป็นไฟล์จริงๆได้ เช่น รูปภาพ, อีเมล์, หรือเอกสาร เป็นต้น ซึ่ง ณ ปัจจุบันมีเครื่องมือมากมายที่ใช้ในการทำ sniff โดยการบันทึก packet ที่ถูกดักจับได้ มักจะถูกบันทึกในรูปแบบ pcap (Packet Capture) แต่หากเป็น Wireshark (เครื่องมือที่ถูกนิยมใช้มากที่สุด) เวอร์ชั่นล่าสุดจะบันทึก packet ที่ดักจับได้ในลักษณะ pcapng ไฟล์
Sniffer ถูกใช้ในการดักจัก traffic แล้วทำให้สามารถรู้ Username, Password และข้อมูลที่สำคัญได้ การโจมตีหลายครั้งจำเป็นต้องใช้เครื่องมือ Sniffer เพื่อหาข้อมูลที่สำคัญที่ถูกส่งไปยังเครื่องเป้าหมาย ในบทนี้เราจะมาดูว่า Sniffer ทำงานอย่างไรและทดลองดักจับข้อมูลด้วยตัวเองกันครับ
Sniffer ถูกใช้ในการดักจัก traffic แล้วทำให้สามารถรู้ Username, Password และข้อมูลที่สำคัญได้ การโจมตีหลายครั้งจำเป็นต้องใช้เครื่องมือ Sniffer เพื่อหาข้อมูลที่สำคัญที่ถูกส่งไปยังเครื่องเป้าหมาย ในบทนี้เราจะมาดูว่า Sniffer ทำงานอย่างไรและทดลองดักจับข้อมูลด้วยตัวเองกันครับ
ความหมายของ Sniffer
เครื่องมือ Sniffer ทำงานโดยการการดักจับข้อมูลที่ถูกส่งไปมาภายในเครือข่าย ซึ่งระบุปลายทางด้วย MAC Address แม้ว่า Packet นั้นมีการระบุปลายทางไว้อย่างไรก็แล้วแต่ sniffer ก็จะดักจับทั้งหมดถึงแม้จะไม่ใช่ MAC Address ตนเองก็ตาม ซึ่งโหมดในการทำงานแบบนี้เราเรียกว่า “Promiscuous mode”หรือโหมดดักฟังนั่นเอง ซึ่งในโหมดดักฟังนี้จำเป็นต้องใช้ซอฟแวร์พิเศษที่จะทำให้การ์ดเน็ตเวิร์คทำงานแบบนี้ ซึ่งในเครื่องมือ sniffer ทั้งหลายก็จะมีการใส่ driver สำหรับโหมดดักฟังมาให้ด้วยอยู่แล้ว
มีหลายๆ protocol เช่น POP3, HTTP, Simple Network Management Protocol(SNMP) และ FTP ที่ไม่มีการเข้ารหัสข้อมูลระหว่างส่งซึ่งทำให้เมื่อใช้เครื่องมือดักจับข้อมูลแล้วจะสามารถเห็นข้อมูลสำคัญต่างๆได้ เช่น username, password เป็นต้น
มีหลายๆ protocol เช่น POP3, HTTP, Simple Network Management Protocol(SNMP) และ FTP ที่ไม่มีการเข้ารหัสข้อมูลระหว่างส่งซึ่งทำให้เมื่อใช้เครื่องมือดักจับข้อมูลแล้วจะสามารถเห็นข้อมูลสำคัญต่างๆได้ เช่น username, password เป็นต้น
รูปแบบการ Sniffing
การดักจับข้อมูลนั้นถูกแบ่งออกเป็น 2 ประเภทก็คือ
1. Active Sniffing
Active Sniffing คือการพยายามดักจับข้อมูลโดยการทำ ARP ปลอมส่งไปที่เครื่องเป้าหมาย (ARP Spoofing) การดักจับแบบนี้มักจะใช้กับ Switch เพราะว่า Switch จะมีการระบุ Port ของ Switch คู่กับ MAC Address เสมอ ซึ่งทำให้ไม่สามารถดักจับข้อมูลได้ จึงจำเป็นต้องหลอกว่า Port นี้ก็มี MAC นี้เหมือนกันเพื่อให้สามารถดักจับข้อมูลได้ ซึ่งทำให้มีโอกาสถูกตรวจพบได้ แต่ ณ ปัจจุบันเครื่องมือเครือข่ายสมัยใหม่ได้ป้องกันปัญหาเหล่านี้ไปหมดแล้ว จึงยากที่จะกระทำการโจมตีในเครือข่ายที่เป็นแบบมีสาย
2. Passive Sniffing
Passive Sniffing คือการดักจับข้อมูลโดยที่ไม่ได้ทำอะไรเพิ่มเติม ซึ่งทำให้ไม่มีโอกาสที่จะตรวจจับการดักจับนี้ได้เลย แต่การทำงานแบบนี้จะใช้ได้เฉพาะกับ Hub หรือ Wireless ที่เป็น Open Wireless เท่านั้น
ทดลองการ Sniffing ด้วยตัวเอง
เครื่องมือ Sniffer มีหลายหลายมากมายแต่เครื่องมือที่ได้รับความนิยมมากที่สุดและถูกกล่าวถึงมากที่สุดนั่นคือ Wireshark นั่นเอง เพราะสามารถใช้งานได้ทั้งบน Linux และ Windows อีกทั้งยังมีหน้า Interface ที่ดูง่ายอีกด้วย โดย Wireshark นั้นจะไม่ใช่แค่เพียง sniff ข้อมูลเท่านั้น ยังสามารถนำมาใช้เพื่อวิเคราะห์ข้อมูลในเครือข่ายที่ได้ถูกดักจับไว้ด้วยได้เช่นกัน
1. เข้าไปที่ terminal จากนั้นใช้คำสั่ง
$ wireshark
เมื่อเปิดขึ้นมาจะพบหน้าจอ interface ของ Wireshark ตามภาพ
Wireshark รองรับไฟล์หลากหลายประเภททั้ง pcap, cap, erf และอื่นๆอีกมากมาย
เมื่อเปิดไฟล์ pcap ไฟล์ จะแสดงผลตามภาพ
โดยส่วนประกอบของ Interface จะแบ่งเป็น
1) Menu Bar เป็นส่วนการจัดการของโปรแกรม
2) Main Toolbar เป็น icon การสั่งการต่างๆ
3) Filter Toolbar เป็นส่วนการใส่ filter เพื่อแสดง packet ที่เราต้องการเท่านั้น เช่น http, tcp, dns เป็นต้น
4) Packet List Pane เป็นส่วนการแสดงผล packet ที่เราดักจับได้หรือว่าเปิดไฟล์ขึ้นมา รวมถึง packet หลังจากที่ทำการ filter แล้ว
5) Packet Detail Pane เป็นส่วนการแสดงผลของ packet แต่ละ packet ใน layer ต่างๆ
6) Packet Bytes Pane เป็นส่วนการแสดงแสดงผลแบบละเอียดของ packet ในรูปแบบ Byte
เมื่อเปิดไฟล์ pcap ไฟล์ จะแสดงผลตามภาพ
โดยส่วนประกอบของ Interface จะแบ่งเป็น
1) Menu Bar เป็นส่วนการจัดการของโปรแกรม
2) Main Toolbar เป็น icon การสั่งการต่างๆ
3) Filter Toolbar เป็นส่วนการใส่ filter เพื่อแสดง packet ที่เราต้องการเท่านั้น เช่น http, tcp, dns เป็นต้น
4) Packet List Pane เป็นส่วนการแสดงผล packet ที่เราดักจับได้หรือว่าเปิดไฟล์ขึ้นมา รวมถึง packet หลังจากที่ทำการ filter แล้ว
5) Packet Detail Pane เป็นส่วนการแสดงผลของ packet แต่ละ packet ใน layer ต่างๆ
6) Packet Bytes Pane เป็นส่วนการแสดงแสดงผลแบบละเอียดของ packet ในรูปแบบ Byte
เมื่อทำการเปิด Wireshark แล้วเราสามารถดักฟังการใช้งานเครือข่ายของเราได้ โดยทำดังต่อไปนี้
1) ไปที่ Menu Capture -> Options -> Manage Interfaces เพื่อเลือกได้ว่ามี interface ไหนบ้างที่เราต้องการจะดักฟัง (โดยปกติจะเลือกดักฟัง interface ทั้งหมดที่มี) จากนั้นกดปุ่ม OK
2) กดปุ่ม Start เพื่อเริ่มดักฟัง
นอกเหนือจาก Wireshark ก็ยังมีเครื่องมืออีกมากมายที่ใช้เพื่อการดูข้อมูลที่เราเคย sniff ไว้ เช่น network miner เป็นต้น
1) ไปที่ Menu Capture -> Options -> Manage Interfaces เพื่อเลือกได้ว่ามี interface ไหนบ้างที่เราต้องการจะดักฟัง (โดยปกติจะเลือกดักฟัง interface ทั้งหมดที่มี) จากนั้นกดปุ่ม OK
2) กดปุ่ม Start เพื่อเริ่มดักฟัง
นอกเหนือจาก Wireshark ก็ยังมีเครื่องมืออีกมากมายที่ใช้เพื่อการดูข้อมูลที่เราเคย sniff ไว้ เช่น network miner เป็นต้น
วิธีการไล่ดู TCP Connection แต่ละอัน
เราสามารถไล่ดู TCP Connection ที่เกี่ยวข้องกันโดยการ click ขวาจากนั้นเลือก Follow -> TCP Stream
วิธีการดู Statistics ของ Packet ที่เราดักจับมาได้
เราสามารถตรวจสอบว่ามีการดักจับ packet ประเภทใดบ้างที่ได้น้อยหรือมาก ได้โดยการดู Statistics ซึ่งทำได้โดยไปที่ Menu Statistics -> Protocol Hierarchy
หากต้องการดูว่าเป็น Connection ของ IP ไหนเยอะให้ไปที่ Menu Statistics -> Conversation
หากต้องการดูว่าเป็น Connection ของ IP ไหนเยอะให้ไปที่ Menu Statistics -> Conversation
วิธีการ Filter Packet ด้วย Filter Toolbar
เราสามารถ filter packet ได้โดยการใช้งาน filter toolbar โดยมีตัวอย่าง filter ต่างๆดังต่อไปนี้
- http คือ filter ให้เหลือเฉพาะ http packet
- tcp คือ filter ให้เหลือเฉพาะ tcp packet
- udp คือ filter ให้เหลือเฉพาะ udp packet
- dns คือ filter ให้เหลือเฉพาะ dns packet
- ftp คือ filter ให้เหลือเฉพาะ ftp packet
- smtp คือ filter ให้เหลือเฉพาะ smtp (mail) packet
- ip.addr == 10.0.0.1 คือ filter ให้เหลือเฉพาะ packet ที่เกี่ยวข้องกับ IP 10.0.0.1
- ip.addr == 10.0.0.1 && ip.addr == 10.0.0.2 คือ filter ให้เหลือเฉพาะ packet ที่เกี่ยวข้องระหว่าง IP 10.0.0.1 และ IP 10.0.0.2
- http or dns คือ filter ให้เหลือเฉพาะ DNS หรือ HTTP packet เท่านั้น
- tcp.port==4000 คือ filter ให้เหลือเฉพาะ packet ที่เป็น TCP Port 4000 เท่านั้น
- tcp.flags.reset==1 คือ filter ให้เหลือเฉพาะ TCP Reset Packet เท่านั้น
- http.request คือ filter ให้เหลือเฉพาะ HTTP Request เท่านั้น
- tcp contains assets คือ filter ให้เหลือเฉพาะ TCP packet ที่มีคำว่า assets
- !(arp or icmp or dns) คือ filter เอา arp, icmp, dns packet ออกจาก packet
วิธีการเปิดไฟล์ pcap
ดังที่กล่าวไปข้างต้นว่าเราสามารถที่จะเปิดไฟล์ที่เคยดักจับมาได้ โดยเราสามารถทำได้โดย
1) ไปที่ Menu File -> Open
2) เลือกไฟล์ จากนั้นกดปุ่ม Open
2) เลือกไฟล์ จากนั้นกดปุ่ม Open
สามารถทดสอบได้โดยการ download ไฟล์จากที่นี่ และหากต้องการตัวอย่าง packet ต่างๆ สามารถหาได้จาก เว็บไซด์ของ Wireshark, Cheatsheet ของ Wireshark
Comments
Post a Comment