Tutorial Tcpdump : Sniffing Network Traffic From Command Line

Tutorial Tcpdump : Sniffing Network Traffic From Command Line - Tcpdump adalah alat penganalisa jaringan melalui command line atau  bisa dibilang packet sniffer. Ini dapat dianggap sebagai versi commandline dari wireshark. Di artikel kali ini kita akan belajar menggunakan tcpdump dengan baik dan benar,

Alangkah baiknya jika anda mempelajari tutorial ini langsung praktek saja, persiapan yang dibutuhkan adalah software tcpdump, untuk tutorial penginstallan tcpdump di android kalian bisa lihat disini. Sedangkan untuk linux khususnya debian dan ubuntu atau turunannya anda cukup ketik command $ sudo apt-get install tcpdump 


Tutorial Tcpdump : Sniffing Network Traffic From Command Line

Tutorial Tcpdump | Sniffing Network Traffic From Command Line


Oke kita mulai saja, pertama - tama berdoa dulu sebelum mempelajari sesuatu biar ilmunya bermanfaat hehe...

Tutorial Tcpdump Bahasa Indonesia :

# Basic sniffing
parameter -n disini berfungsi menghindari tcpdump untuk resolving hostname, dalam artian jika ada packet yang membutuhkan resolving hostname maka tcpdump tidak ikut menganalisa packet tersebut. Tetapi sebentar, mungkin anda akan bertanya mengapa harus pakai sudo? karena untuk menjalankan tcpdump anda membutuhkan root privileges.
$ sudo tcpdump -n
output !
max@rooted:~$ sudo tcpdump -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:24:32.873209 IP 91.108.56.140.443 > 192.168.1.70.32974: Flags [P.], seq 1066595525:1066595630, ack 2449132613, win 8044, options [nop,nop,TS val 3627546369 ecr 3733438569], length 105
21:24:32.873342 IP 192.168.1.70.32974 > 91.108.56.140.443: Flags [.], ack 105, win 516, options [nop,nop,TS val 3733441629 ecr 3627546369], length 0
21:24:33.180984 IP 192.168.1.64.63689 > 192.168.1.255.50007: UDP, length 128
Sekarang, kita coba ambil satu line saja dari hasil sniffing diatas.
21:24:32.873209 IP 91.108.56.140.443 > 192.168.1.70.32974: Flags [P.], seq 1066595525:1066595630, ack 2449132613, win 8044, options [nop,nop,TS val 3627546369 ecr 3733438569], length 105 
21:24:32.873209 ini adalah waktu dari analisa,
91.108.56.140.443 IP atau Internet protocol
192.168.1.70.32974 ini adalah sumber IP yang sedang berhubungan dengan IP 91.108.56.140.443
Sisanya adalah informasi tentang packet tersebut.

# Menggunakan verbose untuk mendapatkan infomasi lebih
untuk menggunakan verbose anda cukup memasukkan tambahan parameter -v di saat anda ingin menjalankan tcpdump, verbose sendiri untuk mendapatkan informasi lebih pada saat analisa packet.
$ sudo tcpdump -v -n
output !
max@rooted:~$ sudo tcpdump -v -n
[sudo] password for max:
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:04:56.713228 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.71 tell 192.168.1.1, length 46
22:04:57.019923 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.70 tell 192.168.1.1, length 46
22:04:57.020009 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.1.70 is-at 68:94:23:77:5a:ee, length 28
22:04:57.020960 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.69 tell 192.168.1.1, length 46 

# Mendapatkan Ethernet Header 
untuk mendapatkan ethernet header dengan baik anda cukup menambahkan parameter -e
$ sudo tcpdump -v -n -e
output !
max@rooted:~$ sudo tcpdump -v -n -e
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:08:37.233264 68:94:23:77:5a:ee > 4c:81:20:0f:a7:fc, ethertype IPv4 (0x0800), length 66: (tos 0x0, ttl 64, id 18606, offset 0, flags [DF], proto TCP (6), length 52)
    192.168.1.70.43822 > 74.125.68.188.5228: Flags [.], cksum 0x27f3 (correct), ack 1847848925, win 318, options [nop,nop,TS val 2485676775 ecr 517364225], length 0

# Cek Interface yang tersedia
Untuk cek network interface yang tersedia anda cukup memasukkan parameter -D
$ sudo tcpdump -D
output !
max@rooted:~$ sudo tcpdump -D
[sudo] password for max:
1.wlan0 [Up, Running]
2.any (Pseudo-device that captures on all interfaces) [Up, Running]
3.lo [Up, Running, Loopback]
4.eth0 [Up]
5.nflog (Linux netfilter log (NFLOG) interface)
6.nfqueue (Linux netfilter queue (NFQUEUE) interface)
7.usbmon1 (USB bus number 1)
8.usbmon2 (USB bus number 2)
9.usbmon3 (USB bus number 3)
10.usbmon4 (USB bus number 4)
11.usbmon5 (USB bus number 5)
12.usbmon6 (USB bus number 6) 
Kita bisa lihat diatas, ada beberapa interface tersedia, dan yang sedang berjalan wlan0 dan lo

# Sniffing Dengan Network Interface Tertentu
Nah, bagian ini agak penting karena untuk menghemat output yang akan tampil dan kita akan mengambil bagian terpentingnya saja, anda bisa sniffing jaringan dengan pilihan network interface yang tersedia.
$ sudo tcpdump -i wlan0
atau sesuai nomor seperti contoh sebelumnya pada saat cek interface yang tersedia.
$ sudo tcpdump -i 1

# Sniffing Dengan Protocol Tertentu
sniffing tanpa kejelasan dan tujuan adalah hal yang agak aneh, sama seperti saya berjuang untuk cewek saya tanpa kejelasan dan tujuan, agak aneh dan saya merasa diri saya sudah gila hehe... ah sudahlah, disini kita bisa sniffing lalu lintas jaringan dengan protocol yang sudah kita atur sebagai contoh saya ingin sniffing jaringan tetapi hanya pada protocol tcp saja.
$ sudo tcpdump -n tcp
output !
max@rooted:~$ sudo tcpdump -vv -n tcp
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:20:58.869098 IP (tos 0x0, ttl 64, id 22220, offset 0, flags [DF], proto TCP (6), length 52)
    192.168.1.70.33358 > 172.217.194.191.443: Flags [.], cksum 0x5265 (correct), seq 95610646, ack 2952274262, win 1444, options [nop,nop,TS val 2030566391 ecr 2102966451], length 0
22:20:58.897929 IP (tos 0x80, ttl 57, id 47621, offset 0, flags [none], proto TCP (6), length 52)
    172.217.194.191.443 > 192.168.1.70.33358: Flags [.], cksum 0x53ac (correct), seq 1, ack 1, win 1050, options [nop,nop,TS val 2103011661 ecr 2030521247], length 0
anda bisa improvisasi dengan parameter -v atau -vv untuk decode protocolnya.

# Sniffing dengan Host Tertentu
nah, sekarang agak lebih jauh lagi, kita bisa menentukan target host yang ingin kita sniffing packet jaringannya. Sama seperti anda mencari cinta, anda harus menentukan target dan spesifikasi tertentu agar anda terfokus. (ngomong apaan sih ! *slap !)

$ sudo tcpdump -n 'src <target>'
output dan contoh !
max@rooted:~$ sudo tcpdump -n 'src 192.168.1.64'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:25:34.735388 IP 192.168.1.64.63689 > 192.168.1.255.50007: UDP, length 128
22:25:38.114606 IP 192.168.1.64.63689 > 192.168.1.255.50007: UDP, length 128
22:25:41.801032 IP 192.168.1.64.63689 > 192.168.1.255.50007: UDP, length 128
22:25:45.179971 IP 192.168.1.64.63689 > 192.168.1.255.50007: UDP, length 128
22:25:48.559195 IP 192.168.1.64.63689 > 192.168.1.255.50007: UDP, length 128
sepertinya, host yang saya jadikan target gak melakukan aktivitas yang mencurigakan, misal akses situs ena ena hehehe....

# Menggabungkan dengan Command grep
awalnya saya hanya ingin testing sekalian iseng siapa tau bisa digabungkan dengan command grep seperti nmap, dan ternyata boom ! Bisa, ini membantu kita untuk keluar dari ketidakjelasan dan tanpa tujuan melakukan sniffing jaringan.

> Analisa network traffic dengan grep
disini, anda bisa menggunakan fitur grep untuk mencari network traffic tertentu, sebagai contoh saya mencari network traffic yang headernya ada tulisan 'POST'
$ sudo tcpdump -n -A | grep -e 'POST'
output !
max@rooted:~$ sudo tcpdump -n -A | grep -e 'POST'
[sudo] password for max:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
E...=.@.@......e@.H..'.P(.o%~...P.9.PN..POST /blog/wp-admin/admin-ajax.php HTTP/1.1
E...c_@.@..=...e@.H..*.PfC<....wP.9.PN..POST /blog/wp-admin/admin-ajax.php HTTP/1.1
E.....@.@......e@.H...."g;.(.-,WP.9.Nj..POST /login/?login_only=1 HTTP/1.1
> Mencari Password atau User Login
Seperti yang saya katakan sebelumnya, command menolong kita dari ketidakjelasan untuk sniffing jaringan, sebenarnya sniffing jaringan bisa juga berfungsi untuk mencari password atau user login dari korban dengan command ini.

$ sudo tcpdump port http or port ftp or port smtp or port imap or port pop3 -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --color=auto --line-buffered -B20
bisa kita lihat di beberapa parameter sebelum command grep, port http, port ftp, port smtp, port imap port pop3. Tentukan sesuai keinginan anda, jika ingin mencari user login ftpnya, sebagai contoh
$ sudo tcpdump port ftp -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --color=auto --line-buffered -B20
begitu pun dengan yang lainnya, silahkan anda improve sendiri untuk ini, dan jika anda mengalami kesulitan anda bisa bertanya kepada saya melalui kolom komentar yang sudah tersedia dibawah. Demikianlah untuk tutorial tcpdump yang saya berikan kali ini semoga saja bermanfaat dan jangan lupa untuk terus mengunjungi blog ini, akhir kata Thanks !

Artikel Menarik Lainnya :

Comments