Sabtu, 19 Februari 2011

Tcpdump Untuk Melihat Paket Data di Jaringan


Carapaling mudah mempelajari cara kerja jaringan komputer adalah dengan melihatpaket data yang berseliweran di jaringan komputer. Terus terang, saya selamabertahun-tahun (tepatnya 8 tahun-an) belajar jaringan komputer dengan caramelihat isi paket data yang lewat di jaringan. Pada saat itu saya menggunakanjaringan paket radio pada kecepatan 1200bps jadi sangat lambat dan sangat mudahuntuk melihat interaksi antar komputer berprotokol TCP/IP menggunakan program Network Operating System (NOS)yang di jalankan di PC/XT di atas program DOS 3.3..

Padasaat ini teknologi telah berkembang, jarang sekali kita memperoleh PC/XT denganDOS 3.3. Alternatif yang paling dekat adalah menjalankan program tcpdump disistem operasi Linux.

Tidakbanyak yang perlu anda siapkan untuk menjalakan kan tcpdump ini, yang pastisebuah komputer kelas Pentium dengan Linux di dalamnya. Kemudian installsoftware tcpdump, bisa dilakukan pada saat instalasi linux di lakukan ataumenggunakan proses instalasi software Linux baik melalui RPM atau install filetar-nya. Software tcpdump sendiri biasanya sudah ada dalam distribusi Linuxseperti Red Hat atau Mandrake, jika anda belum memilikinya atau tidakmenemukannya, dapat di ambil di http://www.tcpdump.org.

Untukmenjalankan tcpdump anda harus menggunakan user root. Adapun sintaks untukmenjalankan tcpdump adalah sebagai berikut

tcpdump [ -adeflnNOpqRStuvxX ] [ -c count ] [ -C file_size] [ -F file ]
[ -i interface ] [ -m module ] [ -r file ][ -s snaplen ] [ -T type ]
[ -w file ] [ -E algo:secret ] [ expression]

carastandard yang biasa saya gunakan untuk menjalankan tcpdump adalah

            # tcpdump –i eth0

atau

            # tcpdump –X –i eth0

Padaperintah yang pertama anda akan melihat semua header paket yang termonitor olehinterface eth0. Pada perintah yang ke dua, selain header paket akan ditampilkan isi data yang di bawa dalam paket yang termonitor oleh interface eth0baik dalam bentuk binary (hexadesimal) maupun dalam bentuk ASCII. Tentunyateknik yang ke dua akan berbahaya karena anda dapat dengan mudah membaca semuausername & password user di jaringan anda yang lewat di LAN, integritasmoral seorang hacker akan sangat menentukan apakah informasi yang di perolehakan digunakan untuk kebaikan atau keburukan.

Denganke dua cara di atas, jangan kaget kalau layar monitor anda akan dipenuhi printout paket yang lewat & akan scrolling dalam waktu yang sangat cepat. Bagianda yang menggunakan tcpdump untuk memonitor kegiatan di ppp0 (internetdial-up) maupun Wireless LAN mungkin scrolling di layar tidak akan se dramatisjika anda memonitor trafik di LAN.

Untukmengatasi kecepatan scrolling yang demikian gila-nya, ada baiknya kitamelakukan sedikit pemrograman untuk memfilter paket agar hanya paket tertentusaja yang di tampilkan di layar. Pemrogramman tcpdump tidak sukar, seluruhparameter yang digunakan dapat di tambahkan melalui sebuah file dan diinjeksikan ke tcpdump melalui parameter –F, sepert,

            # tcpdump –i eth0 –Fnama-file-filter

nama-file-filterberisi parameter / teknik pemfilteran yang digunakan agar hanya segelintirpaket yang sesuai dengan kehendak kita yang akan di tampilkan di layar.

Tentunyabagi anda yang ingin menangkap paket yang lewat dalam jumlah besar ada baiknyadi simpan langsung ke file, untuk kemudian di analisa. Untuk menyimpan langsunghasil tangkapan paket ke file dalam menggunakan parameter –w, seperti,

            # tcpdump –i eth0 –wfile-tangkapan-paket-data

semuapaket yang lewat akan masuk ke file bernama file-tangkapan-paket-data, sedanguntuk memainkan kembali hasil tangkapan tersebut, dapat dilakukan denganmenggunakan flag –b sebelum –w.

Contohcuplikan hasil tcpdump yang saya lakukan pada interface eth0 yang berupajaringan wireless LAN untuk akses ke Internet di daerah Jakarta Utara padafrekuensi 2.4GHz, terlihat sebagai berikut,

[root@gate onno]# tcpdump -X-i eth0
tcpdump: listening on eth0
20:13:19.539482host251.ignore.net.5235 > 203.77.237.255.8859:  udp 10
0x0000   4500 0026 b6c6 0000 ff11 9269 cb4d edfb        E..&.......i.M..
0x0010   cb4d edff 1473 229b 0012 df09 4845 4152        .M...s".....HEAR
0x0020   5442 4541 5400 4006 0400 4a02 7172 0000        TBEAT.@...J.qr..
0x0030   78bf a840 1400                                 x..@..
20:13:20.539467 802.1d config8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20hello 2 fdelay 15
0x0000   4242 0300 0000 0000 8000 0003 e380 cb09        BB..............
0x0010   0000 0000 8000 0003 e380 cb09 8001 0000        ................
0x0020   1400 0200 0f00 0000 0000 0000 0000             ..............
20:13:22.149482host145.ignore.net > host24.mcast.net: ip-proto-88 40 [tos 0xc0]
0x0000   45c0 003c 0000 0000 0258 1ec1 cb4d ed91        E..<.....X...M..
0x0010   e000 000a 0205 ee6c 0000 0000 0000 0000        .......l........
0x0020   0000 0000 0000 0064 0001 000c 0100 0100        .......d........
0x0030   0000 000f 0004 0008 0c01 0101 0010 0000        ................
0x0040   0100 0000                                      ....
20:13:22.749478 arp who-hashost163.ignore.net tell host164.ignore.net
0x0000   0001 0800 0604 0001 0000 21f7 c659 cb4d        ..........!..Y.M
0x0010   eda4 0000 0000 0000 cb4d eda3 2020 2020        .........M......
0x0020   2020 2020 2020 2020 2020 2020 2020 0100        ................
0x0030   0000 000f 0004                                 ......
20:13:22.819484203.77.237.252.netbios-ns > 203.77.237.255.netbios-ns:
>>> NBT UDPPACKET(137): QUERY; REQUEST; BROADCAST
0x0000   4500 004e 25ae 0000 8011 a259 cb4d edfc        E..N%......Y.M..
0x0010   cb4d edff 0089 0089 003a 53ec ac6c 0110        .M.......:S..l..
0x0020   0001 0000 0000 0000 2046 4545 4a45 4e45        .........FEEJENE
0x0030   4646 4b45 5045 4f45 4643 4143 4143 4143        FFKEPEOEFCACACAC
0x0040   4143 4143 4143 4142 4c00 0020 0001 0a08        ACACACABL.......
0x0050   6865                                           he
20:13:22.819674
>>> NetBeui Packet
Type=0x3 Length=44 (0x2c)Signature=0xEFFF Command=0x8
NetbiosDataGram:
Destination=TIMEZONE        NameType=0x1B (Domain Controller)
Source=PROXY           NameType=0x00 (Workstation)

SMB PACKET: SMBtrans(REQUEST)


0x0000   f0f0 032c 00ff ef08 0000 0000 0000 0054        ...,...........T
0x0010   494d 455a 4f4e 4520 2020 2020 2020 1b50        IMEZONE........P
0x0020   524f 5859 2020 2020 2020 2020 2020 00ff        ROXY............
0x0030   534d 4225 0000 0000 1803 0000 0000 0000        SMB%............
0x0040   0000 0000 0000 0000 00fe ca00 0000 0011        ................
0x0050   0000                                           ..
20:13:22.828100gate.yc1dav.ampr.org.1190 > ns1.indo.net.id.domain:  50267+ PTR? 252.237.77.203.in-addr.arpa. (45)(DF)
0x0000   4500 0049 12a0 4000 4011 0448 c0a8 7872        E..I..@.@..H..xr
0x0010   ca9f 2002 04a6 0035 0035 b844 c45b 0100        .......5.5.D.[..
0x0020   0001 0000 0000 0000 0332 3532 0332 3337        .........252.237
0x0030   0237 3703 3230 3307 696e 2d61 6464 7204        .77.203.in-addr.
0x0040   6172 7061 0000 0c00 01                         arpa.....
20:13:22.849461 arp who-hasgate.yc1dav.ampr.org tell sumaryo.gate.net
0x0000   0001 0800 0604 0001 0010 5a63 fd7a c0a8        ..........Zc.z..
0x0010   7801 0000 0000 0000 c0a8 7872 0000 0000        x.........xr....
0x0020   0000 0000 0000 0000 0000 0000 0000 4e45        ..............NE
0x0030   4646 4b45 5045                                 FFKEPE
20:13:22.849643 arp replygate.yc1dav.ampr.org is-at 0:0:f0:64:96:ae
0x0000   0001 0800 0604 0002 0000 f064 96ae c0a8        ...........d....
0x0010   7872 0010 5a63 fd7a c0a8 7801                  xr..Zc.z..x.
20:13:22.859513ns1.indo.net.id.domain > gate.yc1dav.ampr.org.1190:  50267 NXDomain 0/1/0 (133) (DF)
0x0000   4500 00a1 0000 4000 3811 1e90 ca9f 2002        E.....@.8.......
0x0010   c0a8 7872 0035 04a6 008d 17ae c45b 8183        ..xr.5.......[..
0x0020   0001 0000 0001 0000 0332 3532 0332 3337        .........252.237
0x0030   0237 3703 3230 3307 696e 2d61 6464 7204        .77.203.in-addr.
0x0040   6172 7061 0000 0c00 01c0 1400 0600 0100        arpa............
0x0050   0027                                           .'

41 packets received by filter
0 packets dropped by kernel





Bagi anda yang belum terbiasa kemungkinan akan cukuppusing membaca demikian banyak data yang lewat, secara umum,

·        paket pertama yang ada dalam hasil tangkapan iniberisi paket broadcast ke alamat 203.77.237.255 port 8859  berisi message HEARTBEAT, entah untuk apa inidilakukan.
·        Paket ke dua berisi informasi routing dari salahsatu base station menggunakan protokol IEEE 802.11b yang bekerja di frekuensi2.4GHz.
·        Paket ke tiga menandakan bahwa mesin tersebutdapat melakukan servis multicast, yang beralamat pada 224.0.0.24.
·        Paket ke empat berisi protokol AddressResolution Protocol (ARP) dan menanyakan hardware address salah satu mesin dijaringan.
·        Paket ke lima berisi protokol SMB yang digunakandalam Network Neighbourhood di Windows. Node 203.77.237.252 menanyakan apakahada node SMB lain di jaringan.
·        Paket ke enam berisi permohonan untuk menanyakandomain name dari mesin penulis gate.yc1dav.ampr.org ke mesin ns1.indo.net.id.
·        Dst ..

Terlihat sekali operasional sebuah jaringan komputerseperti Internet sangatlah kompleks dan melibatkan banyak sekali tata carakomunikasi (protokol). Keterangan lengkap tentang cara kerja protokol-protokolini dapat di download secara gratis di berbagai situs di Internet terutama diInternet Engineering Task Force (IETF) http://www.ietf.org.

Tentunya membaca sekian banyak header cukup membuat kepalapusing, bagi anda yang ingin melihat proses interaksi yang berlangsung tanpamelihat isi message yang di transaksikan dapat menggunakan tcpdump –i sajaseperti terlihat di tampilan selanjutnya.

[root@gate onno]# tcpdump -ieth0
tcpdump: listening on eth0
20:13:44.699472 802.1d config8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20hello 2 fdelay 15
20:13:45.239465 arp who-hashost163.ignore.net tell host164.ignore.net
20:13:45.259470host145.ignore.net > host24.mcast.net: ip-proto-88 40 [tos 0xc0]
20:13:46.409466host232.sumaryo.gate.net.4488 > 192.168.120.255.8859:  udp 10
20:13:46.719462 802.1d config8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20hello 2 fdelay 15
20:13:48.729463 802.1d config8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20hello 2 fdelay 15
20:13:49.739471 arp who-hashost163.ignore.net tell host164.ignore.net
20:13:49.859466host145.ignore.net > host24.mcast.net: ip-proto-88 40 [tos 0xc0]
20:13:50.739465 802.1d config8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20hello 2 fdelay 15
20:13:51.999468
>>> NetBeui Packet
Type=0x3 Length=44 (0x2c)Signature=0xEFFF Command=0xA
NameQuery:
SessionNumber=0xD
NameType=0x0
ResponseCorrelator=0xD
Destination=15              NameType=0x20 (Server)
Source=SERVER          NameType=0x00 (Workstation)
20:13:53.859461 arp who-has203.77.237.172 tell host161.ignore.net
20:13:53.867775gate.yc1dav.ampr.org.1190 > ns1.indo.net.id.domain:  4214+ PTR? 172.237.77.203.in-addr.arpa. (45)(DF)
20:13:53.889518ns1.indo.net.id.domain > gate.yc1dav.ampr.org.1190:  4214 NXDomain 0/1/0 (133) (DF)

44 packets received by filter
0 packets dropped by kernel
[root@gate onno]#

Tampakpada tampilan hanya header paket data yang lewat yang di tampilkan tanpa isi(payload) paket. Masing-masing jenis protokol akan memberikan tampilan headeryang berbeda, detail tentang informasi yang di kandung dalam print out headertersebut dapat dibaca di manual tcpdump yang bisa di ambil di www.tcpdump.orgatau di Linux pada

            $ man tcpdump

[root@gate onno]# tcpdump -ieth1
tcpdump: listening on eth1
20:31:36.462156
>>> NetBeui Packet
Type=0x406C Length=14 (0xe)Signature=0xEFFF Command=0x14
NetbiosDataAck:
TransmitCorrelator=0x28
RemoteSessionNumber=0xB
LocalSessionNumber=0xE


20:31:36.464914
>>> NetBeui Packet
Type=0x406E Length=14 (0xe)Signature=0xEFFF Command=0x15
Unknown Netbios Command Data:(9 bytes)
[000] 04 00 00 00 00 28 000B  0E                       .....(.. .

SMB PACKET: SMBwritebraw(REQUEST)


20:31:36.466129
>>> NetBeui Packet
Type=0x4070 Length=14 (0xe)Signature=0xEFFF Command=0x16
NetbiosDataOnlyLast:
Flags=PIGGYBACK_ACK_ALLOWED
ResyncIndicator=0x0
ResponseCorelator=0x28
RemoteSessionNumber=0xB
LocalSessionNumber=0xE


20:31:36.470069
>>> NetBeui Packet
Type=0x7240 Length=14 (0xe)Signature=0xEFFF Command=0x16
NetbiosDataOnlyLast:
Flags=PIGGYBACK_ACK_ALLOWEDPIGGYBACK_ACK_INCLUDED
ResyncIndicator=0x0
ResponseCorelator=0x28
RemoteSessionNumber=0xE
LocalSessionNumber=0xB

SMB PACKET: SMBwritebraw(REPLY)

Berbedadengan sebelumnya pada tampilan berikutnya adalah hasil tangkapan paket datayang lewat di eth1 (bukan eth0), eth1 merupakan interface LAN yang tersambungke jaringan lokal di rumah. Kebanyakan trafik yang lewat adalah trafik transferfile antar komputer menggunakan network neighbourhood di Windows. Terlihatjelas sekali praktis di dominasi oleh paket-paket SMB atau NetBeui.
 
Untuk memfilter sekian banyak paket yang lewat ada baiknyakita membuat file teks berisi parameter untuk filtering yang dapat di jalankanmenggunakan perintah

            # tcpdump–i eth0 –F nama-file-filter

beberapa contoh perintah yang dapat di isikan dalam‘nama-file-filter’, untuk memudahkan saya coba terjemahkan beberapa contoh yanganda dalam manual tcpdump ke bahasa indonesia.

·        Untuk melihat semua paket yang dapat & pergidari mesin sundown, gunakan perintah:
tcpdumphost sundown

·        Untuk melihat semua trafik di mesin heliosdengan mesin hot atau ace, gunakan perintah:
tcpdumphost helios and \( hot or ace \)

·        Untuk melihat semua paket antara mesin acedengan semua mesin, kecuali mesin helios, gunakan perintah:
                        tcpdump ip host ace and nothelios

·        Untuk melihat semua trafik di mesin lokal padajaringan (net) berkeley, gunakan perintah:
tcpdumpnet ucb-ether

·        Untuk melihat semua trafik ftp melalui internetgateway snup, gunakan perintah berikut (perlu dicatat tanda kutip digunakanagar shell tidak salah interpretasi tanpa kurung):
tcpdump'gateway snup and (port ftp or ftp-data)'

·        Untuk melihat trafic yang sumber atau tujuannyabukan ke mesin lokal network, gunakan perintah:
tcpdumpip and not net localnet

·        Untuk melihat paket start & stop (SYN &FIN paket) dalam setiap hubungan TCP yang dilakukan dengan mesin non-lokal,gunakan perintah:
tcpdump 'tcp[tcpflags] &(tcp-syn|tcp-fin) != 0 and not src and dst net localnet'

·        Untuk melihat paket IP yang panjang-nya lebihdari 576 byte yang dikirim melalui gateway snup, gunakan perintah:
tcpdump'gateway snup and ip[2:2] > 576'

·        Untuk melihat paket IP broadcast atau multicastyang tidak dikirim melalui ethernet broadcast atau multicast, gunakan perintah:
tcpdump 'ether[0] & 1 =0 and ip[16] >= 224'

·        Untuk melihat semua paket ICMP yang bukan ping,gunakan perintah:
tcpdump 'icmp[icmptype] != icmp-echoand icmp[icmptype] != icmp-echoreply'

Untukbenar-benar mengerti makna dari masing-masing perintah sangat di sarankan untukmempelajari header & cara kerja protokol TCP, IP, ICMP, UDP dll. Naskahyang mendeskripsikan kerja masing-masing protokol tersebut dapat di ambil di http://www.ietf.orgdi kenal dengan Request For Comment (RFC).

Tidak ada komentar:

Posting Komentar