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 addon 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:
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:
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:
Konfigurasi smtp untuk @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.
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:
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:
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.
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:
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.
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.
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.
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:
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:
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:
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
- 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:
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.
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”.
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:
Sedangkan komunikasi yang terjadi ketika email dikirim ke @ilmuhacking.com adalah:
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.
aku dapet artikel ini dari ilmuhacking...
thanks buat mereka...
para pecinta firefox!!!!
silahkan coba yaa!!!












 Kita Berantas Kebodohan, Tau Diri, Kenal diri, Dan bisa jaga diri..
Hantam Ketidak Pastian Diri, Pengecut Bukanlah Jati Diri Yang Sejati .
Tunjukan pada dunia kita adalah manusia yang harus dipuji !! Karna Kita Pembrontak S.I.D
Kita Berantas Kebodohan, Tau Diri, Kenal diri, Dan bisa jaga diri..
Hantam Ketidak Pastian Diri, Pengecut Bukanlah Jati Diri Yang Sejati .
Tunjukan pada dunia kita adalah manusia yang harus dipuji !! Karna Kita Pembrontak S.I.D