Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
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
xvii
DAFTAR TABEL
Table 2.1 Contoh Port…………………............................................. 19
Table 2.2 Kata Kunci Bahasa C ……………………………………. 50
xviii
DAFTAR LISTING
Listing 4.1 Intip ……………………………………………………… 82
Listing 4.2 Fungsi Case ……………………………………………… 83
Listing 4.3 Perintah Eksekusi Snifit …………………………………. 83
Listing 4.4 Pengecekan Device ……………………………………… 86
Listing 4.5 Penginputan Data ………………………………………... 88
Listing 4.6 Konversi Karakter Titik (.) ………………………………. 89
Listing 4.7 Menampilkan Help ………………………………………. 89
Listing 4.8 Start Listening Device …………………………………… 90
Listing 4.9 Proses IP dan TCP ………………………………………. 91
Listing 4.10 Struktur Flow ……………………………………………. 92
Listing 4.11 Print Paket ……………………………………………….. 93
Listing 4.12 Store Paket ………………………………………………. 93
1
BAB 1
PENDAHULUAN
1.1. Latar Belakang Masalah
Saat ini kemajuan tegnologi sudah berkembang dengan pesat, khususnya
pada perkembangan dunia informasi. Diantaranya adalah dalam bidang
komputerisasi dan informasi. Salah satu cara yang mudah dilakukan untuk
mendapat informasi adalah melalui media internet. Hampir setiap pengguna
internet tidak asing dengan istilah chatting. Latar belakang di buatnya program ini
karena penulis berfikir bagaimana melihat suatu traffic data yang berada dalam
suatu jaringan komputer, agar data yang lewat tersebut dapat
dibaca/diterjemahkan dan bila memungkinkan dapat terekam, sehingga bila ada
suatu traffic data yang dianggap merugikan pihak lain (mis : carding, flooding dll)
dapat di ketahui. (sesuai ketentuan yang tertuang dalam peraturan pemerintah PP
no 52 tahun 2000 ps. 16 tentang penyelenggaraan telekomunikasi).
Program ini pada prinsipnya sama dengan program carnivore yang berubah nama
menjadi DCS1000, yaitu program sniffing yang di pergunakan oleh FBI (Federal
Bereau of Investigation) , tcpdump, snort maupun program sniffing yang lainnya.
Program yang penulis buat menggunakan bahasa pemrograman yang telah
familiar dengan linux, yaitu bahasa C.
Pada saat program ini di jalankan, program ini akan melihat dan
menganalisa semua paket data (berbasis TCP/IP) yang lewat dalam suatu jaringan
komputer(internet) dan pada saat paket data yang diinginkan terdeteksi, program
2
ini akan merekam setiap data tersebut yang kemudian akan di tampilkan dalam
layar ataupun dalam bentuk file log. Program ini bekerja pada layer 3 (network)
dan 4(transport) pada OSI.
Dengan program yang di buat ini, diharapkan segala aktifitas yang
dilakukan user atau pengguna internet dalam suatu jaringan computer dapat
diketahui dan terekam, sehingga dapat dipergunakan sebagai salah satu perangkat
lunak Bantu (tool’s software) traffic analisis atau security system.
1.2. Rumusan Masalah
Dengan melihat permasalahan yang ada maka dalam tugas akhir ini
penulis dapat merumuskan masalah “Bagaimana cara meng-capture file atau data
trafic yang melalui jaringan komputer dan merekamnya terutama data chatting
dalam yahoo messenger (YM) dengan teknik sniffing?”
1.3. Batasan Masalah
Batasan masalah yang ada dalam penelitian ini :
1. Program ini dibuat menggunakan GCC (bahasa C di linux) dengan
menggunakan header standart GCC dengan tambahan beberapa
header yang disesuaikan kebutuhan sebagai penunjang program ini.
2. Program ini berjalan dengan mengguanaka library pcap pada linux
(libpcap). Penulis tidak mencoba untuk menggunakan pada
windows dengan pertimbangan untuk saat ini OS linux banyak
dipergunakan sebagai server dan router.
3
3. Program ini bila berjalan secara default, akan merekam semua
bentuk trafic yang melalui komputer yang diinstall program ini.
Tetapi penulis menitik beratkan pada sniffing/perekaman data
dengan metode filtering untuk menampilkan hanya data chattingan
(Yahoo Messenger) saja.
4. Dalam struktur jaringan penulis mencoba meletakkan di beberapa
posisi struktur jaringan. Yang penulis coba sniffing diletakkan pada
posisi workstation berbasis linux dan posisi router berbasis linux.
Tetapi untuk penulisan kali ini penulis menitik beratkan pada
komputer server berbasis linux
5. Operating System yang digunakan penulis adalah Slackware 12.0
1.4. Tujuan Penelitian
Tujuan dari dibuatnya program ini adalah
1. Membuat sebuah sistem aplikasi yang dapat memonitor dan merekam data
chatting (dalam hal ini pengiriman dan penerimaan pesan) dimaksudkan
agar dapat menghindari tindak kejahatan yang mungkin dapat dilakukan
melalui media ini. Data yang direkam dapat digunakan sebagai media
penelusuran jika tindak kejahatan terjadi.
2. Diharapkan segala aktivitas yang dilakukan user atau pengguna internet
dalam suatu jaringan komputer dapat diketahui dan terekam, sehingga
dapat dipergunakan sebagai salah satu perangkat lunak bantu (tool
software) trafic analisis atau security sistem.
4
1.5. Metodologi Penelitian
Dalam penyusunan Tugas Akhir ini, penulis menyelesaikan
masalah dengan langkah-langkah sebagai berikut :
1. Studi pustaka dan studi literatur, dengan cara mencari sumber, buku
yang berhubungan dengan objek yang diteliti. Meliputi :
a. Studi pustaka tentang bahasa pemrograman C pada linux (GCC),
penulis menggunakan GCC -4.1.2 dan Sistem Operasi Linux
berbasis Slackware.
b. Studi pustaka dan studi kasus pada jaringan komputer.
c. Studi pustaka port standart International (IANA) untuk melihat
port default yang digunakanoleh services Yahoo Messenger.
d. Studi pustaka mengenai services yang dijalankan dalam Yahoo
Messenger.
e. Studi literatur tentang teknik Sniffing.
f. Studi literatur tentang aktivitas chatting dalam Yahoo Messenger.
2. Pembuatan perangkat lunak, langkah-langkah yang akan dilakukan
adalah :
a. Mempelajari metode Sniffing dalam jaringan komputer,
menterjemahkan data paket yang ter-capture dalam program
sniffing yang telah ada, Bahasa Pemrograman C, dan Sistem
Operasi yang bekerja yaitu Linux Slackware.
b. Menerapkan permasalahan yang ada dalam bahasa pemrograman.
5
c. Perancangan sistem secara umum, perangkat keras dan perangkat
lunak yang akan digunakan, dan pembuatan program sesuai dengan
perancangan sistem.
3. Uji coba
Pengujian dalam meng-capture data chatting pada port 5000-5050
1.6. Sistematika Penulisan
Sistematika penulisan Tugas Akhir ini akan dibagi menjadi enam
bab dengan garis besar sebagai berikut:
BAB I. PENDAHULUAN
Bab ini berisi latar belakang masalah, batasan masalah, tujuan
penelitian, rumusan masalah, metodologi penelitian yang dipergunakan,
serta sistematika penulisan Tugas Akhir.
BAB II. LANDASAN TEORI
Bab ini membahas tentang uraian landasan teori yang
dipergunakan penulis dalam merancang sistem yang akan dibuat, meliputi
bahasa pemrograman dan teknik sniffing yang akan digunakan dalam
merekam data.
BAB III. PERANCANGAN SISTEM
Bab ini berisi pembahasan mengenai perancangan sistem yang
akan dibangun.
6
BAB IV. IMPLEMENTASI
Bab ini berisi penjelasan mengenai penerapan rancangan yang
telah dibuat kedalam suatu program dengan desain yang telah ditetapkan
pada tahap perancangan.
BAB V. ANALISIS HASIL
Bab ini penjelasan hasil pengujian dan berisi jawaban atas
permasalahan yang dinyatakan pada bagian.
BAB VI. KESIMPULAN dan SARAN
Bab ini berisi kesimpulan yang dapat diambil pembahasan secara
keseluruhan dan saran-saran untuk pengembangan selanjutnya.
7
BAB II
LANDASAN TEORI
2.1 Sejarah internet
Sejarah internet bermula ketika beroperasinya jaringan ARPANET pada
tahun 1969. Jaringan ARPANET pertama tersebut hanya menghubungkan empat
host komputer dan besar bandwidth-nya hanya 50 kbps.
Untuk lebih jelasnya, berikut ini diuraikan timeline perkembangan Internet
sejak awal berdirinya sampai dekade 90-an :
1967
• Lawrence G. Robert dari Massachusetts Institute of Technology (MIT)
mempresentasikan rencana pembangunan ARPANET pada sebuah
pertemuan di Ann Arbor, Michigan. Ide Roberts adalah untuk
menghubungkan beberapa komputer melalui jaringan telepon(dial up).
• Pada pertemuan Association for Computing Machine Symposium on
Operating Priciple di Galtingburg, Tennessee, Lawrence G. Roberts
mempresentasikan sebuah paper berjudul “Multiple Computer Networks
and Intercomputer Communication” yang menghasilkan standar untuk
desain jaringan ARPANET.
1968
• Proposal ARPANET dibuat untuk memulai proyek tersebut.
• University of California at Los Angeles (UCLA) mendapat kontrak
Network Measurement Center pada bulan oktober tahun lalu.
8
• Bolt Beranek and Newman, Inc. (BNN) mendapat kontrak senilai 1 juta
dolar untuk membangun Interface Message Processors (IMPs).
1969
• Jaringan komputer ARPANET pertama selesai dibangun. Komputer (host)
yang terhubung hanya empat buah. Bandwidth-nya hanya sebesar 50 kbps
yang disediakan oleh AT&T. Host yang terhubung adalah host 1 di
UCLA, host 2 pada Stanford Research Institute (SRI), host 3 ada
University of California Santa Barbara (UCSB), dan host 4 pada
University of Utah. Charley Kline dari UCLA kemudian mengirimkan
paket data pertama, hasilnya komputer crash, tetapi kemudian dapat
diperbaiki oleh para programer dari BNN.
1970
• Host ARPANET mulai menggunakan NCP (Network Control Protocol),
sebagai protokol komunikasi antar-host.
1971
• Jaringan ARPANET berkembang menjadi 15 node dan 23 host, yang
menghubungkan komputer-komputer di University of California at Santa
Barbara and Los Angeles, Stanfoed Research Institute, University of Utah,
Bolt Beranek and Newman, Inc. (BNN), MIT, RAND, System Development
Corporation, Harvard, Lincoln Lab, UIU(C), CWRU, Carnegie-Mellon
University, NASA/Ames.
• Ray Tomlinson dari BNN berhasil menciptakan program email yang dapat
mengirimkan pesan antar komputer pada jaringan ARPANET tersebut.
9
1972
• Ray Tomlinson menyempurnakan program email yang dibuatnya dan
kemudian email menjadi sangat populer.
• Louis Pouzin, seorang ilmuwan komputer asal Perancis, membangun
“CYCLADES” sebuah jaringan komputer mirip ARPANET.
1973
• ARPA diubah menjadi DARPA.
• ARPANET melakukan koneksi internasional pertama dengan jaringan
kompuetr di University College of London (Inggris) dan Royal
Establishment di Norwegia (NORSAR).
1974
• Vinton Cerf dan Bob Kahn mempublikasikan “A Protocol for Packet
Network Intercommunication”, yang merupakan cikal bakal lahirnya
protokol Transmission Control Protocol (TCP).
1975
• Steve Walker, seorang manager ARPA, membuat sebuah mailing list untuk
digunakan di kalangan anggota ARPA.
• Link Satelit ke Hawaii dan Inggris berhasil dibangun, dan percobaan
pengiriman paket data dari Stanford, BNN, dan UCL berhasil diterima di
Hawaii dan Inggris.
10
1979
• UNESET (newsgroup) diciptakan oleh Tom Truscott dan Jim Ellis.
Pengguna dari seluruh dunia bergabung pada grup diskusi ini untuk
mendiskusikan jaringan komputer, politik, topik diskusi lainnya.
1980
• Jaringan ARPANET berkembang meliputi 213 host, dengan rata-rata
pertambahan 1 host setiap 20 hari.
1982
• DCA (Defense Communication Agency) dan DARPA berhasil
menciptakan Transmission Control Protocol (TCP) dan Internet Protocol
(IP) sebagai protokol utama pada jaringan ARPANET. Protokol ini
kemudian dikenal dengan nama TCP/IP.
• Istilah “Internet” mulai dikenal. Istilah internet digunakan sebagai sebutan
untuk jaringan komputer yang menggunakan protokol TCP/IP sebagai
protokol utamanya.
1984
• Domain Name System (DNS) diperkenalkan sebagai cara untuk
mengidentifikasikan badan atau institusi yang mengeola suatu host. Enam
domain utama dikeluarkan, yaitu edu (education), gov (government), mil
(military), com (commercial), org (organization), dan net (network
resources).
11
1985
• Information Sciences Institute (ISI) di University of Southern California,
diberi kepercayaan mengelola root DNS (DNS utama).
• Tanggal 15 Maret 1985, symbolics.com tercatat sebagai domain pertama
yang didaftarkan ke root DNS. Domain-domain lainnya yang didaftarkan
antara lain cmu.edu, purdue.edu, rice.edu, ucla.edu, css.gov, mitre.org.
1986
• NSFNET dibangun sebagai backbone Internet utama dengan bandwidth 56
Kbps. Sejak saat itu, infrastruktur jaringan NSFNET menjadi tulang
punggung jaringan komputer di Amerika Serikat.
1987
• NSF bekerja sama dengan Merit Network Inc mengelola jaringan
ARPANET, dengan dukungan dari IBM dan MCI.
• Jumlah host internet melebihi 10.000.
1988
• Roberts Morris, berhasil menciptakan sebuah “Internet Worm” yaitu
sebuah program sejenis virus yang dapat memperbanyak diri sendiri di
Internet, akibatnya beban di Internet bertambah dengan sangat cepat dan
berhasil memacetkan sekitar 6000 host di seluruh dunia.
• Internet Relay Chat (IRC) diciptakan oleh Jorkko Oikarinen.
1989
• Jumlah host di Internet melebihi 100.000.
12
1991
• Wide Area Information Servers (WAIS) ditemukan oleh Brewster Kahle.
WAIS kemudian dioperasikan oleh Thinking Machines Corporation.
• Gopher diperkenalkan oleh Paul Lindner dan Mark P. McCahill dari
University of Minnesota. Dengan Gopher, pengguna Internet dapat
melakukan pencarian di Internet, hanya saja format yang didukung hanya
format text.
• Worl Wide Web (WWW) dilincurkan oleh CERN di Jenewa, Swiss.
Seorang peneliti Inggris bernama Tim Berner-Lee berhasil menciptakan
Hypertext Markup Language (HTML), yang menggunakan spesifik URL
(Uniform Resource Locators) sebagai alamat web.
1993
• InterNIC didirikan oleh NSF. InterNIC menyediakan beberapa layanan
Internet seperti pendaftaran domain (dikelola oleh Network Solutions
Inc.), direktori, dan service database (dikelola oleh AT&T)
• Mosaic, sebuah Intenet Browser yang dapat menghasilkan tampilan grafis
kepada penggunanaya diluncurkan pada tahun itu. Akibatnya traffic
WWW di Internet meningkat sampai 3416 kali lipat pada tahun ini.
1994
• NASA mendirikan NASA Reseach ans Education Network (NREN),
sebuah backbone Internet eksperimental yang menghubungkan lima Pusat
Riset NASA.
13
• MBONE audio multicast digunakan oleh kelompok musik Rolling Stones
pada tour musiknya.
• Yahoo!, sebuah search engine yang merupakan singkatan dari “Yet
Another Hierarchical Officious Oracle” didirikan oleh dua mahasiswa
Standford University bernama Jerry dan David Filo.
2.2 Konsep dasar jaringan komputer
Dalam beberapa tahun terakhir ini, tegnologi komputer telah berkembang
dengan pesat. Akibat perkembangan tegnologi yang sangat pesat ini, maka
teknologi satu dengan yang lain menjadi saling terkait. Perbedaan-perbedaan yang
terjadi dalam pengumpulan, pengiriman, penyimpanan dan pengolahan informasi
telah dapat diatasi. Dalam hal ini memungkinkan pengguna dapat memperoleh
informasi secara cepat dan akurat.
Sekarang ini, proses pengolahan data tidak lagi dilakukan secara terpisah,
khususnya setelah terjadi penggabungan antara tegnologi komputer sebagai
pengolah data dengan tegnologi komunikasi. Model komputer tunggal yang
melayani seluruh tugas-tugas komputasi suatu organisasi telah diganti oleh
sekumpulan komputer yang berjumlah banyak dan terpisah tetapi masih saling
berhubungan dalam melaksanakan tugasnya. Sistem ini disebut juga sebagai
Jaringan Komputer (Computer Network).
Jaringan komputer merupakan sekolompok komputer otonom yang saling
berhubungan antara satu dengan lainnya menggunakan protokol komunikasi
melalui media komunikasi sehingga dapat saling berbagi informasi, program-
14
program, penggunaan bersama perangkat keras. Selain itu jaringan komputer bisa
diartikan sebagai kumpulan sejumlah terminal komunikasi yang berada di
berbagai lokasi yang terdiri dari lebih satu komputer yang saling berhubungan. (
Andri Kristanto, 2003 ).
2.3 Konsep dasar TCP/IP
Protokol-protokol TCP/IP dikembangkan pada awal 1980-an, dan menjadi
protokol-protokol standart untuk ARPAnet pada tahun 1983. protokol-protokol
mengalami peningkatan popularitas di komunitas pemakai ketika TCP/IP
digabungkan menjadi versi 4.2 dari BSD ( Berkeley Standart Distribution) UNIX.
Versi UNIX tersebut digunakan secara luas pada institusi penelitian dan
pendidikan, dan digunakan sebagai dasar dari beberapa penerapan UNIX
komersil, termasuk SunOS dari Sun dan Ultrix dari Digital. Karena BSD UNIX
mendirikan hubungan antara TCP/IP dan sistem operasi UNIX, banyak
implementasi UNIX sekarang yang menggabungkan TCP/IP.
Evolusi serangkaian protokol TCP/IP berlanjut sebagai jawaban atas
evolusi internet. Pada tahun-tahun terakhir, akses ke internet telah berkembang
melampaui komunitas aslinya dan tersedia bagi hampir setiap orang yang
mempunyai komputer. Pertumbuhan yang dramatis ini telah menekankan internet
dan mendorong pembatasan beberapa protokol. Pada internet, tidak ada yang
permanen kecuali perubahan.
TCP/IP adalah serangkaian protokol dimana setiap protokol melakukan
sebagian dari keseluruhan tugas komunikasi jaringan. (Drew Heywood,1996).
15
TCP/IP dapat diterapkan dengan mudah pada setiap jenis komputer dan interface
jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap
satu komputer atau peralatan jaringan tertentu. Agar TCP/IP dapat berjalan diatas
interface jaringan tertentu, hanya perlu dilakukan perubahan pada protokol yang
berhubungan dengan interface jaringan saja.
2.3.1 TCP (Transmission Control Protocol)
TCP ( Transmission Control Protocol) melakukan transmisi data
per segmen, artinya paket data dipecah dalam jumlah yang sesuai dengan
besaran paket, kemudian satu persatu hingga selesai. Agar pengiriman data
sampai dengan baik, maka pada setiap paket pengiriman, TCP akan
menyertakan nomor seri (sequence number). Komputer mitra yang
menerima paket tersebut harus mengirim balik sebuah sinyal
ACKnowledge dalam satu periode yang ditentukan. Bila pada waktunya
sang mitra belum juga memberikan ACK, maka terjadi “time out” yang
menandakan pengiriman paket gagal dan harus diulang kembali. Model
protokol TCP disebut sebagai connection oriented protocol.
2.3.2 IP (Internet Protokol)
Internet protokol menggunakan IP-address sebgai identitas.
Pengiriman data akan dibungkus dalam paket dengan label berupa IP-
address si pengirim dan IP-address penerima. Apabila IP penerima
melihat pengiriman paket tersebut dengan identitas IP-address yang
sesuai, maka datagram tersebut akan diambil dan disalurkan ke TCP
melalui port, dimana aplikasi menunggunya.
16
IP address terbagi 2 bagian, yaitu :
1. Network ID (identitas jaringan)
2. Host ID (identitas komputer)
Penulisan IP address terbagi atas 4 angka, yang masing-masing
mempunyai nilai maksimum 255 (maksimum dari 8 bit)
2.4 Layer TCP/IP
Sekumpulan protokol TCP/IP ini dimodelkan dengan empat layer TCP/IP,
sebagaimana terlihat pada gambar 2.1 :
Application Layer
(SMTP, FTP, HTTP, Telnet,
DNS, dan lain-lain)
Transport Layer
(TCP, UDP)
Internet Layer
(IP, ICMP, ARP)
Network Interface Layer
(Ethernet, X.25, SLIP, PPP)
Gambar 2.1. Layer TCP/IP
(Sumber : Person Education Asia Pte. Ltd & Penerbit Andi Yogyakarta, 2001)
Jaringan Fisik
17
Dalam TCP/IP, terjadi penyampaian data dari protokol yang berada di
suatu layer ke protokol yang berada di layer lain. Semua protokol memperlakukan
semua informasi yang diterimanya dari protokol lain sebagai data. Jika suatu
protokol menerima data dari protokol layer atasnya, ia akan menambahkan
informasi miliknya ke data tersebut (encapsulation). Informasi ini memiliki fungsi
yang sesuai dengan fungsi protokol tersebut. Setelah itu, data ini diteruskan lagi
ke protokol pada layer di bawahnya. Hal yang sebaliknya terjadi jika protokol
tersebut menerima data dari protokol yang berada pada layer di bawahnya. Jika
data ini dianggap valid, protokol akan melepas informasi tambahan tersebut,
kemudian meneruskan data itu ke protokol pada layer di atasnya (decapsulation).
Layer terbawah, Network Interface layer, bertanggung jawab mengirim
dan menerima data ke dan dari media fisik. Media fisiknya dapat berupa kabel,
serat optik, atau gelombang radio. Karena tugas ini, protokol pada layer ini harus
mampu menterjemahkan sinyal listrik menjadi data digital yang dimengerti
komputer, yang berasal dari peralatan lain yang sejenis.
Protokol yang berada pada Internet Layer bertanggung jawab terhadap
proses pengiriman paket ke alamat yang tepat. Pada layer ini ada 3 protokol, yaitu
IP, ARP, dan ICMP. IP (Internet Protocol) berfungsi untuk meyampaikan paket
ke alamat yang tepat. ARP (Address Resolution Protocol) merupakan protokol
yang digunakan untuk menemukan alamat hardware dari host/komputer yang
terletak pada jaringan yang sama. Sedangkan ICMP (Internet Control Message
Protocol) adalah protokol yang digunakan untuk mengirim pesan dan melaporkan
kegagalan pengiriman pesan .
18
Transpot Layer berisi protokol yang bertanggung jawab untuk
mengadakan komunikasi antara dua host/komputer. Kedua protokol tersebut
adalah TCP (Transmission Control Protocol) dan UDP (User Datagram
Protocol).
Pada layer teratas, Application Layer, terletak semua aplikasi yang
menggunakan protokol TCP/IP ini.
2.5 TCP Port
Port merupakan pintu masuk datagram dan paket data (pintu service). Port
data dibuat mulai dari 0 sampai dengan 65.536. Nomor Port dibagi dalam tiga
bagian jangkauan : Port Umum (Well knows Ports), Port Terdaftar(Registered
Ports), dan Port Pribadi dan/atau Dinamis (Dynamic and/or Private Ports).
Adapun pembagian jangkauan Portnya yang diatur oleh sebiah badan yang disebut
IANA (Internet Assigned Number Authority) adalah sebagai berikut :
1. Port Umum : 0 sampai 1023
2. Port Terdaftar : 1024 sampai 49151
3. Port Pribadi/ Dinamis : 49152 sampai 65525
Pada Port 0 sampai 1024 disediakan untuk layanan standar, seperti FTP,
TELNET, Mail, Web, dan lainya. Port ini lebih dikenal dengan nama well known
port. Dapat dilihat contoh port pada tabel 2.1 :
19
Tabel 2.1 Contoh Port
2.6 Protocol Yahoo Messenger (YM)
Yahoo Messenger protokol yang merupakan protokol jaringan yang
digunakan oleh Yahoo! Messenger instant messaging client, untuk Yahoo!
Yahoo! Instant messenger mendukung banyak fitur olah pesan hanya diluar,
termasuk off-line pesan, transfer file, chatting, konferensi, voice chat, webcam,
dan avatar.
Tujuan dari protokol YMSG adalah untuk memberikan bahasa dan
rangkaian konvensi untuk perangkat lunak berkomunikasi dengan Yahoo! 'S
Instant Messaging layanan. Pada dasarnya YMSG melakukan peran yang sama
untuk IM sebagai HTTP tidak untuk World Wide Web. Yahoo! 'S menggunakan
protokol mekanik dari standar koneksi internet untuk mencapai keberadaan,
sambungan yang sama yang digunakan untuk mengirim dan menerima data.
Berkomunikasi dengan protokol YMSG antara aplikasi klien dan server, dengan
menggunakan TCP / IP sambungan pada port 5050 secara default. Port lainnya
dapat digunakan jika port ini diblokir. Port Yahoo Messenger adalah 5000-5050.
20
2.7 Struktur Paket Yahoo
Semua komunikasi Yahoo menggunakan TCP yang dilewatkan di komunikasi IP
dan data dalam Yahoo terletak di field data dari paket TCP yang terlihat pada
gambar 2.2.
Gambar 2.2 Paket Yahoo Messenger
Yahoo biasanya melewatkan persetujuan TCP/IP untuk menggunakan headers
dengan membuat sendiri format header. Sebuah header Yahoo panjangnya 20
bytes dan diidentifikasi oleh 4 bytes pertama yaitu ‘YMSG.’ Header Yahoo juga
menyertakan versi dari YMSG, panjang pesan, tipe servis, status dan session ID.
Gambar 2.3 menunjukan sebuah grafik yang menjelaskan header Yahoo dan data
Yahoo.
Gambar 2.3 Generic header Yahoo Messenger
21
Porsi data dari sebuah paket yahoo juga mempunyai sebuah struktur. Setelah
session ID data dimulai di form untuk Field ID, pemisah Field, data field, pemisah
field, … , pemisah field. Field ID menjelaskan sebagai sebuah ASCII integer yang
mungkin terdiri dari beberapa karakter. Pemisah field Yahoo adalah urutan
hexadecimal dari C0 80. Gambar 2.4 menampilkan sebuah tipikal stukture field
data yahoo.
Gambar 2.4 Data field struktur yahoo
Keseluruhan dari tulisan ini adalah perpendekan gambaran dari sebuah paket
Yahoo yang akan digunakan seperti di gambarkan di gambar 2.5. Bagian atas dari
gambar tersebut mengandung referensi tipe servis dan bagian kanan atas header
menunjukkan arah dari komunikasi. Sebuah referensi yang cepat dari field ID,
tipe servis, dan status dapat ditemukan di Appendix A
Gambar 2.5 Yahoo paket reference
22
SIGN-IN
Sebelum program dapat menggunakan Yahoo! Jaringan, klien harus
masuk dengan username dan password. Susunan acara yang digunakan untuk
masuk akan ditampilkan pada gambar 2.6. tidak semua kegiatan yang diperlukan
untuk menjadi tersedia pada Yahoo!jaringan dan langkah-langkah yang harus diisi
oleh denoted “*”
Gambar 2.6 - Sequence Sign-In
Langkah pertama untuk tanda-in adalah untuk mengirim verifikasi paket,
Yahoo_Verify, ke Yahoo! server untuk melihat apakah jaringan jalan yang
tersedia. struktur paket yang akan ditampilkan dalam gambar 2.7 dan gambar 2.8.
23
Gambar 2.7 - Yahoo! Verifikasi ke Server
Gambar 2.8 - Yahoo! Verifikasi dari server
Setelah diverifikasi komunikasi, sebuah kesepakatan, Yahoo_Auth, paket dikirim.
Paket yang dikirimkan ke server yang berisi permintaan pengguna layanan. Server
merespon dengan sebuah tantangan dan string ID sesi. ID sesi yang diterima dari
server dan akan tinggal dengan masing-masing paket telah berakhir sampai
komunikasi dengan server. The otorisasi tahap ditampilkan pada Gambar 2.9 dan
gambar 2.10.
Gambar 2.9 - Yahoo! Otorisasi ke Server
24
Gambar 2.10 - Yahoo! Otorisasi dari server
Ketika klien menerima tantangan string, klien akan menambah nilai tantangan ke
string sandi dan sebuah compute MD5 hash. Hash Hasilnya adalah data menjadi
dua bagian, 6 dan 96, dan dikirim ke server. Seiring dengan hash password, sistem
data lainnya seperti versi klien dikirim melalui Authorization Response paket,
Yahoo_AuthResp. AuthResp paket struktur yang ditunjukkan pada Gambar 2.11.
Gambar 2.11 - Yahoo! Respon otorisasi ke Server
25
Setelah berlaku password hash telah diterima dari klien, pengguna tertentu yang
dianggap masuk dan tidak ada informasi lain yang perlu dari klien. Dalam banyak
kasus, hanya yang masuk sangat tidak bermanfaat, sehingga setelah AuthResp
paket dikirim dari klien, server mengirimkan daftar buddy untuk pengguna
tertentu. Daftar buddy yang terdapat dalam paket Yahoo_List.
Yahoo_List paket yang pertama adalah paket yang dapat berisi beberapa
YMSG header dan mungkin akan dikirim dalam beberapa paket. Struktur daftar
buddy paket tergantung pada jumlah teman-teman dalam daftar, dan jumlah
pengguna diabaikan. Jika beberapa header atau paket digunakan maka status paket
yang akan dikirim ke NotInOffice sampai paket terakhir yang diterima. Yang
paling penting termasuk 87 lapangan untuk daftar buddy dan 88 untuk diabaikan
pengguna. Gambar . 2.12 menunjukkan satu kemungkinan daftar buddy paket
struktur.
26
Gambar 2.12 - Yahoo! Buddy List dari server
Setelah buddy daftar paket yang diterima dari Yahoo! server, yang lain segera
paket berikut. Ini adalah sebuah paket Yahoo_Ping dan berisi informasi mengenai
siapa yang online pada daftar buddy. Seperti Yahoo_List informasi, informasi
Yahoo_Ping Mei span beberapa paket, header, atau keduanya. Informasi buddy
masing-masing terdapat
27
dalam struktur yang terdiri dari para pengguna, meninggalkan pesan, dan sistem
informasi lainnya. tambahan header Mei juga akan dikirim menunjukkan
keberadaan belum dibaca email melalui Yahoo! mail servers. mail server.
Pada akhir proses login klien dan server akan mengirimkan beberapa
pesan tidak penting. Contoh ini mungkin berisi kosmetik kulit jenis klien, update
Launchcast Radio, saham, cuaca, dan Yahoo! insider. Yahoo! memperbarui
program juga berjalan secara paralel dengan login untuk memeriksa program
pembaruan.
Pesan instan
IM sederhana adalah layanan yang ditawarkan di Yahoo! dan akan
digunakan sebagai contoh. percakapan ini akan berlangsung antara Yuser1 dan
Yuser2 dan dilihat dari sudut pandang Yuser1. Yuser1 mengirimkan satu paket
seperti yang ditunjukkan pada Gambar 2.13. paket yang berisi pengirim,
penerima, pesan, dan sistem informasi lainnya. Karena kenyataan bahwa paket
adalah proxy melalui Yahoo! servers, sebenarnya Yuser2 melihat paket yang
berbeda dari yang dikirimkan oleh Yuser1. Paket bidang yang reordered dan 5
adalah kolom untuk menampilkan yang berubah pada saat ini adalah pengirim.
Gambar 2.14 menunjukkan paket yang diterima dari Yuser2. Keduanya adalah
paket dari sudut pandangan Yuser1.
28
Gambar 2.13 - IM Terkirim
Gambar 2.14 - IM Diterima
Peer to peer transfer
Tidak semua paket yang dikirimkan melalui Yahoo! servers. server.
Kadang-kadang yang terbaik adalah melakukan langsung ke rekan rekan
komunikasi antara klien. Setelah sambungan sudah didapatkan, dan instan semua
lalu lintas lainnya perjalanan langsung antara sesama. Ini adalah jenis komunikasi
29
yang dikenal sebagai peer ke peer (P2P) dan dimulai dengan Yahoo! layanan
disebut Yahoo_P2PFileXfer.
Alasan utama untuk membuat sambungan P2P adalah karena sejumlah
besar data yang harus ditransfer antara klien. J sambungan langsung mengambil
ekstra pengolahan dan beban lalu lintas di jaringan Yahoo! servers. Yang paling
umum aplikasi yang bergantung pada sambungan P2P transfer file, percakapan
suara, webcam, dan IMVIROnMENTS tertentu.
Gambar 2.15 - Transfer File P2P Permintaan
Mentransfer file di Yahoo! Messenger jauh seperti download file melalui HTTP.
Yuser1 mengirimkan permintaan untuk mengirim file ke penerima Yuser2, seperti
terlihat pada Gambar 2.15. Dalam permintaan tersebut, inisiator dari alamat IP
akan dikirim dalam bentuk sebuah alamat http seperti
"http://192.668.1.1/messengerYuser1.filename". Yahoo! messenger mulai dari
30
web server Yserver.exe untuk masuk dan mendengarkan permintaan dari Yuser2.
Yuser2 Bila menerima permintaan dia memiliki pilihan untuk menerima atau
menolak permintaan seperti yang ditunjukkan pada Gambar 2.16. Yuser2
kemudian melakukan operasi HTTP GET menggunakan http alamat web dari
Yuser1. Berbagi skema ini tidak memberikan suatu tingkat keamanan untuk
Yuser2 karena Yuser2 alamat IP tidak reveled ke Yuser1 kecuali Yuser2
menerima file tersebut.
Gambar 2.16 – Permintaan Transfer File
Langkah pertama yang terlibat dalam aplikasi messenger adalah utusan masuk ke
server dan kemudian mengambil daftar teman di yahoo messenger. Terhubung ke
server yahoo (cs.yahoo.com) pada port 5050. Mari kita melihat pertama masuk ke
yahoo server.
31
. Kami akan melakukan koneksi ke server yahoo messenger scs.yahoo.com
pada port 5050
Seperti biasa yang paling sulit untuk mengetahui bagian dalam protokol
adalah utusan login enkripsi.
Sekarang mari kita mulai masuk ke yahoo messenger server. Kami
mengirim data berikut ke server pesan untuk memulai proses login
Ini adalah data yang terkirim bila dilihat melalui port monitor
0x0000 00 20 18 8F C8 16 00 50-BA 89 95 6B 08 00 45 00. . . È..Pº‰•k..E. E .. P º ‰ • k.. E.
0x0010 00 4A F7 6A 40 00 80 06-BA 99 C0 A8 01 C1 D8 88. J ÷ j @. €. º ™ À ¨. Aoe
0x0020 AD B7 07 0D 13 BA 7F DC-96 ED E7 DA 49 68 50 18 ... º Ü-íÚçIhP.
0x0030 44 5C F8 02 00 00 59 4D-53 47 00 0B 00 00 00 0E D \ ø YMSG ... ......
0x0040 00 57 00 00 00 00 6D 61-93 13 31 C0 80 73 75 6E. W. ... ma ",1 À € Minggu
0x0050 64 61 6D 61 6D 61 C0 80 - damamaÀ €
Marilah kita melihat apa yang tepat sedang dikirim
• YMSG - adalah judul standar untuk yahoo messenger semua perintah /
pesan
• Ini diikuti oleh 2 bytes data - 00 0B. -ini menunjukkan nomor versi dari
protokol
• Ini diikuti oleh 2 bytes data - 00 00
• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total
lengthof string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
32
• Hal ini diikuti oleh charecter "W" ini menandakan bahwa perintah yang
dikirimkan adalah sebuah tantangan perintah
• Berikut adalah 4 byte adalah -00 00 00 00
• 4 byte berikutnya adalah apa yang saya memanggil awal 4 byte tubir
identifier. 4 byte ini mengidentifikasi pengguna tertentu dan berubah
setiap kali Anda login Mulanya Anda bisa mengirimkan empat byte
termasuk 00 00 00 00 dan Anda akan masih dapat log in.
• Ini diikuti oleh satu byte data signifying bahwa data yang dikirim adalah
untuk masuk ke server. Byte ini memiliki ASCII setara dengan "0"
• Ini diikuti oleh 1 byte data - 31 ASCII yang setara adalah "1"
• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .-
C0 80
• Akhirnya ini diikuti oleh yahoo user id dan standar argumen pemisah.
• Server memberi tanggapan mengirimkan sebuah tantangan untuk
memverifikasi string password. respon dari server terlihat seperti ini
Ini adalah saat data yang diterima melalui port monitor
0x0000 00 50 BA 89 95 6B 00 20-18 8F C8 16 08 00 45 00. P º ‰ • k. . . È...E. E ... E.
0x0010 00 9C 13 BC 40 00 2F 06-EE F6 D8 88 AD B7 C0 A8. .¼@./. Œ îöØ À ¨
0x0020 01 C1 13 BA 07 0D DA E7-49 68 7F DC 97 0f 50 18. Á. .. ÚçIh º Ü-.P.
0x0030 FF FF 3E 30 00 00 59 4D-53 47 00 00 00 00 00 60 YY> 0 .. YMSG .....`
0x0040 00 57 00 00 00 01 6D 67-EE 27 31 C0 80 73 75 6E. W. ... mgî'1À € Minggu
0x0050 64 61 6D 61 6D 61 C0 80-39 34 C0 80 67 7C 69 2F damamaÀ € 94a € g | i /
0x0060 70 5E 68 26 7A 2D 64 2B-32 25 76 25 78 26 6A 7C p ^ h & z-d 2% v% x & j |
0x0070 65 2B 28 6D 5E 6B 2D 69-25 68 2A 28 73 2B 38 25 e + (m ^ ki% h * (s 8%
0x0080 61 2F 75 2F 78 2A 28 62-2D 34 2A 69 25 68 5E 67 a / u / x * (b-4 * i% h ^ g
33
0x0090 5E 6A 7C 6D 5E 6E 2D 72-2A 66 2B 70 2B 6A 29 29 ^ j | m ^ nr * f + p + j))
0x00A0 29 C0 80 31 33 C0 80 31-C0 80) À € 13A € € 1A
• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan
• Ini diikuti oleh 1 byte data - 00 00. -ini menunjukkan bahwa data telah dikirim
oleh server
• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof
string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
• Hal ini diikuti oleh charecter "W" ini menandakan bahwa perintah yang
dikirimkan adalah sebuah tantangan perintah
• Berikut adalah 4 byte adalah -00 00 00 01
• 4 byte berikutnya yang paling penting adalah bagian dari respons ini 4 byte ini
juga menandakan sesi id. Semua mendatang pesan / perintah yang dikirimkan ke
server memerlukan sesi ini id
• Ini diikuti oleh 1 byte data - 31 ASCII yang setara adalah "1"
• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0
80
• Ini diikuti dengan yahoo id user dan standar argumen pemisah.
• Berikut adalah dua byte ASCII yang setara "9" dan "4", "94" menandakan
bahwa yang berikut adalah 24 charecter tantangan string
• Akhirnya tantangan string diikuti dengan standar argumen SEPERATOR
• Ini diikuti oleh 2 bytes data - 31 dan 33 yang setara ASCII adalah "1" & 3 "
34
• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0
80
Setelah ini dilakukan sekarang saatnya untuk benar-benar masuk sebagai
tidak kelihatan, kemudian menjadi online dan dapat mengirim dan menerima
pesan. Inilah yang dikirim
Hal ini akan masuk Anda dalam mode invisible.
Ini adalah data yang dikirim bila melalui port monitor
0x0000 00 20 18 8F C8 16 00 50-BA 89 95 6B 08 00 45 00. . . È..Pº‰•k..E. E .. P º ‰ • k.. E.
0x0010 01 F2 F7 6B 40 00 80 06-B8 F0 C0 A8 01 C1 D8 88. O ÷ k @. €. ÐÀ ¨ ¸. Aoe
0x0020 AD B7 07 0D 13 BA 7F DC-97 0f DA E7 49 DC 50 18 ... º Ü-.ÚçIÜP.
0x0030 43 E8 76 10 00 00 59 4D-53 47 00 0B 00 00 01 B6 Cèv ... YMSG .....¶
0x0040 00 54 5A 55 AA 55 6D 61-93 13 36 C0 80 58 3D 37. Tzu ª Uma ",6 À € X = 7
0x0050 65 2C 48 3D 6A 65 2C 48-3D 6A 37 3B 6D 3D 43 6A e, H = je, H = j7; Cj m =
0x0060 2C 48 3D 43 63 2C 45 3D-33 33 3B 51 3D 6D 6C 3B, H = Cc, E = 33; T = ml;
0x0070 48 3D 33 37 3B 46 3D 67-67 3B 77 3D 46 35 3B C0 H = 37; F = gg; w = F5; À
0x0080 80 39 36 C0 80 4E 3D 61-68 2C 6D 3D 46 31 2C 6D € € N = 96a ah, m = F1, m
0x0090 3D 33 41 2C 51 3D 41 32 3B 54 3D 41 6C 2C 5A 3D = 3A, T = A2; Al = T, Z =
0x00A0 45 70 2C 68 3D 68 65 2C-53 3D 30 6F 3B 72 3D 31 EP, h = dia, S = 0o; r = 1
0x00B0 42 2C 43 3D 68 32 3B C0-80 30 C0 80 73 75 6E 64 B, C = h2; À € 0A € sund
0x00C0 61 6D 61 6D 61 C0 80 32-C0 80 31 C0 80 31 C0 80 amamaÀ € 2a € 1A € € 1A
0x00D0 73 75 6E 64 61 6D 61 6D-61 C0 80 39 38 C0 80 69 sundamamaÀ €
• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan
• Ini diikuti oleh 2 bytes data - 00 0B. - ini menunjukkan nomor versi dari
protokol
35
• Ini diikuti oleh 2 bytes data - 00 00
• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof
string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
• Hal ini diikuti oleh charecter "T" ini menandakan bahwa perintah yang
dikirimkan adalah perintah login
• Berikut adalah 4 byte adalah 5A 55 AA-55
• 4 byte berikutnya adalah sesi identifier
• Berikut telah byte ascii setara dengan "6"
• Ini diikuti dengan standar argumen pemisah.
• Ini diikuti oleh pertama dari 2, 50 charcter string otentikasi Tanggapan
• Ini diikuti dengan standar argumen pemisah.
• Berikut ada 2 byte ascii setara dari "9" & "6"
• Berikut adalah 2. 50 charecter otentikasi Tanggapan
• Ini diikuti dengan standar argumen pemisah.
• Berikut telah byte ascii setara dengan "0"
• Ini diikuti dengan standar argumen pemisah.
• Akhirnya diikuti dengan yahoo id user (nama) dan standar argumen pemisah.
• Berikut telah byte ascii setara dengan "2"
• Ini diikuti dengan standar argumen pemisah.
• Berikut telah byte ascii setara dengan "1"
• Ini diikuti dengan standar argumen pemisah.
36
• Berikut telah byte ascii setara dengan "1"
• Ini diikuti dengan standar argumen pemisah.
• Akhirnya diikuti dengan yahoo id user (nama) dan standar argumen pemisah.
Lebih banyak data yang lulus alon dengan ini, tetapi sejak banyak data yang telah
dilakukan pada sesi sebelumnya, kita tidak akan mempertimbangkan ini.The
yahoo server akan kami proses permintaan tanpa memperhatikan hal ini.
• Pada berhasil mengirimkan yahoo server kami mengirimkan teman daftar dan
rincian lainnya seperti cookie dan hal-hal
0x0000 00 50 BA 89 95 6B 00 20-18 8F C8 16 08 00 45 00. P º ‰ • k. . . È...E. E ... E.
0x0010 03 1C 17 FA 40 00 2F 06-E8 38 D8 88 AD B7 C0 A8 ... ú @ À ./.è8Ø ¨
0x0020 01 C1 13 BA 07 0D DA E7-49 DC 7F DC 98 D9 50 18. Á. .. ÚçIÜ º Ü ~ UP.
0x0030 FF FF 6A 19 00 00 59 4D-53 47 00 00 00 00 02 E0 ÿÿj ... YMSG ..... à
0x0040 00 55 00 00 00 00 6D 67-EE 27 38 37 C0 80 46 72. U. ... mgî'87À € Fr
0x0050 69 65 6E 64 73 3A 62 6D-61 6E 69 75 73 2C 6B 5F iends: bmanius, k_
0x0060 76 5F 70 72 61 62 68 75 2C 70 75 6E 73 61 5F 32 v_prabhu, punsa_2
0x0070 30 30 30 2C 74 65 73 74-34 79 64 65 6D 6F 0A 6A 000, test4ydemo.j
0x0080 61 62 62 65 72 5F 79 74-3A 6B 5F 76 5F 70 72 61 abber_yt: k_v_pra
0x0090 62 68 75 2C 73 75 64 69-62 6F 79 2C 74 65 73 74 bhu, sudiboy, uji
0x00A0 34 79 64 65 6D 6F 2C 76-65 6E 6B 79 5F 64 75 64 4ydemo, venky_dud
0x00B0 65 0A 74 65 73 74 31 3A-64 65 65 70 61 6B 37 38 e.test1: deepak78
0x00C0 2C 73 75 64 69 62 6F 79-0A 74 65 73 74 34 3A 6B, sudiboy.test4: k
0x00D0 5F 76 5F 70 72 61 62 68-75 0A 74 65 73 74 35 3A _v_prabhu.test5:
0x00E0 6B 5F 76 5F 70 72 61 62-68 75 0A 76 65 6E 6B 79 k_v_prabhu.venky
Cookie dapat grabbed dari data yang diterima oleh kami dan dapat digunakan
untuk various yahoo http functions. yahoo http berbagai fungsi.
37
Setelah ini kita mengubah status kita sebagai online dan tersedia
Ini adalah apa yang kami kirimkan
YMSG. W U ~ *
Bila dilihat melalui port monitor ini adalah yang ditampilkan
0000: 20 53 52 43 00 00 44 45 53 54 00 00 08 00 45 00 SRC DEST .... E. ..
0010: 00 3C CF 04 40 00 80 06 BA 25 CB 5E EA D9 D8 88 .<..@....%.^....
0020: E2 D0 04 8B 00 50 00 71 FE 1B 82 BE 3D 8B 50 18 ..... Pq ...=. P.
0030: 21 80 A3 50 00 00 59 4D 53 47 00 0B 00 00 00 00! .. P.. YMSG ......
0040: 00 04 00 00 00 0C 00 00 00 00 ..........
• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan
• Ini diikuti oleh 2 bytes data - 00 0B. -ini menunjukkan nomor versi dari
protokol
• Ini diikuti oleh 2 bytes data - 00 00
• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof
string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
• The Berikutnya byte data adalah 04 - ini menandakan pengguna untuk
mengubah status-Nya yang tersedia
• Berikut adalah 4 byte adalah -00 00 00 0C
• 4 byte terakhir adalah -00 00 00 00
Mengirimkan pesan
Untuk mengirim pesan berikut data yang dikirim ke server
38
YMSG D. Zu ª V ~ *
1A-5A € sunxxxxxÀ € € venkxxxxeÀ € 14A € hiÀ € 97À € 0A € € 63À; 0A € 64A € 0A € 1002À € € 1A
Bila dilihat melalui port monitor
0000: 20 53 52 43 00 00 44 45 53 54 00 00 08 00 45 00 SRC DEST .... E. ..
0010: 00 80 F7 04 40 00 80 06 91 E1 CB 5E EA D9 D8 88 ....@......^....
0020: E2 D0 04 8B 00 50 00 71 FE 2F 82 BE 3F EA 50 18 ..... Pq /..?. P
0030: 21 80 54 8F 00 00 59 4D 53 47 00 0B 00 00 00 44!. T. .. YMSG ..... D
0040: 00 06 5A 55 AA 56 7E 2A 0A 97 31 C0 80 73 75 6E .. ZU.V. Minggu *.. 1 ..
0050: 64 xx xx 61 xx xx C0 80 35 C0 80 76 65 6E 6B 79 dxxxx venky .. 5 ..
0060: xx xx xx 64 65 C0 80 31 34 C0 80 68 69 C0 80 39 xxxxe .. 14 .. hi .. 9
0070: 37 C0 80 30 C0 80 36 33 C0 80 3B 30 C0 80 36 34 7 .. 0 .. 63 ..; 0 .. 64
0080: C0 80 30 C0 80 31 30 30 32 C0 80 31 C0 80 .. 0 .. 1002 .. 1 ..
Marilah kita melihat apa yang sedang dikirim
• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan
• Ini diikuti oleh 2 byte data - 00 0B. -ini menunjukkan nomor versi dari protokol
• Ini diikuti oleh 2 bytes data - 00 00
• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof
string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
• Berikutnya byte data adalah 06 - ini menandakan bahwa perintah adalah
pengguna pesan
• Berikut adalah 4 byte yang standar untuk semua pesan / perintah yang
dikirimkan kepada Rasul server.The 4 byte adalah 5A 55 AA 56
39
• 4 byte berikutnya adalah untuk pengguna identifier sesi yang sedang
berlangsung.
• Ini diikuti oleh satu byte data signifying bahwa data Pesan Pribadi (PM) yang
dikirim ke user. memiliki ASCII byte setara dengan "1"
• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0
80
• Ini diikuti dengan yahoo id user dan standar argumen pemisah.
• Diikuti oleh satu byte yang memiliki ASCII yang setara dengan "5" dan whch
menandakan bahwa data berikutnya adalah id user yang pesan untuk dikirim
• Diikuti dengan standar argumen pemisah.
• Ini diikuti dengan ID dari pengguna yang pesan sedang dikirim dan standar
argumen pemisah.
• Diikuti oleh satu byte lagi memiliki ASCII yang setara dengan "14" dan
menandakan bahwa data berikut adalah sebenarnya pengguna pesan dan standar
argumen pemisah.
• Berikut ada 2 byte ascii setara dengan "6" & "3"
• Ini diikuti dengan standar argumen pemisah.
• Berikut telah byte ascii setara dengan ";"
• Berikut telah byte ascii setara dengan "0"
• Ini diikuti dengan standar argumen pemisah.
• Berikut ada 2 byte ascii setara dengan "6" & "4"
• Ini diikuti dengan standar argumen pemisah.
40
• Berikut telah byte ascii setara dengan "0"
• Berikut ada 2 byte ascii setara dengan "1" & "0"
• Berikut ada 2 byte ascii setara dengan "0" & "2"
• Ini diikuti dengan standar argumen pemisah.
• Berikut telah byte ascii setara dengan "1"
• Akhirnya diikuti dengan standar argumen pemisah.
Menerima pesan
YMSG J. ~ * 5a-4a € sundaxxxxÀ € € venkyxxxxÀ € 14A € hi thereÀ € € 63À; 0A € 64A € 0A €
97À € € 0A
0000: 44 45 53 54 00 00 20 53 52 43 00 00 08 00 45 00 DEST .. SRC....E. SRC E. ....
0010: 00 7D 9C 0f 40 00 32 06 3A DA D8 88 E2 D0 CB 5E .}..@. 2 .:......^
0020: EA D9 00 50 04 8B 82 BE 3F 95 00 71 FE 50 18 ... 2F P. ...?.. q. / P.
0030: FF FF 73 60 00 00 59 4D 53 47 00 00 00 00 00 41 .. `s .. YMSG ..... J
0040: 00 06 00 00 00 01 7E 2A 0A 97 35 C0 80 73 75 6E .......*.. 5 .. Minggu
0050: xx xx xx xx xx 61 C0 80 34 C0 80 76 65 6E 6B 79 dxxxxx venky .. 4 .
0060: xx xx xx xx xx xx xx 31 34 C0 80 68 69 20 74 68 xxxxe .. 14 th .. hi
0070: 65 72 65 C0 80 36 33 C0 80 3B 30 C0 80 36 34 C0 sebelum .. 63 ..; 0 .. 64.
0080: 80 30 C0 80 39 37 C0 80 30 C0 80 .0 .. 97 .. 0 ..
Marilah kita melihat apa yang telah diterima
• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan
• Ini diikuti oleh 1 byte data - 00. -bahwa ini adalah server Tanggapan
• Ini diikuti oleh 3 bytes data - 00 00 00
41
• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof
string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
• Berikutnya byte data adalah 06 - ini menandakan bahwa perintah adalah
pengguna pesan
• Berikut adalah 4 byte adalah 00 00 00 01
• 4 byte berikutnya adalah sesi id
• Ini diikuti oleh satu byte data signifying bahwa data Pesan Pribadi (PM) yang
dikirim ke user.This memiliki ASCII byte setara dengan "5"
• Ini diikuti oleh 2 bytes data yang merupakan standar argumen separator .- C0
80
• Ini diikuti dengan yahoo id user dan standar argumen pemisah.
• Diikuti oleh satu byte yang memiliki ASCII yang setara dengan "4" dan
menandakan bahwa data berikutnya adalah id user yang telah pesan
• Diikuti dengan standar argumen pemisah.
• Ini diikuti dengan ID dari pengguna yang pesan sedang dikirim dan standar
argumen pemisah.
• Diikuti oleh satu byte lagi memiliki ASCII yang setara dengan "14" dan
menandakan bahwa data berikut adalah sebenarnya pengguna pesan dan standar
argumen pemisah.
• Berikut ada 2 byte ascii setara dengan "6" & "3"
• Ini diikuti dengan standar argumen pemisah.
42
• Berikut telah byte ascii setara dengan ";"
• Berikut telah byte ascii setara dengan "0"
• Ini diikuti dengan standar argumen pemisah.
• Berikut ada 2 byte ascii setara dengan "6" & "4"
• Ini diikuti dengan standar argumen pemisah.
• Berikut telah byte ascii setara dengan "0"
• Berikut ada 2 byte ascii setara dari "9" & "7"
• Ini diikuti dengan standar argumen pemisah.
• Berikut telah byte ascii setara dengan "0"
• Akhirnya diikuti dengan standar argumen pemisah.
PENGGUNA DI ONLINE
0x0030 FF FF D2 AA 00 00 59 4D-53 47 00 00 00 00 00 31 ÿÿÒ ª .. YMSG ..... 1
0x0040 00 04 00 00 00 01 B5 67-52 29 37 C0 80 73 75 6E ...... μgR) 7A € sue
0x0050 64 61 6D 61 6D 61 C0 80-31 30 C0 80 30 C0 80 31 ddddddÀ € 10A € 0A € 1
0x0060 31 C0 80 37 35 36 42 36-36 41 39 C0 80 31 37 C0 1A € 756B66A9À € 17a
0x0070 80 30 C0 80 31 33 C0 80-31 C0 80 € 0A € 13A € € 1A
Mari kita lihat apa yang sedang dikirim
• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan
• Ini diikuti oleh 1 byte data - 00. - -bahwa ini adalah server Tanggapan
• Ini diikuti oleh 3 bytes data - 00 00 00
43
Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof
string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
• Berikutnya byte data adalah 04 - menetapkan status sebagai pengguna online
• Berikut adalah 4 byte adalah 00 00 00 01
• The 4 byte berikutnya adalah sesi id
• Dalam pesan ini juga hadir ID dari pengguna yang telah secara offline
PENGGUNA Goes Offline
0x0030 FF FF CD C6 00 00 59 4D-53 47 00 00 00 00 00 31 ÿÿÍÆ .. YMSG ..... 1
0x0040 00 02 00 00 00 01 B5 67-52 29 37 C0 80 73 75 6E ...... μgR) 7A € Minggu
0x0050 64 61 6D 61 6D 61 C0 80-31 30 C0 80 30 C0 80 31 damamaÀ € 10A € 0A € 1
0x0060 31 C0 80 45 32 36 31 46-45 44 37 C0 80 31 37 C0 1A € E261FED7À € 17a
0x0070 80 30 C0 80 31 33 C0 80-30 C0 80 € 0A € 13A € € 0A
• YMSG - adalah judul standar untuk yahoo messenger semua perintah / pesan
• Ini diikuti oleh 1 byte data - 00. -bahwa ini adalah server Tanggapan
• Ini diikuti oleh 3 bytes data - 00 00 00
• Berikut adalah 2 byte menentukan panjang pesan-informasi yaitu total lengthof
string-panjang header (20 bytes)
• Byte berikutnya adalah data 00
• Berikutnya byte data adalah 02 - menetapkan status sebagai pengguna offline
• Berikut adalah 4 byte adalah 00 00 00 01
44
• 4 byte berikutnya adalah sesi id
• Dalam pesan ini juga hadir ID dari pengguna yang telah secara offline
2.8 Lipcap
Packet Capture adalah salah satu metode yang dilakukan untuk mencari
gangguan pada jaringan (troubleshooting). Menggunakan metode ini, paket-paket
yang melalui jaringan diambil atau dikumpulkan untuk di analisis. Dengan
demikian, kondisi jaringan dapat diketahui secara real-time. Pada jaringan
broadcast, seperti jaringan ethernet yang menggunakan hub, paket yang dikirim
oleh satu host akan disebar ke tiap host pada jaringan tersebut. Normalnya, paket
yang diterima suatu piranti jaringan akan dibuang jika alamatnya tidak sama
dengan alamat tujuan peket tersebut. Untuk melakukan packet capture, semua
paket yang diterima akan diproses walau alamat tujuan paket tersebut berbeda
dengan alamat piranti jaringan. Hal ini dilakukan dengan menempatkan piranti
jaringan pada promiscuous mode.
Informasi yang dapat diambil dari paket-paket tersebut adalah informasi
low-level. Namun dengan membuang header-header low-level dan menyatukan
paket-paket terfragmen, informasi high-level juga dapat diperoleh. Kemungkinan
besar tidak semua paket yang diterima dalam packet capture dibutuhkan untuk
analisis. Karena itu paket yang masuk biasanya difilter berdasarkan kriteria
tertentu, misalnya berdasarkan port tujun.
Libpcap adalah library yang menyediakan API (Application Programming
Interface) untuk pengimplementasian tool packet capture. Library ini didesain
45
system-independent, dan tersedia untuk sistem operasi berbasis UNIX. Pada
sistem operasi windows, library packet capture yang umum digunakan adalan
Winpcap.
Libpcap adalah library yang banyak digunakan tool-tool security,
diantaranya yaitu nmap, tcpdump, dan snort. Library ini memungkinkan untuk
menangkap paket yang berada pada network, bahkan paket-paket yang ditujukan
untuk host lain. Library Libpcap dapat diaplikasikan untuk pengumpulan data
statistik, pengawasan keamanan jaringan, debugging jaringan, dan lain-lain.
Libpcap bisa dimanfaatkan untuk mempelajari protokol jaringan
komputer, libpcap biasanya digunakan pada aplikasi yang berkaitan dengan
analisa network. Walaupun sudah tersedia tool-tool tersebut hanya menampilkan
data atau informasi dari paket yang ditangkap. Library ini memungkinkan
pembuatan aplikasi yang spesifik, dan disesuaikan dengan keperluan. Aplikasi
yang dihasilkan menggunakan library ini memiliki performa yang baik karena
API libpcap ditulis dalam bahasa C.
Cara kerja library libpcap ini seperti loop. Jadi suatu program akan
menunggu terus sampai ada paket yang datang, dan paket yang datang tersebut
akan diolah dengan callback functionnya.
2.9 Sniffing
Sniffing adalah pekerjaan memonitor paket data yang lalu-lalang di sebuah
jaringan pada komputer yang terhubung pada jaringan internet menggunakan
suatu modem. Paket data ini bisa berisi informasi mengenai apa saja, baik itu
46
username, apa yang dilakukan pengguna melalui jaringan, termasuk
mengidentifikasi komputer yang terinfeksi virus., sekaligus melihat apa yang
membuat komputer menjadi lambat dalam jaringan. Bisa juga untuk menganalisa
apa yang menyebabkan jaringan macet. Jadi bukan sekedar untuk kejahatan, tapi
bisa juga untuk mencegah suatu kejahatan. Semuanya tergantung dari
penggunanya.
Sniffing bisa dilakukan tidak berarti karena masalah komputer atau sistem
operasi, tapi system dari jaringan sendirilah yang bermasalah. Misalnya pada
system jaringan yang menggunakan hub, permintaan data maupun pengiriman
data disiarkan ke seluruh komputer dalam jaringan, dan hanya komputer yang
membutuhkan saja yang mengambil data. Dengan menggunakan sniffer, semua
data yang disiarkan akan ditangkap tanpa adanya permintaan dari salah satu
komputer. Sniffing juga termasuk mengendus data yang disembunyikan dalam
komputer, termasuk yang dienkripsi.
Konfigurasi jaringan sniffing dapat dilihat pada gambar 2.17
Gambar 2.17. Konfigurasi Jaringan Sniffing
2.10 Shell
47
Shell adalah bahasa penterjemah perintah (Command Interpeter
Language) atau sebuah prosesor makro yang menjalankan perintah. Shell juga
dapat berarti intepreter perintah yang menjadi antarmuka antara user dengan
utilitas dan bahasa pemrograman. Dengan shell, dapat dibuat sebuah perintah atau
file yang berisi perintah-peintah itu sendiri. Perintah baru tersebut mempunyai
status yang sama dan diletakkan pada direktori /bin.
Shell mengijinkan eksekusi perintah secara synchronously dan
asynchronously. Shell menunggu perintah synchronous untuk dilengkapi sebelum
menyetujui lebih banyak input, sedangkan perintah asynchronous terus berjalan
dalam paralel dengan shell ketika membacanya dan menjalankan perintah
tambahan. Shell juga mengenal adanya redirection. Dengan redirection dapat
dilakukan kontrol untuk input dan output dari perintah yang ada dan juga
melakukan kontrol terhadap isinya. Secara default, shell UNIX juga menyediakan
perintah-perintah built-in, seperti pwd, cd, kill, history atau utilitas lain yang
terpisah.
Sebagai interface dan command intepreter, shell dapat digunakan secara
interaktif maupun non interaktif. Dengan 2 mode tersebut, shell mampu menerima
input dari device(keyboard) atau file. Fitur interaktif yang termasuk di dalamnya
adalah kontrol job, history, alias, dan editor command line.
Hal lain yang menjadikan shell sangat penting adalah shell menyediakan
bahasa pemrograman yang telah disertakan (embeded). Sama halnya dengan
bahasa pemrograman tingkat tinggi lainnya, intepreter shell juga menyediakan
variabel, flow control, quoting, dan fungsi.
48
2.10.1. Macam-macam Shell
Pada UNIX/linux terdapat berbagai macam shell dengan kelebihan
dan kekurangannya masing-masing. Dengan banyaknya variasi shell ini,
user bebas memilih shell yang digunakan. Meskipun kebanyakan sistem
operasi telah menentukan sebuah shell sebagai shell default, tetapi tidak
menutup kemungkinan shell lain juga dapat dijalankan.
Berikut ini beberapa macam shell yang umum terdapat dalam
sistem operasi UNIX/Linux :
1. Bourne Shell (/bin/sh):sebagai bahasa pemrograman, Bourne Shell
menggunakan bahasa dasar Algol.
2. Bourne Again Shell (/bin/bash):bash merupakan pengembangan dari
Bourne Shell. Saat ini bash semakin berkembang dan banyak dijadikan
sebagai shell default untuk sistem operasi Linux.
3. C Shell (/bin/csh):jika digunakan dalam pemrograman, sintaknya akan
mirip dengan bahasa C, karena shell ini memang berbasis bahasa C.
4. Tenex C Shell (/bin/tcsh):merupakan pengembangan dari C Shell
dengan penambahan beberapa fitur, yaitu logout, locking, job
sceduling, variabel dan command line editing (vi dan emacs).
5. Tcl Shell (/bin/tclsh):shell yang menggunaka intepreter tcl, sehingga
tcl dapat membaca perintah-perintah tcl dari standar input atau file.
6. Korn Shell (shell /bin/ksh):sama dengan bash, korn shel juga tersedia
untuk sistem operasi selain UNIX, seperti DOS, OS/2 dan VMS.
49
7. Public Domain Korn Shell (/bin/pdksh):shell ini merupakan kloning
Korn Shell dalam versi public domain.
8. A Shell (/bin/ash):Ash merupakan variasi dari sh.
9. Z Shell (/bin/zsh):merupakan bentuk lain dari Korn Shell tetapi
dengan menggunakan fitur dari TC Shell.
2.11 Bahasa Pemrograman C
Bahasa C telah berhasil digunakan untuk mengembangkan berbagai jenis
permasalahan pemrograman, dari level operating system (unix, linux, ms dos,
dsb), aplikasi perkantoran (text editor, word processor, dsb), bahkan sampai
pengembangan sistem pakar (expert System). Kompiler C juga telah tersedia di
semua jenis platform komputer, mulai dari Macintosh, UNIX, PC, Mokro PC,
sampai super komputer.
C bisa disebut sebagai bahasa pemrograman tingkat menengah (middle
Programming language). Artinya tingkat(level) disini adalah kemampuan
mengakses fungsi-fungsi dan perintah-perintah dasar bahasa mesin/hardware
(machine basic instruction set). Dalam perspektif mudahnya dipahami manusia, C
bisa digolongkan dalam bahasa tingkat tinggi, namun C juga menyediakan
kemampuan yang ada pada bahasa tingkat rendah, misalnya operasi bit, operasi
byte, pengaksesan memori, dsb.
C adalah bahasa pemrograman dengan kata kunci (keyword) sedikit. Kata
kunci disini adalah merupakan fungsi ataupun kata dasar yang disediakan oleh
kompiler suatu bahasa pemrograman. Hal ini membawa pengaruh semakin
50
mudahnya kita menulis program dengan C. Pengaruh lain dari sedikitnya kata
kunci ini adalah proses eksekusi program C yang sangat cepat.
C hanya menyediakan 32 kata kunci seperti terangkum pada tabel 2.2 di
bawah ini :
Table 2.2 Kata Kunci Bahasa C
2.11.1 Struktur program Bahasa C
Program bahasa C adalah suatu program terdiri dari satu atau lebih
fungsi-fungsi. Fungsi utama dan harus ada pada program C adalah fungsi
main(). Fungsi main() ini adalah fungsi pertama yang akan diproses pada
saat program di kompile dan dijalankan, sehingga bisa disebut sebagai
fungsi yang mengontrol fungsi-fungsi lain. Karena struktur program C
terdiri dari fungsi-fungsi lain sebagai program bagian (subrountine), maka
bahasa C biasa disebut sebagai bahasa pemrograman terstruktur. Cara
penulisan fungsi pada progmam bahasa C adalah dengan memberi nama
fungsi dan kemudian dibuka dengan kurung kurawal buka ({ ) dan ditutup
dengan kurung kurawal tutup ( }).
Fungsi-fungsi lain selain fungsi utama bisa dituliskan setelah atau
sebelum fungsi utama dengan deskripsi prototype fungsi pada bagian awal
51
program. Bisa juga dituliskan pada file lain yang apabila kita ingin
memakai atau memanggil fungsi dalam file lain tersebut, kita harus
menuliskan header filenya, dengan prepocessor directive #include. File ini
disebut file pustaka (library file). Untuk lebih jelas tentang struktur
program C, lihat gambar 2.18 :
# include<stdio.h> prepocessor directive
Fungsi_lain(); prototype fungsi lain
Main()
{ fungsi utama
Statement;
}
Fungsi_lain()
{ fungsi lain
Statement;
}
Gambar 2.18 Struktur dasar program C
2.11.2 Proses pembuatan program C
Proses pembuatan program C dapat dilihat pada gambar 2.19
52
Gambar 2.19 proses pembuatan program C
1. Tulis source code program bahasa C dengan menggunakan text editor
(dalam hal ini menggunakan emacs) kemudian simpan dalam sebuah file.
Text editor disini bisa merupakan aplikasi notepad atau editplus pada
windows, untuk operating system unix/linux kita bisa mengunakan
aplikasi emacs, vi, ataupun mcedit yang cukup terkenal.
2. Kompile file yang berisi source code program bahasa C.
Kompilasi atau kompile(compile) adalah sutau proses merubah source
code ke bahasa mesin sehingga bisa dieksekusi (executable) atau
dijalankan. Banyak sekali kompiler bahasa C yang saat ini, baik yang
gratis maupun yang kita harus membeli untuk menggunakannya. Untuk
linux kita menggunakan gcc sebagai kompiler C
3. Jalankan program yang sudah dikomplile
Setelah kita kompile file yang berisi source code, maka sebagai hasil
kompilasi tersebut kita akan mendapatkan suatu file yang bisa dijalankan
53
(executable file). Menjalankan program yang kita buat berarti menjalankan
file hasil proses kompilasi tersebut.
2.11.3 Bahasa Pemrograman C dalam Linux/Unix
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 C
pada saat instalasi.
Tiga hal yang dibutuhkan dalam membuat program C adalah :
1. Text editor
Text editor diperlukan untuk membuat source code program C. Text
editor yang bisa digunakan di linux antara lain : vi, gedit, kedit,
mcedit, nano, dan lain sebagainya.
2. Compiler
Compiler adalah program yang mengkonversi source code menjadi
bahasa mesin ( biasa disebut object code atau machine code) sehingga
dapat dimengerti langsung oleh CPU. C compiler termasuk dalam
GNU Compiler Colection (GCC), salah satu komponen penting dalam
distribusi linux. Untuk mengecek GCC pada sistem ketikkan gcc pada
command line, jika pesan yang diterima berupa: “no input files” berarti
gcc telah terinstall dan siap digunakan, jika tidak pesan yang diterima
adalah “command not found”
54
3. C standart library
Library adalah kumpulan subprogram yang dapat digunakan
programmer untuk membuat source code. Glibc adalah standart C
library yang diimplementasikan oleh GNU. Sebagian besar komponen
linux membutuhkan standart tersebut.
Program yang pertama biasa dibuat oleh programmer adalah “Hello
World”
Cara membuatnya:
1. Ketikkan progran berikut pada editor text
#include
main()
{
printf("Hello,world!\n");
return 0;
}
Baris pertama pada kode diatas disebut dengan preprocessor directive
yang diawali dengan tanda ‘#’. Directive terdiri dari header file yang
berada dalam glibc dan digunakan oleh compileruntuk memindahkan
isi dari file header ke dalam file c sehingga dapat digunakan.
Contohnya, pada code diatas directive yang digunakan adalah stdio.h
yang menyediakan fasilitas input dan output pada C, sehingga dapat
menggunakan perintah “printf”.
55
Setiap program C memiliki fungsi main() yang berisi satu atau lebih
statement yang dituliskan di dalam kurung kurawal( {} ).
Perintah printf digunakan untuk menampilkan hasil dari program C
kelayar. Huruf f diakhir kata printf berarti formatted (terformat). Setiap
string yang ingin ditampilkan dengan perintah printf harus dibuat
dalam tanda petik dua (double quotes).
Simpan kode nama apa saja dan diakhiri dengan extension .c,
extension untuk program c yang akan dikenali compiler sebagai C
source code. Contohnya, simpan kode diatas dengan nama hello.c
2. Compile program terdiri dari dua langkah yaitu compile dan linking.
Cara meng-compile program dengan menggunakan GCC, adalah
dengan mengetikkan perintah di bawah ini pada command line :
gcc –o hello hello.c
compile program akan menghasilkan file berextension .exe yaitu
heloo.exe.
3. Menjalankan program yang telah di compile , caranya adalah dengan
mengetikkan pada command line :
./hello
Run program diatas akan menghasilkan Hello World di layar
Tapi jika program terbuat dari beberapa file sumber, harus
menjalankan utility "make". Maka harus menulis sesuatu yang
dinamakan makefile, yang mana memberitahu kompiler tentang
56
keterkaitan/ketergantungan antara file sumber(source file) dan file
objek(object file ).
57
BAB III
PERANCANGAN SISTEM
Pada bab ini akan diberikan gambaran dan penjelasan mengenai konsep
perekaman data chatting dalam Yahoo Messenger (YM) dengan teknik sniffing.
Berikut secara teknis, yang terdiri dari perancangan sistem, konfigurasi jaringan,
perancangan perangkat lunak dan perancangan perangkat keras.
3.1. Analisis Sistem
Sistem ini berfungsi untuk mencatat informasi paket dalam
aktivitas chatting yang melewati jaringan komputer sniffing. Paket yang
dicapture meliputi IP asal, IP tujuan serta data asal, data tujuan.
3.2. Perancangan Sistem
Program sniffing dijalankan pada komputer sniffing yang kemudian
melihat lalu lintas/ trafic data yang melewati komputer sniffing. Pada saat
program ini melihat trafic data yang diidentifikasikan sebagai data Yahoo
Messenger (YMSG) maka program ini mulai mengambil data tersebut
yang kemudian ditampilkan, baik ditampilkan dalam layar monitor
ataupun direkam dalam bentuk file log. Data yang ditampilkan hanya data
paket yang tidak terenkripsi, untuk data-data yang terenkripsi/ tidak
teridentfikasi, program ini hanya menampilkan karakter titik (.).
58
Program tidak dibatasi oleh waktu untuk menghentikan aktivitas capture.
Operator dapat menghentikan capture paket kapan saja.
3.3. Konfigurasi Jaringan
Pada konfigurasi yang penulis buat untuk sniffing kali ini, penulis
membuat konfigurasi jaringan dengan menggunakan satu buah server
gateway berbasis linux slackware, dua buah laptop berbasis windows XP,
satu buah router utama, dan AP hotspot, terlihat pada Gambar 3.1.
Gambar 3.1. Konfigurasi jaringan
3.4. Perancangan Perangkat Lunak
59
Pada perancangan perangkat lunak ini penulis membuat program
untuk meng-capture data chatting dalam Yahoo Messenger dengan diberi
nama snifit. Program snifit ini terdapat beberapa program yang saling
berkaitan.
Snifit adalah suatu program untuk meng-capture data yang dikirimkan
sebagai bagian dari koneksi TCP (arus), dan menyimpan data dengan cara
yang tepat untuk analisa protokol atau debugging. Suatu program seperti
“tcpdump” yang menunjukkan ringkasan dari paket-paket di atas jaringan,
tetapi biasanya tidak menyimpan data.
Snifit menyimpan semua data yang ditangkap dan menyimpannya di
dalam file-file dan mempunyai nama-nama dari form
128.129.130.131.02345-010.011.012.013.45103
di mana isi-isi dari file akan menjadi data tersebut dikirimkan dari host
128.129.131.131 port 2345, kepada host 10.11.12.13 port
45103.
3.4.1. Sistem Utama
Perancangan program Snifit ini mengontrol 4 proses yang ada
didalam sistem utama. Empat proses tersebut meliputi :
1. Proses 1 adalah main.c
2. Proses 2 adalah flow.c
3. Proses 3 adalah datalink.c
4. Proses 4 adalah tcpip.c
60
Pada sistem utama ini, keyboard akan menginputkan karakter. Lalu
program akan melihat interface. Setelah pengecekan interface selesai maka
program akan melihat paket data yang melewati jaringan, pada proses ini
program akan membedakan apakah paket berupa IP atau paket berupa
data. Setelah paket data ter-capture maka proses selanjutnya adalah
membuat struktur arus data dari hasil capture file.
Compile program akan menghasilkan file berextension .exe, seperti halnya
pada program installan dalam windows. Program Snifit terbuat dari
beberapa file sumber, maka harus menjalankan utility "make". Maka harus
menulis sesuatu yang dinamakan makefile, yang mana memberitahu
kompiler tentang keterkaitan/ketergantungan antara file sumber(source
file) dan file objek(object file ).
61
Gambar 3.4. Flowchart Sistem Utama.
3.4.2. Proses pada Sistem Utama
Proses yang berjalan pada sistem utama meliputi :
62
1. Proses 1 adalah main.c
Program ini berfungsi untuk menginputkan masukan dari keyboard
yang kemudian dari inputan tersebut akan muncul sebuah statement
yang sesuai dengan apa yang diinputkan.
Dalam program main.c ini terdapat fungsi print usage, yang berfungsi
untuk menampilkan data yang dapat diinputkan melalui keyboard serta
penjelasan fungsi masing-masing inputan tersebut. Terdapat
pernyataan switch dalam proses main.c. Pernyataan switch ini
digunakan untuk menjalankan salah satu pernyataan dari beberapa
kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan
nilai penyeleksi.
2. Proses 2 adalah flow.c
Program ini berfungsi untuk membuat struktur arus data.
Dalam program ini terdapat 3 fungsi, yaitu :
a. Create flow state, fungsi ini befungsi untuk menentukan letak tiap
paket data.
b. Open file, fungsi ini berfungsi untuk membuka file yang sudah
tercapture. Termasuk membuka paket data ataukah membuka paket
IP. Open file tidak seharusnya dipanggil jika file sudah terbuka.
c. Close file, fungsi ini berfungsi untuk menutup file pada struktur
arus.
63
3. Proses 3 adalah datalink.c
Program ini berfungsi untuk melihat/ mengecek interface pada sistem
ini. DLT_PPP untuk modem, DLT_ETHERNET untuk wirelles
ataupun ethernet, dan DLT_NULL jika tidak terdapat interface.
4. Proses 4 adalah tcpip.c
Program ini berfungsi untuk melihat paket-paket yang sedang
melewati jaringan, khususnya paket pada saat aktivitas chatting Yahoo
Messenger berlangsung.
Dalam program ini terdapat 4 fungsi yaitu :
a. Proses IP, fungsi ini dipanggil ketika menerima suatu IP datagram.
Kita memeriksa paket untuk meyakinkan bahwa ada beberapa data
yang lewat. Kita meyakinkan bahwa berisi suatu TCP, jika
demikian maka pengolahan data yang lewat akan diproses oleh
proses_tcp(). Dalam proses ini menggunakan ip_total_len, karena
mungkin dalam memproses paket kita akan menangkap byte
didalam lapisan ethernet.
b. Proses TCP, fungsi ini hanya mencari TCP, selain itu akan
dibuang. Jika tidak mempunyai data apapun maka kembalikan
paket. Setelah mendapat sebuah TCP maka mengkalkulasi total
panjangnya TCP header. Mengisi struktur arus dengan info yang
mengidentifikasikan arus ini. Serta mengkonversi data yang tidak
terbaca menjadi karakter titik(.).
64
c. Store paket, fungsi ini untuk menyimpan paket data ke dalam file.
Sebelumnya kita melihat dulu apakah paket ini mempunyai arus
struktur, jika belum maka akan diciptakan dulu struktur arus untuk
paket tersebut.
d. Print paket, fungsi ini mencetak muatan paket kedalam console.
3.4.3. Flowchart Proses Yang Berjalan Pada Sistem Utama
3.4.3.1. Flowchart Proses 1 main.c
Gambar 3.5. Flowchart Proses 1 Main.c
65
Gambar 3.6 Flowchart Print Usage
66
Start
Switch (arg)
Case ‘b’ ;
IfByte_per_flow-atoi(optarg)<0
Debug “capturing max of byte per
traffic”
Debung” warning:invalid value used with -b ignored “
Break
True
False
Case ‘c’
Console only=1Debug “ printing packet to
console only”
Case ‘s’
Strip_nonprint=1Debug “concerting non
printable character to ’.’ “
Break
1
67
1
Case ‘h’
Print usage
Exit
Break
Default
Debug “ error : unrecognized switch”
Need_usage=1
Break
End
Gambar 3.7 Switch
68
3.4.3.2. Flowchart Proses 2 “ Flow.c “
Gambar 3.8. Flowchart Create Flow State
69
End
Start
If flow_state->fp
Debug “ …. Trying to open already open file”
Return flow_state->fp
If flow state, filename!=NULL
Open file succeededOpen failed sebab terlalu banyak file yang sedang
dibuka
True
False
True False
While (!done)
True
If flow_state->fp==NULL
Set finished, dan jangan mencoba untuk membuka
file kembali
Mengurutkan arus dari yang lama ke yang baru
Close file
False
True
False
Return NULL
Gambar 3.9 Flowchart Open File
70
Start
If flow_state->==NULL
Return 0
Debug “closing file “
Menutup file
Return 1
End
True
False
Gambar 3.10 Flowchart Close File
71
3.4.3.3. Flowchart Proses 3 “ Tcpip.c “
Start
IfPanjang paket<TCP
header
Debug "received truncated TCP
segment!"
Return
Mengkalkulasi total panjangnya
TCP header
If tidak mempunyai
data
Debug “got TCP segment with no
data:
Return
Mengisi struktur flow dengan info yang
mengidentifikasi arus
Mengkalkulasi lagi permukaan data dan
panjangnya TCP header
IfStrip nonprint
If (console only)
Mencetak output Menyimpan output
End
True
False
True
False
True
False
True
False
Data=(data, panjangnya)
Gambar 3.11. Flowchart proses TCP
72
Gambar 3.12 Flowchart Proses IP
73
Gambar 3.13 Flowchart Store Paket
74
Gambar 3.14 Flowchart Print Paket
75
3.4.3.4. Proses 4 “ Datalink.c “
Start
If (length!=caplen)
Debug “warning : only captured byte of byte
ether frame”
If (caplen<sizeof(struct
ether_header)
Return
if (ntohs(eth_header->ether_type)
!= ETHERTYPE_IP)
Debug “warning : received incomplete ethernet frame”
Debug “ warning received ethernet frame with unknown type”
Return
Proses IP
End
True
True
False
False
True
False
Gambar 3.15 Flowchart DLT_ETHERNET
76
Gambar 3.16 Flowchart DLT_PPP
77
Start
If (length!=caplen)
Debug “warning : only captured byte of byte null
frame“
If (caplen < NULL_HDRLEN)
Debug “warning : received incomplete null frame “
Return
Proses IP
end
True
True
False
If (fammily!+AF_INET)
Debug “warning :received non AF_INET null frame “
return
Gambar 3.16 Flowchart DLT_NULL
78
3.5. Perancangan Perangkat Keras
Perancangan perangkat keras yang digunakan oleh perangkat lunak ini dibagi
menjadi tiga bagian :
a. Komputer server gateway:
a. Pentium 4 core2duo 1.8Ghz
b. Memory 1GB
c. Harddisk 80GB
d. NIC(network interface card) realtek
e. Hardware support *NIX
b. Komputer klien/korban
a. Laptop Toshiba M1 pentium 4 mobile 1.6Ghz
b. Memory 768MB
c. Harddisk 40GB
d. NIC(network interface card) intel
e. Wifi card intel
c. Media penunjang
a. Wireless merk senao SL-2611CB3 (AP mode)
b. Kabel UTP belden cat5
79
BAB IV
IMPLEMENTASI SISTEM
Pada bab ini penulis akan menjelaskan mengenai implementasi perekaman
data chatting dalam Yahoo Messenger (YM) dengan teknik sniffing. Dikarenakan
teknik sniffing hanya dapat berjalan pada satu kelas jaringan (dalam satu network),
maka untuk memudahkan sniffing, penulis meletakkan program ini di dalam
gateway server.
Sehinga dalam bab ini penulis hanya menjelaskan pada sisi server atau pada sisi
dimana sniffing tersebut diletakkan.
4.1 Lingkungan Implementasi
4.1.1 Spesifikasi Perangkat Lunak
Dalam implementasi kali ini, penulis perangkat lunak yang dipakai
adalah sebagai berikut :
a. Sistem operasi : Linux varian kernel 2.6.xx
Telah di coba di distro centos 4.4,
centos 5 dan slackware 12.0
b. Bahasa pemrograman : gcc-4.1.2, dan bash-3.1.017
c. Paket library dan pendukung: glib2-2.12, lpcap, tcpdump
80
4.1.2 Spesifikasi Perangkat Keras
Perangkat keras yang penulis gunakan untuk mendukung dalam
implementsai ini dibagi menjadi tiga bagian :
d. Komputer server gateway:
a. Pentium 4 core2duo 1.8Ghz
b. Memory 1GB
c. Harddisk 80GB
d. NIC(network interface card) realtek
e. Hardware support *NIX
e. Komputer klien/korban
a. Laptop Toshiba M1 pentium 4 mobile 1.6Ghz
b. Memory 768MB
c. Harddisk 40GB
d. NIC(network interface card) intel
e. Wifi card intel
f. Media penunjang
a. Wireless merk senao SL-2611CB3 (AP mode)
b. Kabel UTP belden cat5
4.2 Karakteristik Pengguna
a. Seseorang yang memiliki minat dalam analisa data jaringan.
81
b. Seseorang yang memiliki kepentingan di dalam data yang lewat di dalam
jaringan mereka, baik untuk sisi keamanan ataupun sisi yang lain.
Program ini dapat digunakan oleh system administrator atau network
administrator untuk melakukan analisa data ( karena paket yang di ‘capture’
baik http,chat adalah sama) yang membedakan program ini dengan program
sniffing yang lain (mis:tcpdump) adalah hasil output dan filtering nya saja.
4.3 Implementasi Program Sniffing
Dalam implementasi program ini, akan dijelaskan beberapa fungsi-fungsi
utama sehingga program ini dapat melakukan capture paket data yang lewat
di dalam jaringan hingga dapat tertampil di layar maupun dalam bentuk file.
Penulis membagi program ini kedalam beberapa bagian proses, yaitu
• Proses menampilkan menu utama di layar
• Pengecekan device yang tersedia
• Proses pembacaan input
• Proses pengcapturan atau pengambilan data pada jaringan
• Proses menampilkan data hasil pengcapturan ke layar ataupun
dalam bentuk file.
4.3.1 Proses Menampilkan Menu Utama di Layar
Berikut merupakan script program untuk menampilkan menu
utama di layar, disimpan dengan nama intip, terlihat pada listing 4.1.
82
#!/bin/sh clear pil() { echo "Program sniffing sederhana" echo "by florentina puri cahyani" echo "1.melihat pada interface default tanpa disimpan" echo "2.melihat pada interface default dengan disimpan" echo "3.melihat semua trafic pada interface tanpa disimpan" echo "4.keluar" echo -n "masukkan pilihan:";read pilih case $pilih in 1)tidak;; 2)iya;; 3)semua;; 4)exit;; esac } tidak(){ /home/robby/script/bin/snifit -c -i eth1|grep YMSG pil } iya(){ /home/robby/script/bin/snifit -i eth1|grep YMSG pil } semua(){ /home/robby/script/bin/snifit -c -i eth1 pil } pil exit 0
Listing 4.1. Intip
Penulis menggunakan BOURNE SHELL(/bin/sh) untuk
menampilkan menu utama di layar. Program ini hanya sebagai
program tambahan untuuk tampilan. Tujuan program ini dibuat untuk
memudahkan penginputan data, sehinga pengguna program tidak perlu
menuliskan perintah secara manual untuk mengcapture data dalam
Yahoo Messenger. Pengguna hanya tinggal memanggil script shell
maka akan tertampil menu utama di layar.
83
Pada shell di atas, di situ menunjukkan fungsi case, dimana
program membaca input dari keyboard dengan ketentuan yang telah
ditentukan, yaitu angka 1,2,3 dan 4. dapat di lihat pada listing 4.2
{
echo -n "masukkan pilihan:";read pilih case $pilih in 1)tidak;; 2)iya;; 3)semua;; 4)exit;; esac }
Listing 4.2. Fungsi Case
Pada statement itu menunjukkan bahwa input data di olah dalam
case, dimana fungsi case tersebut bernama pilih. bila input berada
diluar case, maka program secara otomatis akan berhenti/langsung
keluar.
Statement berikutnya merupakan sederet perintah untuk menjalankan
program snifit tersebut. Dapat dilihat pada potongan listing 4.3. di
bawah ini
tidak(){ /home/robby/script/bin/snifit -c -i eth1|grep YMSG pil } iya(){ /home/robby/script/bin/snifit -i eth1|grep YMSG pil } semua(){ /home/robby/script/bin/snifit -c -i eth1 pil } pil exit 0
Listing 4.3. Perintah Eksekusi Snifit
84
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 */
91
if (ip_header_len > ip_total_len) { DEBUG(6) ("received truncated IP datagram!"); return; } /* TCP processing */ process_tcp(data + ip_header_len, ip_total_len - ip_header_len, ntohl(ip_header->ip_src.s_addr), ntohl(ip_header->ip_dst.s_addr));
}
Listing 4.9. Prose IP dan TCP
Untuk melakukan pembedaan paket atau identifikasi alur(flow) tersebut adalah
paket yang masuk atau yang keluar dari jaringan, maka perlu dibuat struktur
flow_t seperti listing program 4.10 di bawah ini:
……………… this_flow.src = src; this_flow.dst = dst; this_flow.sport = ntohs(tcp_header->th_sport); this_flow.dport = ntohs(tcp_header->th_dport); seq = ntohl(tcp_header->th_seq);
Listing 4.10 Struktur Flow
4.3.5 Menampilkan Data ke Layar ataupun dalam Bentuk File
Pada sub bab ini penulis akan menjelaskan bagaimana proses dilakukannya
dari proses diatas, yaitu melakukan pengcapturan, yang kemudian hasil dari
pengcapturan tersebut ditampilkan ke dalam layar atau konsol, maupun
ditampilkan kedalam bentuk file atau disimpan.
92
Untuk menampilkan isi dari hasil capture kedalam konsol, dapat di lihat pada
listing program 4.11 di bawah ini:
void print_packet(flow_t flow, const u_char *data, u_int32_t length) { printf("%s: ", flow_filename(flow)); fwrite(data, length, 1, stdout); putchar('\n'); fflush(stdout); }
Listing 4.11. Print Paket
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
Komputindo, Jakarta, 2001
Garcia, Jess, LinuxForensicsTools,
http://www.lnx4n6.be/index.php?sec=Documentation&page=bootcdconte
nt
Paul, Ryan, Monitoring Network Traffic with Ruby and Pcap,
http://arstechnica.com/open-source/news/2005/10/linux-20051002.ars
Gonzato, Guido, From DOS to Linux,
http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/id/other-
formats/html/ID-DOS-TO-LINUX-HOWTO-7.html
www.apjii.or.id/dokumentasi/peraturan/PP_52_2000.htm
http://en.wikipedia.org/wiki/Carnivore_(FBI)
www.tcpdump.org/
www.snort.org
http://www.geocities.com/indoprog/tutorial/linux/osi.html
http://www.venkydude.com/articles/yahoo.htm http://libyahoo2.sourceforge.net/ymsg-9.txt