How to read pcap file in Linux CLI using tcpdump
ไฟล์ pcap (packet capture) ที่ได้มาจาก tcpdump หรืออุปกรณ์ network อื่นๆ จะเป็น binary file ซึ่งไม่สามารถเปิดอ่านผ่าน text editor เช่น vi, nano หรือโปรแกรมอ่านไฟล์อื่นๆ เช่น less cat ได้ ดังตัวอย่าง
[root@TUM1 tmp]# less log_traffic.pcap
ÝX¼'
ÝX¼'·%ÝPR0W<<ÿÿÿÿÿÿÐÐý|ÐÐý|\æ
þ
'PRz@@
ÌÌÍX¼'·¥2ªª
ÝX¼'
ÝX¼'·%ÝPR£o<<ÿÿÿÿÿÿÐÐý|ÐÐý|\æ
þ w<<ÿÿÿÿÿÿÐÐý|ÐÐý|\æ
þPR
(Rg5@@
ÌÌÍX¼'·¥2ªª
ไฟล์ pcap นิยมใช้โปรแกรม wireshark ในการเปิดอ่านข้อมูลซึ่งจะต้องเปิดบน GUI mode เท่านั้นถึงจะสามารถใช้งานได้ แต่ถ้าหากเราใช้งานบน text mode อยู่ แล้วเราไม่ทราบว่าวิธีอ่านไฟล์ pcap บน text mode ก็ต้องทำการ transfer file มายังเครื่องที่มี WireShark ถึงจะสามารถใช้งานได้
ในบทความนี้จะมาพูดถึงคำสั่งที่ใช้ในการเปิดอ่านไฟล์ pcap บน linux console ซึ่งจะช่วยอำนวยความสะดวกได้พอสมควร เพราะไม่ต้องย้ายไฟล์ไปเปิดที่เครื่องที่มีโปรแกรมที่ support ไฟล์ pcap
คำสั่งในการอ่านไฟล์ pcap
[root@TUM1 tmp]# tcpdump -qns 0 -X -r /path/to/file.pcap
คำสั่งนี้จะแสดงข้อมูลในส่วนต่างๆ พร้อมทั้ง hex code ออกมา เหมือนผลลัพธ์ด้านล่าง
10:33:26.996668 IP 10.1.21.23.44504 > 10.1.21.255.netbios-ns: UDP, length 50
0x0000: 4500 004e 0000 4000 4011 fb87 0a01 1517 E..N..@.@.......
0x0010: 0a01 15ff add8 0089 003a 462d 2d50 0110 .........:F--P..
0x0020: 0001 0000 0000 0000 2046 4545 4545 4645 .........FEFCCCE
0x0030: 4646 4845 5046 4345 4d45 4543 4f45 4f45 FFHEPFCEMEECOEOE
0x0040: 4646 4543 4143 4142 4d00 0020 0001 FFECACABM.....
10:33:26.997794 IP 10.1.21.23.40439 > 10.1.21.255.netbios-ns: UDP, length 50
0x0000: 4500 004e 0000 4000 4011 fb87 0a01 1517 E..N..@.@.......
0x0010: 0a01 15ff 9df7 0089 003a 1161 71fd 0110 .........:.aq...
0x0020: 0001 0000 0000 0000 2046 4545 4545 4645 .........FEFCCCE
0x0030: 4646 4845 5046 4345 4d45 4543 4f45 4f45 FFHEPFCEMEECOEOE
0x0040: 4646 4543 4143 4142 4d00 0020 0001 FFECACABM.....
[root@TUM1 tmp]# tcpdump -ttttnnr /path/to/file.pcap
คำสั่งนี้จะแสดงข้อมูลเหมือนกับตอนที่เราใช้คำสั่ง tcpdump โดยไม่มี option อะไรพิเศษเพื่อดู packet ข้อมูลของไฟล์จะตามผลลัพธ์ด้านล่าง
reading from file /path/to/file.pcap, link-type EN10MB (Ethernet)
...
2013-11-11 10:33:26.996668 IP 10.1.21.23.44504 > 10.1.21.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
2013-11-11 10:33:26.997794 IP 10.1.21.23.40439 > 10.1.21.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
2013-11-11 10:33:27.267881 IP 10.1.21.23.44504 > 10.1.21.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
2013-11-11 10:33:27.268715 IP 10.1.21.23.40439 > 10.1.21.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
2013-11-11 10:33:27.541051 IP 10.1.21.23.44504 > 10.1.21.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
2013-11-11 10:33:27.541897 IP 10.1.21.23.40439 > 10.1.21.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
...