ANALISA PEREKAMAN DATA CHATTING DALAM YAHOO MESSENGER (YM) DENGAN TEKNIK SNIFFING Skripsi Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika Disusun oleh : Florentina Puri Cahyani 035314055 TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2009
128
Embed
Analisa Perekaman Data Chatting dalam Yahoo Messenger YM ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ANALISA PEREKAMAN DATA CHATTING DALAM YAHOO
MESSENGER (YM) DENGAN TEKNIK SNIFFING
Skripsi
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Disusun oleh :
Florentina Puri Cahyani
035314055
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
ANALYSIS of DATA CHATTING RECORDING IN YAHOO
MESSENGER ( YM) WITH SNIFFING TECHNIQUE
A THESIS
Presented as Partial Fulfillment of the Requirements
to Obtain the Sarjana Teknik Degree
in Department of Informatics Technology
Created by:
Florentina Puri Cahyani
035314055
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan
dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, Maret 2009
Penulis
Florentina Puri Cahyani
vi
Give Thanks to :
Tuhan Yesus Kristus atas kasihNya
Bunda Maria
Terimakasih setiap pagi aku masih bisa belajar menarik napas dan
menghembuskan napas.
Bapak dan Ibuku Agustinus Agus Sudarmojo
Hanya ini yang dapat yeyen berikan sebagai syukur atas
segala kasih dan cinta yang kalian berikan.
Kakakku N,Cies
”Kapan lulus...?? sekarang aku udah lulus mbak”
Adekku Monica di Surga
”Dek.. MbYen lulus..... maaf mbYen telat, tidak bisa memakai Toga dihadapan
Adek. Tapi mbYen yakin DekMon tersenyum di Surga.”
My Soulmate Cornelius ”Robby” L.Prianggono
” Terimakasih atas semuanya.... ”
Tidak hanya hitam dan putih yang kamu hadirkan dalam hidupku.
Almamaterku Teknik Informatika Universitas Sanata Dharma
khususnya angkatan 2003
vii
Segala sesuatu ada waktunya
Semua yang tercipta merupakan jawaban dari putaran waktu yang telah Tuhan
sediakan buatku
Emosi, ego, luapan tawa, tetesan air mata, impian,… semua lebur menjadi satu
dan menjadi kisah yang penuh arti dalam perjalanan hidupku.
Mungkin terlalu sederhana, tapi ini merupakan sisi hidupku yang ingin kubagi
saat ini.
Semua penuh arti…
Semua yang kulewati sampai hari ini ada hanya karena
CINTA dan KASIH
Yakin segala sesuatu ada waktunya dan tepat pada waktunya, dan akhirnya aku
tersenyum sambil berkata….
“Selamat Pagi Dunia..”
viii
ABSTRAKSI
Pada Tugas Akhir ini penulis melakukan analisa dalam proses sniffing
pada pemakaian yahoo messenger. Hampir setiap pengguna internet tidak asing
dengan istilah chatting. Dari chatting kita dapat dengan mudah menerima
informasi yang kita butuhkan. Banyak tindak kejahatan yang dapat
dikomunikasikan melalui media ini (chatting) agar informasi dapat diterima
dengan rahasia.
Yahoo Messenger Logging ini berfungsi untuk melakukan log (pencatatan
informasi) selama proses chatting berlangsung. Dalam hal ini proses log hanya
dibatasi pada layanan chatting saja.
Akses internet sangat diperlukan dalam proses sniffing ini. Untuk
membantu proses logging, penulis menggunakan C sebagai bahasa
pemrogramannya dan tcpdump sebagai programnya. Hasil yang diperoleh adalah
perangkat lunak YM log yang dapat merekam beberapa aktivitas ( dalam hal ini
pengiriman dan penerimaan pesan) lewat chatting.
ix
ABSTRACT
At this project writer tries to do analysis in process of sniffing at usage of
yahoo messenger. Almost every internet user is not foreign to the term chat. Of
chat, we can easily receive the information we need. Many crime that can be
communicated through this media (chat) that information can be received with a
secret.
Yahoo Messenger Logging to perform this function log (recording
information) during a chat in progress. In this case the log is only limited to just
chat service
Internet access is required in this process sniffing. To help the process of
logging, as the author using C language and pemrogramannya as tcpdump
program. Results obtained YM is a software log that can record a few events (in
this case the sending and receiving of messages), via chat.
x
xi
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa yang telah mengaruniakan
berkat dan hikmatNya sehingga penulis dapat menyelesaikan tugas akhir ini.
Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang telah
memberikan bentuan dan perhatian dengan caranya masing-masing sehingga
tugas akhir ini dapat diselesaikan. Oleh karena itu saya mengucapkan terima kasih
diantaranya kepada :
1. Bapak JB Budi Darmawan, S.T.,M.Sc. selaku dosen pembimbing I tugas
akhir yang telah banyak memberikan bimbingan dalam penyusunan tugas
akhir ini.
2. Bapak H.Agung Hernawan, S.T. selaku dosen pembimbing II tugas akhir
yang telah banyak memberikan bimbingan dalam penyusunan tugas akhir
ini.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T dan PH. Prima
Rosa,S.Si.,M.Sc selaku panitia penguji yang telah memberikan banyak
kritik dan saran sempurnanya tugas akhir ini.
4. Ibu Ridowati Gunawan, S.Kom., M.T., selaku dosen pembimbing
akademik angkatan 2003.
5. Bapak Emanuel Belle Bau, SPd. dan Yustinus Nugroho sebagai laboran
yang telah mendukung dalam mempersiapkan ujian pendadaran.
xii
6. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang
telah memberikan bekal ilmu, arahan dan pengalaman selama penulis
menempuh studi.
7. Seluruh staff Sekretariat Fakultas Sains dan Teknologi yang banyak
membantu penulis dalam urusan administrasi akademik terutama
menjelang ujian tugas akhir dan yudisium.
8. Orangtuaku tersayang A.Agus Sudarmojo dan kakak adekku yang telah
memberikan cintanya, doa, semangat, perhatiannya sehingga penulis dapat
menyelesaikan tugas akhir ini.
9. Semua teman-teman seperjuangan di Jurusan Teknik Informatika angkatan
2003.
10. Semua pihak yang telah membantu penulisan baik secara langsung
maupun tidak langsung, yang tidak dapat penulis sebutkan satu persatu.
Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir
ini sangat saya harapkan. Akhir kata semoga tugas akhir ini bermanfaat bagi
semua pihak. Terima kasih.
Yogyakarta, Maret 2009
Penulis
xiii
DAFTAR ISI
Halaman
Halaman Judul …………………………………………………………
Halaman Persetujuan …………………………………………………... iii
Halaman Pengesahan …………………………………………………... iv
Halaman Pernyataan Keaslian Karya ………………………………….. v
Halaman Persembahan …………………………………………………. vi
Halaman Motto ………………………………………………………… vii
Abstraksi ……………………………………………………………….. viii
Abstract ………………………………………………………………… ix
Halaman Pernyataan Persetujuan Publikasi …………………………… x
Kata Pengantar ……………………………………………………........ xi
Daftar Isi ………………………………………………………………. xiii
Daftar Gambar ………………………………………………………… xv
Daftar Tabel …………………………………………………………… xvii
Daftar Listing ………………………………………………………….. xviii
I. PENDAHULUAN 1.1. Latar Belakang Masalah………………………………………. 1 1.2. Rumusan Masalah…………………………………………….. 2 1.3. Batasan Masalah ……………………………………………… 2 1.4. Tujuan Penelitian ……………………………………………... 3 1.5. Metodologi Penelitian ………………………………………… 4 1.6. Sistematika Penulisan ………………………………………… 5
II. LANDASAN TEORI 2.1. Sejarah Internet ……………………………………………….. 7 2.2. Konsep dasar jaringan computer ……………………………… 13 2.3. Konsep dasar TCP/ IP ………………………………………… 14 2.3.1 TCP(Transmission Control Protokol) …………………………. 15 2.3.2 IP (Internet Protokol) ………………………………………….. 15 2.4. Layer TCP/IP ………………………………………………….. 16 2.5. TCP Port ………………………………………………………. 18 2.6. Protokol Yahoo Messenger (YM) …………………………….. 19 2.7. Struktur Paket Yahoo …………………………………………. 20 2.8. Lipcap …………………………………………………………. 44 2.9. Sniffing ………………………………………………………… 46
xiv
2.10. Shell ……………………………………………………………. 47 2.10.1 Macam-macam Shell ………………………………………….. 48 2.11. Bahasa Pemrograman C ……………………………………….. 49 2.11.1 Struktur program Bahasa C ……………………………………. 50 2.11.2 Proses pembuatan Bahasa C …………………………………… 52 2.11.3 Bahasa Pemrograman C dalam Linux/Unix …………………… 53 III. PERANCANGAN SISTEM 3.1 Analisa Sistem………………………………………………….. 57 3.2 Perancangan Sistem ……………………………………………. 57 3.3 Konfigurasi Jaringan …………………………………………… 58 3.4 Perancangan Perangkat Lunak …………………………………. 59 3.4.1 Sistem Utama …………………………………………………… 59 3.4.2 Proses pada Sistem Utama………………………………………. 62 3.4.3 Flowcart Proses yang Berjalan pada Sistem Utama …….……... 64 3.5 Perancangan Perangkat Keras …………………………………... 78 IV. IMPLEMENTASI SISTEM 4.1 Lingkungan Implementasi ………………………………………. 79 4.1.1 Spesifikasi Perangkat Lunak……………………………………. 79 4.1.2 Spesifikasi Perangkat Keras …………………………………….. 80 4.2 Karakteristik Pengguna …………………………………………. 80 4.3 Implementasi Program Sniffing ………………………………… 81 4.3.1 Proses Menampilkan Menu Utama di Layar …………………… 81 4.3.2 Pengecekan device yang tersedia ……………………………….. 85 4.3.3 Proses pembacaan penginputan data pada program utama ……... 86 4.3.4 Proses Pengcapturan data ………………………………………. 89 4.3.5 Menampilkan data ke layar ataupun dalam bentuk file ………… 91 4.4 Implementasi Jaringan ………………………………………….. 94 4.5 Proses kompilasi jaringan ……………………………………….. 94 4.6 Penggunaan Program sniffing …………………………………… 98 V. ANALISA HASIL 5.1 Hasil uji coba program …………………………………………… 99 5.2 Kelebihan dan Kekurangan Program …………………………….. 104 5.2.1 Kelebihan ………………………………………..………………. 104 5.2.2 Kelemahan ……………………………….……………………… 105 5.3 Analisis Bahasa Pemrograman …………………………………. 106 VI. KESIMPULAN dan SARAN 6.1 Kesimpulan ……………………………………………………… 107 6.2 Saran …………………………………………………………….. 108 Daftar Pustaka …………………………………………………………..
xv
DAFTAR GAMBAR
Gambar 2.1 Layer TCP/ IP …………………………………………… 16
Gambar 2.2 Paket Yahoo Messenger ………………………………… 20
Gambar 2.3 Generic Header Yahoo Messenger ………………………. 20
Gambar 2.4 Data field Struktur Yahoo ………………………………. 21
Gambar 2.5 Yahoo Paket Reference …………………………………. 21
Gambar 2.6 Sequence Sign-In ……………………………………….. 22
Gambar 2.7 Yahoo! Verifikasi ke Server ……………………………. 23
Gambar 2.8 Yahoo! Verifikasi dari Server ………………………….. 23
Gambar 2.9 Yahoo! Otorisasi ke Server …………………………….. 23
Gambar 2.10 Yahoo! Otorisasi dari Server …………………………….. 24
Gambar 2.11 Yahoo! Respon otorisasi ke Server ……………………… 24
Gambar 2.12 Yahoo! Buddy List Dari Server …………………………. 26
Gambar 2.13 IM Terkirim ……………………………………………… 28
Gambar 2.14 IM Diterima ……………………………………………... 28
Gambar 2.15 Transfer File P2P Permintaan …………………………… 29
Gambar 2.16 Permintaan Transfer File ……………………………….. 30
Gambar 2.17 Konfigurasi Jaringan Sniffing…….……………………… 47
Gambar 2.18 Struktur Dasar Program C ………………………………. 51
Gambar 2.19 Proses Pembuatan Program C …………………………… 52
Gambar 3.1 Konfigurasi Jaringan …………………………………….. 58
Gambar 3.4 Flowcart Sistem Utama ………………………………….. 61
Gambar 3.5 Flowcart Proses Main.c ………………………………….. 64
xvi
Gambar 3.6 Flowcart Print Usage ……………………………………... 65
Gambar 3.7 Flowcart Switch ………………………………………….. 67
Gambar 3.8 Flowcart Create Flow State ……………………………… 68
Gambar 3.9 Flowcart Open File ………………………………………. 69
Gambar 3.10 Flowcart Close File ………………………………………. 70
Gambar 3.11 Flowcart Proses TCP …………………………………….. 71
Gambar 3.12 Flowcart Proses IP ……………………………………….. 72
Gambar 3.13 Flowcart Store Paket …………………………………….. 73
Gambar 3.14 Flowcart Print Paket ……………………………………... 74
Gambar 3.15 Flowcart DLT_ETHERNET ……………………………... 75
Gambar 3.16 Flowcart DLT_PPP ………………………………………. 76
Gambar 3.16 Flowcart DLT_NULL ……………………………………. 77
Gambar 4.1 Implementasi Konfigurasi Jaringan ……………………… 94
Gambar 4.2 Sebelum Dilakukan Konfigurasi …………………………. 96
Gambar 4.3 Setelah Dilakukan Konfigurasi …………………………… 97
Gambar 5.1 Tampilan Awal ………….………………………………. 99
Gambar 5.2 Output Yang Hanya Ditampilkan di Konsol……………. 100
Gambar 5.3 Sebelum Dieksekusi ……………………………………. 101
Gambar 5.4 Setelah dieksekusi ……………………………………… 102
Gambar 5.5 Isi Hasil Simpan File dilihat Menggunakan MC ……….. 103
Gambar 5.6 Traffick pada Interface …………………………………. 104
Dimana input ‘1’ berarti menjalankan program ‘tidak’, dimana ‘tidak’
tersebut berisi sederetan perintah eksekusi program snifit, dengan
option –c yang berarti hanya menampilkan di konsol dengan interface
yang di capture adalah interface eth1 (-i eth1), dengan batasan
protokol Yahoo Messenger (grep YMSG). Dikarenakan progam ini
bila dijalankan secara default akan menyimpan semua yang tercapture
dalam bentuk file, maka bila input angka ‘2’ yang berarti menjalankan
program ‘iya’ dimana ‘iya’ berisi sederetan perintah untuk
menjalankan program snifit secara default dengan batasan protokol
Yahoo Messenger (grep YMSG). Bila input angka ‘3’ berarti
menjalankan program ‘semua’ dimana ‘semua’ itu berisi perintah
menjalankan program snifit secara default tanpa di simpan , dengan
mengcapture semua port. Sedangkan bila input merupakan angka ‘4’
maka program akan melakukan perintah exit atau keluar dari program.
Agar script tersebut dapat langsung di eksekusi, penulis melakukan
perubahan permission access pada script tersebut. Adapun perintah
yang dilakukan dengan perintah :
root@ns1:/home/yeyen# chmod 755 intip
dan untuk menjalankan script tersebut penulis tinggal mengetikkan
root@ns1:~# /home/yeyen/intip
85
Adapun hasil eksekusi program shell adalah sebagai berikut:
Program sniffing sederhana by florentina puri cahyani 1.melihat pada interface default tanpa disimpan 2.melihat pada interface default dengan disimpan 3.melihat semua trafic pada interface tanpa disimpan 4.keluar Masukkan pilihan:
4.3.2 Pengecekan Device yang Tersedia
Dapat di lihat pada listing program 4.4 di bawah ini
/* melakukan pengecekan root previllege*/
if (infile != NULL) {
setuid(getuid());
/* membuka file capture */
if ((pd = pcap_open_offline(infile, error)) == NULL)
die("%s", error);
/* mencoba mencari network device jika tidak ada device yang
ditunjuk */
if (device == NULL)
if ((device = pcap_lookupdev(error)) == NULL)
die("%s", error);
/* memastikan device dapat di buka */
if ((pd = pcap_open_live(device, SNAPLEN, !no_promisc, 1000,
error)) == NULL)
die("%s", error);
/* menutup root privileges */
setuid(getuid());
/* mengambil handler untuk semacam paket */
dlt = pcap_datalink(pd);
86
handler = find_handler(dlt, device);
}
Listing 4.4 Pengecekan Device
4.3.3 Proses Pembacaan Penginputan Data pada Program Utama
Pada sub bab ini, penulis akan membahas beberapa fungsi untuk penginputan
data pada program utama. Terlihat pada listing 4.5
#define __MAIN_C__ #include "snifit.h" int debug_level = DEFAULT_DEBUG_LEVEL; int no_promisc = 0; int bytes_per_flow = 0; int max_flows = 0; int max_desired_fds = 0; int console_only = 0; int strip_nonprint = 0; char error[PCAP_ERRBUF_SIZE]; void print_usage(char *progname) { fprintf(stderr, "%s version %s by florentina puri\n\n", PACKAGE, VERSION); fprintf(stderr, "usage: %s [-ch ", progname); fprintf(stderr, " [-i iface][expression]\n\n"); fprintf(stderr, " -c: console print only \n"); fprintf(stderr, " -h: print this help message\n"); fprintf(stderr, " -s: strip non-printable characters (change to '.')\n"); fprintf(stderr, " -i: network interface on which to listen\n"); } RETSIGTYPE terminate(int sig) { DEBUG(1) ("terminating"); exit(0); /* libpcap untuk mengakhiri */ }
87
int main(int argc, char *argv[]) { extern int optind; extern int opterr; extern int optopt; extern char *optarg; int arg, dlt, user_expression = 0; int need_usage = 0; char *device = NULL; char *infile = NULL; char *expression = NULL; pcap_t *pd; struct bpf_program fcode; pcap_handler handler; init_debug(argv); opterr = 0; while ((arg = getopt(argc, argv, "b:c:hi:s")) != EOF) { switch (arg) { case 'b': if ((bytes_per_flow = atoi(optarg)) < 0) { DEBUG(1) ("warning: invalid value '%s' used with -b ignored", optarg); bytes_per_flow = 0; } else { DEBUG(10) ("capturing max of %d bytes per traffic", bytes_per_flow); } break; case 'c': console_only = 1; DEBUG(10) ("printing packets to console only"); /* fall through */ case 's': strip_nonprint = 1; DEBUG(10) ("converting non-printable characters to '.'"); break; case 'h': print_usage(argv[0]); exit(0); break; case 'i': device = optarg; break; default: DEBUG(1) ("error: unrecognized switch '%c'", optopt); need_usage = 1; break; } } /* mencetak help dan keluar jika terdapat kesalahan dalam argumen */
88
if (need_usage) { print_usage(argv[0]); exit(1); }
Listing 4.5 Penginputan Data
Untuk mendefinisikan nilai-nilai konstan adalah dengan menggunakan kata
kunci case. Dalam melakukan pemilihan dengan menggunakan statement
switch,harus menambahkan statement break pada setiap nilai yang kita
definisikan.
Dimana ‘c’ mengartikan bahwa console_only diaktifkan, karena secara
default program nilai console_only adalah ‘0’(int console_only = 0;) yang
berarti tidak diaktifkan.
Sedangkan ‘i’ mengartikan interface yang dipergunakan. Secara default
interface bernilai null (char *device = NULL;) sedangkan nilai ‘s’ berarti
akan merubah karakter yang tidak terdefinisi ke dalam bentuk titik(.) dengan
merubah nilai strip_nonprint menjadi 1 (strip_nonprint = 1). Dapat dilihat
pada listing program 4.6 dibawah ini:
/* merubah semua karakter yang tidak terdifinisi ke karakter (.)*/ u_char *do_strip_nonprint(const u_char *data, u_int32_t length) { static u_char buf[SNAPLEN]; u_char *write_ptr; write_ptr = buf; while (length) { if (isprint(*data) || (*data == '\n') || (*data == '\r')) *write_ptr = *data; else *write_ptr = '.';
89
write_ptr++; data++; length--;
}
Listing 4.6. Konversi Karakter Titik (.)
Nilai ‘h’ menunjukkan akan ditampilkannya help penggunaan program ini.
Sedangkan bila input yang dimasukkan bernilai salah atau di luar yang telah
di tentukan, maka program akan keluar dan sekaligus menampilkan help
atau cara penggunaan dari program ini. Terlihat pada listing 4.7 :
……..
if (need_usage) {
print_usage(argv[0]);
exit(1);
………
Listing 4.7 Menampilkan Help
4.3.4 Proses Pengcapturan Data
Dapat di lihat pada listening program di bawah ini;
Program akan meng-capture data chatting pada device. Dalam
implementasinya adalah eth1. jika infile==NULL maka akan melakukan
listening pada device.
Terlihat pada listing 4.8:
/* start listening! */
90
if (infile == NULL)
DEBUG(1) ("listening on %s", device);
if (pcap_loop(pd, -1, handler, NULL) < 0)
die("%s", pcap_geterr(pd));
return 0;
Listing 4.8 Start Listening Device
Jika terdapat data yang masuk, dan diterima sebagai IP datagram, maka akan
menjalankan program di bawah ini, listing 4.9,
void process_ip(const u_char *data, u_int32_t caplen) { const struct ip *ip_header = (struct ip *) data; u_int ip_header_len; u_int ip_total_len; /* memastikan bahwa paket memiliki panjang paket minimal IP header */ if (caplen < sizeof(struct ip)) { DEBUG(6) ("received truncated IP datagram!"); return; } /* memantau traffic di TCP */ if (ip_header->ip_p != IPPROTO_TCP) { DEBUG(50) ("got non-TCP frame -- IP proto %d", ip_header->ip_p); return; } /* melakukan cek dan melihat data yang lewat. Disini harus menggunakan ip_total_len karena kita mungkin membutuhkan pengcapturan byte untuk melakukan pengukuran besaran paket */ ip_total_len = ntohs(ip_header->ip_len); if (caplen < ip_total_len) { DEBUG(6) ("warning: captured only %ld bytes of %ld-byte IP datagram", (long) caplen, (long) ip_total_len); } /* menampilkan keluaran dimana IP header berakhir */ ip_header_len = ip_header->ip_hl * 4; /* melakukan pengecekan bahwa memang ada data */
Sedangkan untuk melakukan penyimpanan hasil capture ke dalam bentuk file,
penulis melakukan beberapa tahapan, dapat di lihat pada listing program 4.12
di bawah ini:
/* menyimpan isi dari paket ke dalam suatu tempat dalam bentuk file*/ void store_packet(flow_t flow, const u_char *data, u_int32_t length, u_int32_t seq) { flow_state_t *state; tcp_seq offset; long fpos; /* melihat jika kita telah memiliki state mengenai alur ini, jika tidak ada maka dibuat state */ if ((state = find_flow_state(flow)) == NULL) { state = create_flow_state(flow, seq); } /* jika telah selesai mengumpulkan flow, maka ulangi kembali dari awal*/ if (IS_SET(state->flags, FLOW_FINISHED)) return; /* melakukan kalkulasi offset di dalam flow akan mengendalikan seq num * wrapping dengan tepat karena tcp_seq merupakan ukuran yang benar */ offset = seq - state->isn; /* menentukan maksimal besaran setiap file sebesar 64K*/
93
if (offset >= 0xffff0000) { DEBUG(2) ("dropped packet with seq < isn on %s", flow_filename(flow)); return; } /* menolak paket jika paket diluar range byte yang kita tentukan untuk menerima paket */ if (bytes_per_flow && (offset > bytes_per_flow)) return; /* mengurangi jarak jika itu berjalan diluar nomer dari bytes per flow */ if (bytes_per_flow && (offset + length > bytes_per_flow)) { SET_BIT(state->flags, FLOW_FINISHED); length = bytes_per_flow - offset; } /* jika tujuan dari file tidak benar maka dapat mencoba disana*/ if (offset != state->pos) { fpos = offset; FSETPOS(state->fp, &fpos); } /* menulis data kedalam file*/ DEBUG(25) ("%s: writing %ld bytes @%ld", flow_filename(state->flow), (long) length, (long) offset); if (fwrite(data, length, 1, state->fp) != 1) { /* DEBUG statement itu menggunakan passes strerrror() sebagai argumen, tetapi SunOS 4.1.3 kelihatannya tidak mempunyai strerror. */ if (debug_level >= 1) { DEBUG(1) ("write to %s failed: ", flow_filename(state->flow)); perror(""); } } fflush(state->fp); /* mengingat posisi terakhir, untuk melakukan penulisan selanjutnya*/ state->pos = offset + length; if (IS_SET(state->flags, FLOW_FINISHED)) { DEBUG(5) ("%s: stopping capture", flow_filename(state->flow)); close_file(state); }
Listing 4.12 Store Paket
94
4.4 Implementasi Jaringan
Pada tahap ini menjelaskan implementasi jaringan untuk melakukan uji coba
program sniffing. Terlihat pada gambar 4.1:
Laptop windows XP10.10.10.2
Laptop windows XP
Server linux slackware10.10.10.1
Router utamaAP hotspot
10.10.10.0/24
192.168.0.0/24
192.168.10.0/24
100.100.10.0/24
ISP
58.145.171.23
Gambar 4.1 Konfigurasi Jaringan
4.5 Proses Kompilasi Program
Pada sub bab kali ini penulis akan menjelaskan proses kompilasi program.
Dikarenakan program ini memiliki beberapa fungsi, dimana tiap-tiap fungsi
dibuat dengan nama file yang berbeda-beda, maka penulis dalam melakukan
kompilasi menggunakan source code kompilasi yang banyak digunakan pada
program-program GNU GPL.
Source code yang penulis ambil adalah file Makefile, Makefile.am,
Makefile.in yang berfungsi sebagai program untuk membuat secara otomatis
95
file make, merubah file *.c menjadi *.o. atau bila dibuat secara manual
penulisannya seperti #gcc –o tcpip.o tcp.c snifit.h conf.h sysdep.h
Yang berarti untuk membuat file tcpip.o merupakan hasil dari gabungan
beberapa program.
Disamping source Makefile, penulis juga mengambil source code configure,
acconfig.h, acinclude.m4, aclocal.m4 dimana configure merupakan source
code untuk melakukan konfigurasi awal program, dimana dalam konfigurasi
awal tersebut dilakukan pengecekan file-file atau library yang dibutuhkan
oleh program snifit, misalnya pengecekan file libpcap.
Dikarenakan penulis melakukan beberapa pengambilan source code dari
GNU GPL, maka disertakan pula lisensi dari GPL yang penulis ambil dalam
bentuk file COPYING.
Untuk melakukan instalasi program ini, pertama kali penulis melakukan
konfigurasi program dengan sistem dengan peletakan program tersebut
nantinya berada pada folder /home/robby/script/.
# configure --prefix=/home/robby/script/
Dalam gambar di bawah terlihat isi file sebelum dilakukan konfigurasi dan
setelah dilakukan konfigurasi
Sebelum dilakukan konfigurasi terlihat pada gambar 4.2:
96
Gambar 4.2. Sebelum dilakukan Konfigurasi
97
Setelah dilakukan konfigurasi terlihat pada gambar 4.3 :
Gambar 4.3. Setelah dilakukan Konfigurasi
Dalam gambar di atas dapat dilihat beberapa penambahan file berekstensi .o
Setelah melakukan konfigurasi, penulis melakukan kompilasi dan instalasi
#make
#make install
Lalu membuka folder /home/robby/script/
98
Di situ terdapat dua folder tambahan yaitu folder /bin/ dan folder /man/ dapat
di lihat pada gambar di bawah ini:
Dikarenakan hasil dari instalasi program ini under text, yang dalam
pengertiannya bila penulis menjalankan program harus dengan sederet
perintah, maka penulis mencoba untuk menyederhanakan sehingga hanya
dengan menekan tombol tertentu sudah mewakili perintah yang di sebut di
atas. Untuk lebih jelasnya, akan di bahas pada Bab V.
4.6 Penggunaan Program Sniffing
Program ini merupakan program berbasis linux, dan dalam penerapannya,
program ini melakukan perekaman traffic pada jaringan, termasuk salah
satunya perekaman paket data Yahoo Messenger. Dalam implementasi ke
dalam jaringan, pengguna meletakkan program sniffing pada komputer server
berbasis linux slackware. Data yang tercapture hanya data chatting Yahoo
Messenger yang terdapat pada satu jaringan saja. Pengguna menggunakan
komputer klien untuk uji coba program( sebagai korban), dalam hal ini
komputer klien yang digunakan adalah komputer berbasis windows xp.
99
BAB V
ANALISIS HASIL
5.1 Hasil uji coba program
Untuk mengetahui hasil kerja dari perangkat lunak ini secara rinci serta
untuk mengetahui tingkat keberhasilan penggunaannya, maka telah diuji
cobakan penerapannya secara langsung pada suatu area jaringan komputer
lokal di rumah tinggal dari penulis. Dengan melakukan pemantauan dari 1
komputer yang diposisikan sebagai server dan melakukan inisialisasi 1 laptop
client sebagai korban. Adapun hasil eksekusi program shell adalah sebagai
berikut, terlihat pada gambar 5.1 :
Gambar 5.1 Tampilan awal
Dalam output diatas pengguna diberikan pilihan untuk dapat menetukan
sendiri pilihan 1,2,3,atau 4. Dimana pengguna hanya tinggal mengetikan saja
100
angka pilihan tersebut, maka akan tertampil output sesuai keterangan tiap-tiap
angka. Program shell sederhana ini sangat membantu pengguna dalam
menjalankan program, karena pengguna tidak perlu mengetikkan perintah
secara manual untuk mengeksekusi program.
Pada saat pengguna memilih pilihan 1 maka akan menghasilkan output
sebagai berikut, terlihat pada gambar 5.2 :
Gambar 5.2. Output hanya ditampilkan di konsol
Dalam tampilan output diatas, meng-capture data dalam Yahoo Messenger
yang terdapat dalam satu jaringan. Output yang tertampil hanya terbatas IP, user
ID, dan pesan yang terdapat dalam chatting. Selain itu data yang lewat akan
dikonversi sebagai karakter titik(.). Dalam hasil diatas protokol YMSG yang ter-
101
capture adalah 5050. Dalam pengujian yang melakukan aktivitas chatting adalah
flo_cute_blue dengan iyus_slam.
Dimana :
Id flo_cute_blue memiliki IP address 10.10.10.2
Id iyus_slam memiliki IP address 68.180.217.13 dengan protocol
YMSG 5050
Isi data chatting diantaranya adalah “coba km ketik kalimat rada
panjang”
Pada saat pengguna memilih pilihan 2 maka akan menghasilkan output yang
terlihat pada gambar 5.3 dan gambar 5.4 :
Sebelum dieksekusi terlihat pada gambar 5.3:
Gambar 5.3. sebelum dieksekusi
102
Setelah dieksekusi pada gambar 5.4:
Gambar 5.4. Setelah dieksekusi
File yang tersimpan berada pada directory kerja pada saat penulis
menjalankan program tersebut. Seperti gambar 5.4 di atas, karena penulis
menjalankan program snifit pada directory kerja /home/yeyen/, maka hasil output
yang disimpan dalam bentuk file berada pada directory /home/yeyen/.
Nama file yang disimpan dalam bentuk IP. Adapun urutan penulisannya
adalah [IP asal]:[port asal]:[ip tujuan]:[port tujuan]. File yang tersimpan
merupakan file universal, yang dimaksud universal di sini adalah, file yang dapat
dibuka menggunakan editor apapun di dalam linux. Penulis mencoba membuka
file hasil pengcapturan menggunakan editor vi, mcedit, maupun cat tetap dapat
dibaca. Dari hasil data yang tersimpan tersebut yang merupakan hasil capture
Yahoo Messenger adalah dengan protokol 5050.
103
Melihat isi hasil simpan file pada gambar 5.5.
Gambar 5.5 Isi hasil simpan file dilihat menggunakan mc
104
Pada saat pengguna memilih pilihan 3 maka akan menghasilkan output sebagai
berikut, terlihat pada gambar 5.6.
Gambar 5.6. Trafick pada Interface
5.2 Kelebihan dan Kekurangan Program
Setelah melakukan uji coba program dalam jaringan yang sudah dibuat, maka
program sniffing ini mempunyai beberapa kelemahan dan kelebihan.
5.2.1 Kelebihan
Beberapa kelebihan program sniffing ini adalah :
1. Mampu meng-capture data yang dikirim maupun yang diterima
oleh client dalam aktivitas chatting Yahoo Messenger.
2. File yang tersimpan disimpan menurut alamat IP dan port masing-
masing client sehingga memudahkan dalam melakukan pencarian.
105
3. untuk memudahkan pembacaan hasil dari sniffing, data yang tidak
terdefinisi di ubah menjadi nilai nol, dengan di konversi ke bentuk
titik(.)
4. program dapat dikembangkan menjadi sniffing seluruh paket data
yang lewat dalam jaringan, karena secara default program ini
melakukan pencacatan data yang lewat, dan melakukan filtering
protocol YMSG sehingga data yang ditampikan merupakan data
yahoo messenger.
5.2.2 Kelemahan
Beberapa kelemahan program sniffing ini adalah :
1. Program tidak berdiri sendiri, saling ketergantungan satu program
dengan yang lainnya, dan ketergantungan dengan paket-paket yang
terdapat di linux. Salah satu contohnya, program dapat di
konfigurasi, di compile dan di install bila dalam sistem memiliki
fungsi pcap dan librarynya.
2. Program hanya dapat berjalan pada satu interface. Dengan asumsi
satu interface terdiri dari satu jaringan(satu network). Dapat
melakukan sniffing pada 2-3 network, bila network tersebut berada
dalam satu interface(NIC).
3. Hanya dapat meng-capture IP asal,IP tujuan serta ID asal,ID tujuan
dan data percakapan yang terjadi, tidak dapat membaca data yang
terenskripsi.
106
5.3 Analisis Bahasa Pemrograman
Penulis menggunakan 2 bahasa pemrograman dalam membuat program
sniffing ini.
1. Yang pertama, penulis menggunakan BOURNE SHELL(/bin/sh) untuk
menampilkan menu utama di layar. Karena bertingkah laku seperti
interpreter maka statement yang ada pada script akan langsung di
translasikan pada instruksi executable dan menyebabkannya untuk
langsung menjalankan executable tersebut. Setelah menulis shell script,
maka akan memberitahukan pada OS bahwa program dapat dijalankan.
Hal ini dapat dilakukan dengan menggunakan perintah chmod untuk
merubah mode dari file.
2. Yang kedua, penulis menggunakan bahasa pemrograman C.
Bahasa C adalah bahasa pemrograman yang sangat cocok untuk dipelajari
bagi yang ingin mengetahui lebih dalam tentang Linux dan Sistem Operasi
Unix lainnya yang sebagian besar dibuat dengan bahasa C. Linux sendiri
merupakan sistem operasi yang langsung menyediakan bahasa
pemrograman C pada saat instalasi.
107
BAB VI
KESIMPULAN DAN SARAN
Pada akhir penulisan skripsi ini dicantumkan beberapa kesimpulan dan saran
dari hal-hal yang terkait dengan program sniffing yang penulis buat.
6.1 Kesimpulan
Dari implementasi pembuatan program sniffing, maka dari hasil uji coba dapat
disimpulkan bahwa:
1. Program sniffing dapat merekam data chatting Yahoo Messenger
dalam satu interface.
2. Program sniffing dapat menyimpan hasil capture berdasarkan nomor
IP.
3. Program sniffing dapat meng-capture dapat merekam aktivitas
chatting mulai dari ID asal dan ID tujuan, IP asal dan IP tujuan, data
percakapan dari kedua belah pihak, selama data tersebut tidak
terenskripsi.
4. Program ini dapat digunakan untuk kepentingan penelusuran apabila
terjadi tindak kejahatan yang dikomunikasikan melalui media
chatting, dalam hal ini Yahoo Messenger.
108
6.2 Saran
Saran yang dapat diberikan penulis dalam pengembangan program sniffing ini
adalah sebagai berikut :
1. Penyimpanan hasil capture data sebaiknya disimpan lebih terstruktur agar
memudahkan bagi pengguna untuk mencari.
2. Pada hasil capture pada konsol sebelum proses simpan, sebaiknya
dibedakan dengan warna antara mana IP, mana ID, atau data percakapan.
Sehingga lebih memudahkan dalam pembacaan.
3. Penyimpanan hasil capture paket dapat dikembangkan dengan
menggunakan database seperti MySQL, SQL server, atau database lainnya
agar hasil capture paket dapat terorganisir dengan lebih baik.
DAFTAR PUSTAKA
Hari Sudibyo, Mandahadi, Langkah Mudah: Menguasai Linux Slackware 10,
Penerbit Andi, Yogyakarta, 2005.
Yuliardi, Rofiq, Buku Pintar Linux: BASH Scripting untuk Administrasi Sistem
Linux, PT Elex Media Komputindo, Jakarta, 2003.
I Made Joni, Budi Raharjo, Pemrograman C dan Impelementasinya, Informatika
Bandung, Bandung, 2006.
Kadir, Abdul, Pengenalan Unix dan Linux, Penerbit Andi, Yogyakarta, 2002.
Jhony H. Sembiring, Jaringan Komputer Berbasis Linux, PT Elex Media