Mengolah file besar di Wireshark ; editcap , capinfos, tshark

Wireshark memang memiliki Graphical User yang cukup menawan, sehingga mempermudah kita sebagai pengguna untuk mencari informasi tentang statistic packet IO Graph, protocol distribution, dsb. Semuanya siap pakai di menu yang ada di dalam Wireshark.

Sayangnya, hal tersebut tidak dapat dimaanfatkan dengan maksimal apabila kita meng-load capture file yang besar. Pada saat kita menghadapi file yang sangat besar, hasil capture beberapa jam atau beberapa hari untuk trafik yang lumayan sibuk, walaupun kita hanya meng-save header nya sebanyak 64 bytes, file nya bisa membengkak menjadi lebih dari 200 MegaBytes !!

Di saat kita memakai Wireshark untuk membuka file tersebut, maka akan timbul masalah karena memory computer tidak cukup. Hal ini penulis alami, bahkan di computer dengan memory 2GB pun, kita tidak akan bisa membuka file dengan ukuran 450Mbytes. Sebelum saya mendapatkan file-file berukuran raksasa ini, saya hanya memanfaatkan wireshark saja, namun mau tidak mau, saat itu saya harus mencari cara lain untuk bisa membuka, bahkan melakukan analisa terhadap file-file raksasa tersebut.

Satu-satunya cara agar dapat melakukan analisa detail dari file besar, adalah kita harus bisa memecah file tersebut menjadi file-file yang lebih kecil, kemudian membuat statistic partial berdasarkan file-file yang lebih kecil tersebut.

Jawaban dari pertanyaan saya adalah perintah command line yang tersedia di wireshark, yang semuanya tersedia di directory \Program Files\Wireshark. Untuk mempermudah, saya memasukkan path dari wireshark tersebut ke PATH variable di system windows.

CAPINFOS.EXE

Capinfos sangat berguna untuk melihat informasi panjang paket/waktu dari sebuah file yang besar. Dari sini, kita bisa memperkirakan, bagaimana kita akan memecah sebuah file nantinya.

Berikut adalah contoh hasil dari CAPINFOS :

D:\>capinfos BigCapture.cap

File name: BigCapture.cap
File type: Wireshark/tcpdump/… – libpcap
File encapsulation: Ethernet
Number of packets: 5,008,189
File size: 392,076,276 bytes
Data size: 2,200,096,315 bytes
Capture duration: 82798 seconds
Start time: Tue Dec 28 18:49:57 2010
End time: Wed Dec 29 17:49:55 2010
Data byte rate: 26571.96 bytes/sec
Data bit rate: 212575.69 bits/sec
Average packet size: 439.30 bytes
Average packet rate: 60.49 packets/sec

Dari informasi yang disajikan oleh CAPINFOS tersebut, kita bisa memperkirakan, berapa bagian kita akan membagi capture file tersebut.

Ada yang menarik di file capture ini, di mana file size sangat berbeda dengan data size. Ini disebabkan karena saya melakukan capture hanya packet header sebesar 64 bytes saja. Jadi, apabila saya melakukan capture full packet, kira-kira file yang terbentuk adalah sebesar 2,2 Gigabytes!!

Tentunya, untuk melihat command line lengkap dari CAPINFOS, silakan dicoba sendiri.. karena cukup panjang untuk di copy paste di blog ini….

EDITCAP.EXE

EDITCAP, sesuai dengan fungsinya, yaitu untuk meng-edit dan meng-translate format dari capture file, sangat berguna. Dengan utility command line yang satu ini, kita bisa memecah sebuah capture file berdasarkan jumlah paket, atau jumlah bytes, atau time start/end dari packet, dan masih banyak lagi.

Berikut adalah contoh editcap untuk meng-split file, dengan masing-masing hasil split file memiliki maksimum 2.000.000 packet.

D:\>editcap -c 2000000 BigCapture.cap BigSplit-2M.cap

D:\>dir big*.*

12/29/2010 06:50 PM 392,076,276 BigCapture.cap

01/19/2011 11:41 AM 156,779,157 BigSplit-2M_00000_20101228184957.cap

01/19/2011 11:42 AM 156,534,688 BigSplit-2M_00001_20101229080200.cap

01/19/2011 11:42 AM 78,762,479 BigSplit-2M_00002_20101229125658.cap

4 File(s) 784,152,600 bytes

D:\>capinfos BigSplit-2M_00000_20101228184957.cap

File name: BigSplit-2M_00000_20101228184957.cap

File type: Wireshark/tcpdump/… – libpcap

File encapsulation: Ethernet

Number of packets: 2,000,000

File size: 156779157 bytes

Data size: 1028121271 bytes

Capture duration: 47523 seconds

Start time: Tue Dec 28 18:49:57 2010

End time: Wed Dec 29 08:02:00 2010

Data byte rate: 21634.01 bytes/sec

Data bit rate: 173072.07 bits/sec

Average packet size: 514.06 bytes

Average packet rate: 42.08 packets/sec

Dari hasil di atas, dapat dilihat, selain melakukan splitting, editcap juga memberikan nama file sesuai dengan tanggal dan jam packet. Hal ini sangat berguna apabila kita ingin memecah lagi berdasarkan tanggal maupun jam packet.

Berikutnya, yaitu mengambil HANYA jangka waktu tertentu dari file capture (28 Desember 2010 Jam 19.00 sd 19.30). Berikut adalah contohnya :

D:\>editcap -A2010-12-2819:00:00 -B2010-12-2819:30:00 BigCapture.cap Time.cap

D:\>capinfos time.cap

File name: time.cap

File type: Wireshark/tcpdump/… – libpcap

File encapsulation: Ethernet

Number of packets: 217447

File size: 17080283 bytes

Data size: 143013127 bytes

Capture duration: 1801 seconds

Start time: Tue Dec 28 19:00:00 2010

End time: Tue Dec 28 19:30:00 2010

Data byte rate: 79419.97 bytes/sec

Data bit rate: 635359.74 bits/sec

Average packet size: 657.69 bytes

Average packet rate: 120.76 packets/sec

Harap perhatikan format penulisan tanggal dan jam nya, -A2010-12-2819:00:00 -B2010-12-2819:30:00 , sebab saya sempat mengalami beberapa kesulitan untuk mencari format yang tepat untuk input ke editcap. Saya belum mencoba dengan OS lain seperti ubuntu, apakah format penulisan sama atau tidak J

Contoh terakhir adalah meng-split berdasarkan jumlah detik ( sebagai contoh tiap 3600 detik ) :

D:\>editcap -i 3600 BigCapture.cap Big-1hour.cap

D:\>dir Big*

Directory of D:\

01/19/2011 11:59 AM 28,436,635 Big-1hour_00000_20101228184957.cap

01/19/2011 11:59 AM 16,924,460 Big-1hour_00001_20101228194957.cap

01/19/2011 11:59 AM 4,588,172 Big-1hour_00002_20101228204957.cap

01/19/2011 11:59 AM 2,691,643 Big-1hour_00003_20101228214957.cap

01/19/2011 11:59 AM 2,221,523 Big-1hour_00004_20101228224957.cap

01/19/2011 11:59 AM 4,685,475 Big-1hour_00005_20101228234957.cap

01/19/2011 11:59 AM 4,146,497 Big-1hour_00006_20101229004957.cap

01/19/2011 11:59 AM 1,996,413 Big-1hour_00007_20101229014957.cap

01/19/2011 11:59 AM 3,174,168 Big-1hour_00008_20101229024957.cap

01/19/2011 11:59 AM 3,420,687 Big-1hour_00009_20101229034957.cap

01/19/2011 11:59 AM 2,449,273 Big-1hour_00010_20101229044957.cap

01/19/2011 11:59 AM 39,459,999 Big-1hour_00011_20101229054959.cap

01/19/2011 11:59 AM 35,581,642 Big-1hour_00012_20101229064957.cap

01/19/2011 11:59 AM 25,946,914 Big-1hour_00013_20101229074957.cap

01/19/2011 11:59 AM 21,146,557 Big-1hour_00014_20101229084957.cap

01/19/2011 11:59 AM 40,976,805 Big-1hour_00015_20101229094957.cap

01/19/2011 11:59 AM 26,858,455 Big-1hour_00016_20101229104957.cap

01/19/2011 11:59 AM 44,677,176 Big-1hour_00017_20101229114957.cap

01/19/2011 11:59 AM 36,780,025 Big-1hour_00018_20101229124957.cap

01/19/2011 11:59 AM 19,215,028 Big-1hour_00019_20101229134957.cap

01/19/2011 11:59 AM 10,425,031 Big-1hour_00020_20101229144957.cap

01/19/2011 11:59 AM 11,587,436 Big-1hour_00021_20101229154957.cap

01/19/2011 11:59 AM 4,686,790 Big-1hour_00022_20101229164957.cap

12/29/2010 06:50 PM 392,076,276 BigCapture.cap

Hasil yang menarik dari pemisahan berdasarkan detik, adalah kita dengan mudah bisa melihat pada posisi periode mana terjadi paket yang besar. Pada contoh di atas, paket terbesar terjadi pada kisarn waktu 11:49:57 sd 12:49:56, dengan file size 44Mbytes.

TSHARK

tShark adalah utility command line yang amat sangat powerful, mungkin bisa disebutkan sebagai wireshark versi command-line. Untuk menangkap paket skala besar, bahkan kita dianjurkan memakai tshark, dan bukan nya wireshark, mengingat resources yang dibutuhkan sangat rendah, karena tidak perlu memuat GUI yang berat.

Sayangnya, penjelasan lengkap tentang tshark tidak berhasil ditemukan di help file wireshark, namun bisa dicari dari linux man page. Parameter yang disediakan amat bervariasi, namun secara garis besar, dibagi menjadi dua fungsional, yaitu penangkapan, atau peng-display/analisis-an paket yang ditangkap.

tShark untuk Menangkap Paket

Untuk menangkap paket menggunakan tshark, pertama kali kita lihat terlebih dahulu interfaces yang tersedia di dalam computer kita. Sebagai contoh :

D:\>tshark -D

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

1. \Device\NPF_GenericDialupAdapter (Adapter for generic dialup and VPN capture)

2. \Device\NPF_{F0AC7AD7-CF9B-4894-8708-E38E3B2F1029} (Marvell Gigabit Ethernet

Controller (Microsoft’s Packet Scheduler) )

3. \Device\NPF_{FB5D65EF-BFF3-458F-A748-E6D75D9CE44B} (Intel(R) Wireless WiFi Li

nk 4965AGN (Microsoft’s Packet Scheduler) )

4. \Device\NPF_{F931B67C-E76B-4C85-A58D-E33082270A34} (VMware Virtual Ethernet A

dapter)

5. \Device\NPF_{5288A8DE-4563-405F-9593-21AB633DAF96} (VMware Virtual Ethernet A

dapter)

Setelah jelas interfaces index mana yang akan kita pakai untuk menangkap paket, kita tinggal melakukan proses penangkapan paket (dalam hal ini, kita tidak meng-save, melainkan hanya memperlihatkan nya ke layar saja ). Tekan Ctrl+C untuk selesai menangkap paket.

D:\>tshark -i 2

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

Capturing on Marvell Gigabit Ethernet Controller (Microsoft’s Packet Scheduler)

0.000000 203.133.211.72 -> 10.0.0.100 SSL Continuation Data 0.000000 65

0.006499 10.0.0.100 -> 203.133.211.72 SSL Continuation Data 0.006499 57

0.309689 203.133.211.72 -> 10.0.0.100 TCP 443 > 3320 [ACK] Seq=12 Ack=4 Win=

63701 Len=0 0.303190 60

0.309745 10.0.0.100 -> 203.133.211.72 SSL Continuation Data 0.000056 107

0.453481 203.133.211.72 -> 10.0.0.100 SSL Continuation Data 0.143736 60

0.670185 10.0.0.100 -> 203.133.211.72 TCP 3320 > 443 [ACK] Seq=57 Ack=15 Win

=64752 Len=0 0.216704 54

0.782166 203.133.211.72 -> 10.0.0.100 SSL Continuation Data 0.111981 61

0.998336 10.0.0.100 -> 203.133.211.72 TCP 3320 > 443 [ACK] Seq=57 Ack=22 Win

=64745 Len=0 0.216170 54

1.905122 10.0.0.100 -> 65.200.11.161 TCP 3603 > 80 [FIN, ACK] Seq=1 Ack=1 Wi

n=65535 Len=0 0.906786 54

2.109985 65.200.11.161 -> 10.0.0.100 TCP 80 > 3603 [FIN, ACK] Seq=1 Ack=2 Wi

n=6432 Len=0 0.204863 60

2.110016 10.0.0.100 -> 65.200.11.161 TCP 3603 > 80 [ACK] Seq=2 Ack=2 Win=655

35 Len=0 0.000031 54

2.978658 00:e0:2b:00:00:01 -> 00:e0:2b:00:00:00 EDP EDP: 0.868642 338

12 packets captured

Kolom-kolom yang ditampilkan di atas bisa jadi berbeda untuk tiap computer, karena semuanya tergantung pada bagaimana kita melakukan setting pada wireshark kita.

Untuk meng-save ke file dengan format wireshark (Tekan Ctrl+C untuk selesai menangkap paket):

D:\>tshark -i 2 -w tangkap.cap

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

Capturing on Marvell Gigabit Ethernet Controller (Microsoft’s Packet Scheduler)

43

D:\>capinfos tangkap.cap

File name: tangkap.cap

File type: Wireshark/tcpdump/… – libpcap

File encapsulation: Ethernet

Number of packets: 43

File size: 5248 bytes

Data size: 4536 bytes

Capture duration: 14 seconds

Start time: Wed Jan 19 13:51:18 2011

End time: Wed Jan 19 13:51:32 2011

Data byte rate: 319.50 bytes/sec

Data bit rate: 2555.96 bits/sec

Average packet size: 105.49 bytes

Average packet rate: 3.03 packets/sec

Tidak kalah pentingnya, parameter –b untuk capture ring buffer option, seperti contoh berikut ; menangkap paket dengan maksimum per file adalah 60 detik, dan maksimum total file adalah 3 files (tekan Ctrl+C untuk berhenti):

D:\>tshark -i 2 -w tangkap.cap -b duration:60 -b files:3

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

Capturing on Marvell Gigabit Ethernet Controller (Microsoft’s Packet Scheduler)

7105

D:\>dir tangkap*.*

01/19/2011 02:52 PM 1,690,562 tangkap_00003_20110119145142.cap

01/19/2011 02:53 PM 2,759,776 tangkap_00004_20110119145242.cap

01/19/2011 02:54 PM 12,906 tangkap_00005_20110119145342.cap

tShark untuk Meng-display Paket

tShark dapat dipakai juga untuk meng-display packet yang sudah disimpan. Tanpa filter apapun, perintahnya sangat sederhana, seperti :

D:\>tshark -r tangkap_00005_20110119145342.cap

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

1 0.000000 10.0.0.100 -> 67.19.121.51 TCP 4233 > 110 [SYN] Seq=0 Win=65535

Len=0 MSS=1460 0.000000 62

2 0.240387 67.19.121.51 -> 10.0.0.100 TCP 110 > 4233 [SYN, ACK] Seq=0 Ack=

1 Win=5840 Len=0 MSS=1460 0.240387 60

3 0.240440 10.0.0.100 -> 67.19.121.51 TCP 4233 > 110 [ACK] Seq=1 Ack=1 Win

=65535 Len=0 0.000053 54

Untuk mem-filter, dapat digunakan parameter –R readfilter, di mana readfilter haruslah merupakan filter yang valid. Penjelasan tentang filter di luar materi artikel ini. Namun secara mudah, kita bisa membuka wireshark, kemudian meng-test filter yang akan kita pakai di sini. Untuk mudahnya, kita pakai filter “pop” yang berguna untuk filter paket POP3 saja sbb :

D:\>tshark -r tangkap_00005_20110119145342.cap -R pop

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

4 0.907486 67.19.121.51 -> 10.0.0.100 POP S: +OK Hello there. 0.667046 72

5 0.907700 10.0.0.100 -> 67.19.121.51 POP C: AUTH 0.000214 61

7 1.157546 67.19.121.51 -> 10.0.0.100 POP S: -ERR Invalid command. 0.00002

7 77

8 1.157747 10.0.0.100 -> 67.19.121.51 POP C: USER xxx@xxx.xxx 0.000201 89

9 1.397943 67.19.121.51 -> 10.0.0.100 POP S: +OK Password required. 0.2401

96 78

10 1.398160 10.0.0.100 -> 67.19.121.51 POP C: PASS xxxx 0.000217 68

16 2.033279 67.19.121.51 -> 10.0.0.100 POP S: +OK logged in. 0.120295 70

17 2.033493 10.0.0.100 -> 67.19.121.51 POP C: STAT 0.000214 60

20 2.284182 67.19.121.51 -> 10.0.0.100 POP S: +OK 0 0 0.000025 63

21 2.292974 10.0.0.100 -> 67.19.121.51 POP C: QUIT 0.008792 60

22 2.533489 67.19.121.51 -> 10.0.0.100 POP S: +OK Bye-bye. 0.240515 68

Apabila kita menginginkan hasil filtering di-write ke file yang berbeda, kita tinggal kombinasikan dengan parameter –w seperti contoh berikut :

D:\>tshark -r tangkap_00005_20110119145342.cap -R pop -w tangkap_onlypop.cap

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

D:\>tshark -r tangkap_onlypop.cap

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

1 0.000000 67.19.121.51 -> 10.0.0.100 POP S: +OK Hello there. 0.000000 72

2 0.000214 10.0.0.100 -> 67.19.121.51 POP C: AUTH 0.000214 61

3 0.250060 67.19.121.51 -> 10.0.0.100 POP S: -ERR Invalid command. 0.24984

6 77

4 0.250261 10.0.0.100 -> 67.19.121.51 POP C: USER xxx@xxxx 0.000201 89

5 0.490457 67.19.121.51 -> 10.0.0.100 POP S: +OK Password required. 0.2401

96 78

6 0.490674 10.0.0.100 -> 67.19.121.51 POP C: PASS xxxxx 0.000217 68

7 1.125793 67.19.121.51 -> 10.0.0.100 POP S: +OK logged in. 0.635119 70

8 1.126007 10.0.0.100 -> 67.19.121.51 POP C: STAT 0.000214 60

9 1.376696 67.19.121.51 -> 10.0.0.100 POP S: +OK 0 0 0.250689 63

10 1.385488 10.0.0.100 -> 67.19.121.51 POP C: QUIT 0.008792 60

11 1.626003 67.19.121.51 -> 10.0.0.100 POP S: +OK Bye-bye. 0.240515 68

Perhatikan bahwa file di atas memiliki penomoran paket yang berbeda dibandingkan contoh tshark –r sebelumnya. Ini berarti, file tangkap_onlypop.cap memang hanya berisikan paket-paket POP3 saja di dalamnya.

tShark untuk Statistic

tShark dapat juga digunakan untuk melakukan beberapa statistic seperti yang terdapat dalam menu Statistic di dalam program Wireshark. Di antaranya adalah untuk protocol hierarchy statistic (phs) dan I/O Stats. Parameter –q sengaja dipasang di sini, bertujuan untuk menghapus proses display packet yang sudah ditangkap, sehingga tshark hanya menampilkan khusus bagian PHS saja ( dengan parameter –z io,phs ) :

D:\>tshark -r tangkap_00003_20110119145142.cap -q -z io,phs

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

===================================================================

Protocol Hierarchy Statistics

Filter: frame

frame frames:2258 bytes:1654410

eth frames:2258 bytes:1654410

ip frames:2257 bytes:1654072

tcp frames:2175 bytes:1644814

ssl frames:21 bytes:2401

http frames:1212 bytes:1588548

data-text-lines frames:41 bytes:56160

xml frames:1 bytes:1514

image-jfif frames:19 bytes:27237

unreassembled frames:4 bytes:6056

image-gif frames:41 bytes:35477

unreassembled frames:13 bytes:19682

png frames:10 bytes:10659

unreassembled frames:3 bytes:4542

media frames:3 bytes:4542

unreassembled frames:2 bytes:3028

pop frames:6 bytes:445

udp frames:82 bytes:9258

dns frames:82 bytes:9258

llc frames:1 bytes:338

edp frames:1 bytes:338

===================================================================

Sedangkan untuk I/O Stats, dapat digunakan parameter –z io,stat,nn di mana nn adalah seconds interval. Sebagai contoh, untuk melihat I/O Stats dalam interval 5 detik, digunakan –z io,stat,5 sbb :

D:\>tshark -r tangkap_00003_20110119145142.cap -q -z io,stat,5

NOTE: you should run ‘diskperf -y’ to enable the disk statistics

===================================================================

IO Statistics

Interval: 5.000 secs

Column #0:

| Column #0

Time |frames| bytes

000.000-005.000 14 1718

005.000-010.000 0 0

010.000-015.000 13 1221

015.000-020.000 39 17366

020.000-025.000 3 168

025.000-030.000 25 5852

030.000-035.000 563 478363

035.000-040.000 608 536656

040.000-045.000 540 409903

045.000-050.000 291 145936

050.000-055.000 162 57227

===================================================================

Tentu saja, informasi ini dapat di pipe ke file text, yang kemudian bisa kita olah lebih lanjut untuk membuat grafik di Excel. Proses piping untuk di windows adalah dengan menambahkan ” > namafile.txt”

No comments:

Post a Comment