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.capFile type: Wireshark/tcpdump/… – libpcapFile encapsulation: EthernetNumber of packets: 5,008,189File size: 392,076,276 bytesData size: 2,200,096,315 bytesCapture duration: 82798 secondsStart time: Tue Dec 28 18:49:57 2010End time: Wed Dec 29 17:49:55 2010Data byte rate: 26571.96 bytes/secData bit rate: 212575.69 bits/secAverage packet size: 439.30 bytesAverage 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”

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar

Blogger templates