Cara
paling mudah mempelajari cara kerja jaringan komputer adalah dengan melihat
paket data yang berseliweran di jaringan komputer. Terus terang, saya selama
bertahun-tahun (tepatnya 8 tahun-an) belajar jaringan komputer dengan cara
melihat isi paket data yang lewat di jaringan. Pada saat itu saya menggunakan
jaringan paket radio pada kecepatan 1200bps jadi sangat lambat dan sangat mudah
untuk 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..
Pada
saat ini teknologi telah berkembang, jarang sekali kita memperoleh PC/XT dengan
DOS 3.3. Alternatif yang paling dekat adalah menjalankan program tcpdump di
sistem operasi Linux.
Tidak
banyak yang perlu anda siapkan untuk menjalakan kan tcpdump ini, yang pasti
sebuah komputer kelas Pentium dengan Linux di dalamnya. Kemudian install
software tcpdump, bisa dilakukan pada saat instalasi linux di lakukan atau
menggunakan proses instalasi software Linux baik melalui RPM atau install file
tar-nya. Software tcpdump sendiri biasanya sudah ada dalam distribusi Linux
seperti Red Hat atau Mandrake, jika anda belum memilikinya atau tidak
menemukannya, dapat di ambil di http://www.tcpdump.org.
Untuk
menjalankan tcpdump anda harus menggunakan user root. Adapun sintaks untuk
menjalankan 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
]
cara
standard yang biasa saya gunakan untuk menjalankan tcpdump adalah
# tcpdump –i eth0
atau
# tcpdump –X –i eth0
Pada
perintah yang pertama anda akan melihat semua header paket yang termonitor oleh
interface eth0. Pada perintah yang ke dua, selain header paket akan di
tampilkan isi data yang di bawa dalam paket yang termonitor oleh interface eth0
baik dalam bentuk binary (hexadesimal) maupun dalam bentuk ASCII. Tentunya
teknik yang ke dua akan berbahaya karena anda dapat dengan mudah membaca semua
username & password user di jaringan anda yang lewat di LAN, integritas
moral seorang hacker akan sangat menentukan apakah informasi yang di peroleh
akan digunakan untuk kebaikan atau keburukan.
Dengan
ke dua cara di atas, jangan kaget kalau layar monitor anda akan dipenuhi print
out paket yang lewat & akan scrolling dalam waktu yang sangat cepat. Bagi
anda yang menggunakan tcpdump untuk memonitor kegiatan di ppp0 (internet
dial-up) maupun Wireless LAN mungkin scrolling di layar tidak akan se dramatis
jika anda memonitor trafik di LAN.
Untuk
mengatasi kecepatan scrolling yang demikian gila-nya, ada baiknya kita
melakukan sedikit pemrograman untuk memfilter paket agar hanya paket tertentu
saja yang di tampilkan di layar. Pemrogramman tcpdump tidak sukar, seluruh
parameter yang digunakan dapat di tambahkan melalui sebuah file dan di
injeksikan ke tcpdump melalui parameter –F, sepert,
# tcpdump –i eth0 –F
nama-file-filter
nama-file-filter
berisi parameter / teknik pemfilteran yang digunakan agar hanya segelintir
paket yang sesuai dengan kehendak kita yang akan di tampilkan di layar.
Tentunya
bagi anda yang ingin menangkap paket yang lewat dalam jumlah besar ada baiknya
di simpan langsung ke file, untuk kemudian di analisa. Untuk menyimpan langsung
hasil tangkapan paket ke file dalam menggunakan parameter –w, seperti,
# tcpdump –i eth0 –w
file-tangkapan-paket-data
semua
paket yang lewat akan masuk ke file bernama file-tangkapan-paket-data, sedang
untuk memainkan kembali hasil tangkapan tersebut, dapat dilakukan dengan
menggunakan flag –b sebelum –w.
Contoh
cuplikan hasil tcpdump yang saya lakukan pada interface eth0 yang berupa
jaringan wireless LAN untuk akses ke Internet di daerah Jakarta Utara pada
frekuensi 2.4GHz, terlihat sebagai berikut,
[root@gate onno]# tcpdump -X
-i eth0
tcpdump: listening on eth0
20:13:19.539482
host251.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 config
8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20
hello 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.149482
host145.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-has
host163.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.819484
203.77.237.252.netbios-ns > 203.77.237.255.netbios-ns:
>>> NBT UDP
PACKET(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.828100
gate.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-has
gate.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 reply
gate.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.859513
ns1.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 cukup
pusing membaca demikian banyak data yang lewat, secara umum,
·
paket pertama yang ada dalam hasil tangkapan ini
berisi paket broadcast ke alamat 203.77.237.255 port 8859 berisi message HEARTBEAT, entah untuk apa ini
dilakukan.
·
Paket ke dua berisi informasi routing dari salah
satu base station menggunakan protokol IEEE 802.11b yang bekerja di frekuensi
2.4GHz.
·
Paket ke tiga menandakan bahwa mesin tersebut
dapat melakukan servis multicast, yang beralamat pada 224.0.0.24.
·
Paket ke empat berisi protokol Address
Resolution Protocol (ARP) dan menanyakan hardware address salah satu mesin di
jaringan.
·
Paket ke lima berisi protokol SMB yang digunakan
dalam Network Neighbourhood di Windows. Node 203.77.237.252 menanyakan apakah
ada node SMB lain di jaringan.
·
Paket ke enam berisi permohonan untuk menanyakan
domain name dari mesin penulis gate.yc1dav.ampr.org ke mesin ns1.indo.net.id.
·
Dst ..
Terlihat sekali operasional sebuah jaringan komputer
seperti Internet sangatlah kompleks dan melibatkan banyak sekali tata cara
komunikasi (protokol). Keterangan lengkap tentang cara kerja protokol-protokol
ini dapat di download secara gratis di berbagai situs di Internet terutama di
Internet Engineering Task Force (IETF) http://www.ietf.org.
Tentunya membaca sekian banyak header cukup membuat kepala
pusing, bagi anda yang ingin melihat proses interaksi yang berlangsung tanpa
melihat isi message yang di transaksikan dapat menggunakan tcpdump –i saja
seperti terlihat di tampilan selanjutnya.
[root@gate onno]# tcpdump -i
eth0
tcpdump: listening on eth0
20:13:44.699472 802.1d config
8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20
hello 2 fdelay 15
20:13:45.239465 arp who-has
host163.ignore.net tell host164.ignore.net
20:13:45.259470
host145.ignore.net > host24.mcast.net:
ip-proto-88 40 [tos 0xc0]
20:13:46.409466
host232.sumaryo.gate.net.4488 > 192.168.120.255.8859: udp 10
20:13:46.719462 802.1d config
8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20
hello 2 fdelay 15
20:13:48.729463 802.1d config
8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20
hello 2 fdelay 15
20:13:49.739471 arp who-has
host163.ignore.net tell host164.ignore.net
20:13:49.859466
host145.ignore.net > host24.mcast.net:
ip-proto-88 40 [tos 0xc0]
20:13:50.739465 802.1d config
8000.00:03:e3:80:cb:09.8001 root 8000.00:03:e3:80:cb:09 pathcost 0 age 0 max 20
hello 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-has
203.77.237.172 tell host161.ignore.net
20:13:53.867775
gate.yc1dav.ampr.org.1190 > ns1.indo.net.id.domain: 4214+ PTR? 172.237.77.203.in-addr.arpa. (45)
(DF)
20:13:53.889518
ns1.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]#
Tampak
pada tampilan hanya header paket data yang lewat yang di tampilkan tanpa isi
(payload) paket. Masing-masing jenis protokol akan memberikan tampilan header
yang berbeda, detail tentang informasi yang di kandung dalam print out header
tersebut dapat dibaca di manual tcpdump yang bisa di ambil di www.tcpdump.org
atau di Linux pada
$ man tcpdump
[root@gate onno]# tcpdump -i
eth1
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 00
0B 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_ALLOWED
PIGGYBACK_ACK_INCLUDED
ResyncIndicator=0x0
ResponseCorelator=0x28
RemoteSessionNumber=0xE
LocalSessionNumber=0xB
SMB PACKET: SMBwritebraw
(REPLY)
Berbeda
dengan sebelumnya pada tampilan berikutnya adalah hasil tangkapan paket data
yang lewat di eth1 (bukan eth0), eth1 merupakan interface LAN yang tersambung
ke jaringan lokal di rumah. Kebanyakan trafik yang lewat adalah trafik transfer
file antar komputer menggunakan network neighbourhood di Windows. Terlihat
jelas sekali praktis di dominasi oleh paket-paket SMB atau NetBeui.
Untuk memfilter sekian banyak paket yang lewat ada baiknya
kita membuat file teks berisi parameter untuk filtering yang dapat di jalankan
menggunakan 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 yang
anda dalam manual tcpdump ke bahasa indonesia.
·
Untuk melihat semua paket yang dapat & pergi
dari mesin sundown, gunakan perintah:
tcpdump
host sundown
·
Untuk melihat semua trafik di mesin helios
dengan mesin hot atau ace, gunakan perintah:
tcpdump
host helios and \( hot or ace \)
·
Untuk melihat semua paket antara mesin ace
dengan semua mesin, kecuali mesin helios, gunakan perintah:
tcpdump ip host ace and not
helios
·
Untuk melihat semua trafik di mesin lokal pada
jaringan (net) berkeley, gunakan perintah:
tcpdump
net ucb-ether
·
Untuk melihat semua trafik ftp melalui internet
gateway snup, gunakan perintah berikut (perlu dicatat tanda kutip digunakan
agar shell tidak salah interpretasi tanpa kurung):
tcpdump
'gateway snup and (port ftp or ftp-data)'
·
Untuk melihat trafic yang sumber atau tujuannya
bukan ke mesin lokal network, gunakan perintah:
tcpdump
ip 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 lebih
dari 576 byte yang dikirim melalui gateway snup, gunakan perintah:
tcpdump
'gateway snup and ip[2:2] > 576'
·
Untuk melihat paket IP broadcast atau multicast
yang 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-echo
and icmp[icmptype] != icmp-echoreply'
Untuk
benar-benar mengerti makna dari masing-masing perintah sangat di sarankan untuk
mempelajari header & cara kerja protokol TCP, IP, ICMP, UDP dll. Naskah
yang mendeskripsikan kerja masing-masing protokol tersebut dapat di ambil di http://www.ietf.org
di kenal dengan Request For Comment (RFC).
No comments :
Post a Comment