วันพฤหัสบดีที่ 8 มกราคม พ.ศ. 2558

วิธีการใช้งาน filter แบบต่างๆใน tcpdump

แม้จะมีหลายคนที่ชอบใช้ Wireshark ในการทดสอบและวิเคราะห์ traffic ของเครื่องเรา อีกทั้ง Wireshark ยังมีปัญหากับการรับ traffic ขนาดใหญ่มากๆอีกด้วย และที่สำคัญหลายๆเครื่องไม่ได้มีหน้า GUI ให้ได้ใช้งาน ดังนั้นคนจึงนิยมเปลี่ยนไปใช้ tcpdump แทน(แม้ว่า Wireshark version command line อย่าง tshark อยู่ก็ตาม)
ความที่ tcpdump นั้นมีในหลากหลาย OS ทั้งใน Unix, Linux และ Windows รวมถึง Appliance ต่างๆมากมายก็มี tcpdump อยู่เช่นกัน ดังนั้นก็เป็นการดีหากเรารู้วิธีการใช้งาน tcpdump ไว้ก่อนครับ
โดยวิธีการใช้งาน tcpdump มีต่างๆดังนี้
1. การใช้งานโดยระบุ interface ในการดักจับข้อมูลจะใช้เป็น (หากเราไม่ได้ระบุ tcpdump จะใช้เป็น interface แรกโดยอัตโนมัติ ซึ่งปกติจะเป็น eth0)
# tcpdump -i eth1
2. การ filter ให้แสดงเฉพาะ ip ตามที่ต้องการโดยไม่สนใจว่าจะเป็น source, destination ip เช่นหากต้องการให้แสดงเฉพาะ 192.168.1.1 เป็นต้น
# tcpdump -i eth1 host 192.168.1.1
3. การ filter ให้แสดงเฉพาะ source ip ตามที่ต้องการ เช่นหากต้องการให้แสดงเฉพาะ source ip เป็น 192.168.1.1 เป็นต้น
# tcpdump -i eth1 src host 192.168.1.1
4. การ filter ให้แสดงเฉพาะ destination ip ตามที่ต้องการ เช่นหากต้องการให้แสดงเฉพาะ destination ip เป็น 192.168.1.1 เป็นต้น
# tcpdump -i eth1 dst host 192.168.1.1
5. การ filter ให้แสดงเฉพาะ port ตามที่ต้องการ เช่นหากต้องการให้แสดงเฉพาะ port 80 เป็นต้น
# tcpdump -i eth1 port 80
6. การ filter ให้แสดงเฉพาะ source port ตามที่ต้องการ เช่นหากต้องการให้แสดงเฉพาะ source port เป็น 80 เป็นต้น
# tcpdump -i eth1 src port 80
7. การ filter ให้แสดงเฉพาะ destination port ตามที่ต้องการ เช่นหากต้องการให้แสดงเฉพาะ destination port เป็น 80 เป็นต้น
# tcpdump -i eth1 dst port 80
8. หากเราต้องการ filter ให้แสดงเฉพาะ network วง 192.168.1.0/24 ให้เราใช้เป็น
# tcpdump -i eth1 net 192.168.1
9. หากเราต้องการ filter ให้แสดงเฉพาะ source network วง 192.168.1.0/24 ให้เราใช้เป็น
# tcpdump -i eth1 src net 192.168.1
10. หากเราต้องการ filter ให้แสดงเฉพาะ destination network วง 192.168.1.0/24 ให้เราใช้เป็น
# tcpdump -i eth1 dst net 192.168.1
11. หากต้องการ filter โดยเฉพาะ MAC Address  ที่ต้องการจะใช้เป็น
# tcpdump -i eth1 ether host 00:11:22:33:44:55
12. หากต้องการ filter โดยเฉพาะมาจาก MAC Address  ที่ต้องการจะใช้เป็น
# tcpdump -i eth1 ether src host 00:11:22:33:44:55
13. หากต้องการ filter โดยเฉพาะที่จะส่งไปยัง MAC Address  ที่ต้องการจะใช้เป็น
# tcpdump -i eth1 ether dst host 00:11:22:33:44:55
เราสามารถ filter แบบที่ผสม condition หลายๆอันได้โดยใช้คำสั่งดังนี้
- ! หรือ “not” เพื่อให้ได้ผลตรงข้ามกับที่เรากำหนด filter
– && หรือ “and” ใช้เพื่อ and ระหว่าง condition
– || หรือ “or” ใช้เพื่อ or ระหว่าง condition
14. หากเราต้องการให้แสดงผลเฉพาะ traffic ที่มาจาก IP 192.168.1.1 และมี destination port 80 จะได้เป็น
# tcpdump -i eth1 ‘(src host 192.168.1.1)’ and ‘(dst port 80)’
15. หากเราต้องการให้แสดงผลเฉพาะ traffic ที่มาจาก Mac Address 00:11:22:33:44:55 และเป็น icmp traffic จะได้เป็น
# tcpdump -i eth1 ‘(icmp)’ and ‘(ether src host 00:11:22:33:44:55)’
16. หากเราต้องการ traffic ของวง 192.168.1.0/24 แต่ไม่แสดงผลของที่มาจาก 192.168.1.2 และเป็น tcp จะได้เป็น
# tcpdump -i eth1 ‘(net 192.168.1)’ and tcp and ‘(not src host 192.168.1.2)’
Screen Shot 2558-01-07 at 11.26.23 PM
*** เดี๋ยวแบบฉบับ  advance จะมาต่อพรุ่งนี้ครับ

http://www.techsuii.com/2015/01/07/%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-filter-%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%95%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%86/