Kali ini admin mau Share sedikit ilmu yang didapat dari Forum
Surabayablackhat
Penulis pernah di tanya oleh seorang Admin server sebuah site trading
online di Jakarta, dia agak sedikit heran ketika mengetahui servernya
jebol padahal dia hanya membuka port 80 dan sudah terpasang IDS
(Intrusion Detection System) seperti Snort dan Snare di servernya dan
anehnya ini juga tidak terdeteksi sama sekali oleh logger webserver
(biasanya webserver memiliki file log untuk setiap link yang di request
client). Karena kebetulan penulis sendiri yang menjebol situs tersebut
maka penulis sampaikan bahwa sekuriti server tidak hanya berkaitan
dengan masalah konfigurasi server, blocking port dan
monitoring/detection intruder saja. Ada permasalahan yang lebih
berbahaya dari sekedar setingan hardware yaitu masalah software atau
aplikasi yang di gunakan baik di server maupun di halaman web. Aplikasi
pengaman apapun (termasuk penggunaan enkripsi dan chipper key) tidak
menjamin bahwa server itu akan aman. Di sini memang di tuntut
pengetahuan dan informasi akan bugs yang berkembang saat itu.
Setiap menit, jam dan hari semakin banyak bermunculan bugs-bugs terbaru
dengan model dan tipe yang berbeda-beda. Kadang hal ini tidak di sadari
oleh kita bahwa bugs tersebut ternyata juga ada di server yang kita
pakai. Kesibukan dan konsentrasi yang terpecah belah kadang memang
membuat kita lengah dan tidak menyadari kemungkinan-kemungkinan jebolnya
server yang kita setting. Seperti contoh kasus di atas juga merupakan
hal yang tidak di ketahui secara sadar oleh si admin sendiri bahwa
ternyata seorang hacker dengan hanya memanfaatkan aplikasi web yang di
gunakan dalam sebuah website pun mampu menjebol server tersebut dan
merebut akses shell command di dalam server target tanpa mengalami
kesulitan. Dan kadang dengan kemampuan yang expert di programming
seorang hacker pun mampu menjebol firewall yang terpasang di server
target, hal ini telah di buktikan sendiri oleh penulis dengan hanya
bermodalkan bugs dan script khusus, penulis bisa mendapatkan
hosting-hosting berfirewall bagus baik dari operating sistem Linux, BDS
(OpenBSD dan FreeBSD), Debian dan sebagainya.
Kembali ke topik di atas, kebetulan untuk server yang penulis jebol
adalah jenis NT server yang memanfaatkan connectivity database seperti
ODBC dan SQL yang tidak menggunakan input validation script untuk
mengontrol command database yang di masukan (di injeksikan) ke dalam
server. Berbicara tentang injection tentu pembaca pernah mendengar juga
tentang SQL Injections yang berita-nya sangat ramai di bicarakan di
milis dan site-site sekuriti. Bukan basa-basi bugs ini hampir mengenai
seluruh server-server berbasiskan NT terutama untuk server NT yang
memanfaatkan koneksi ke database untuk web page-nya.
Oke untuk mempermudah pemahaman para pembaca, di sini Penulis akan
memberikan contoh kasus sederhana. Dulu jaman pertama kalinya bugs
VP-ASP (Software Management untuk pembayaran online), Anda mungkin
mengetahui tentang penggunaan karakter single quote (‘) dengan
penambahan OR (logical operator) dan tanda sama dengan (=) di antara
single quote tersebut.
Login: ‘ OR ‘’=’
Password: ‘ OR ‘’=’
Sedikit menganalisa, misal ketika input box untuk login dan password di
isi seperti dalam contoh di atas apa yang akan terjadi jika script yang
memproses input tersebut seperti di bawah ini.
var sql = "select * from users where username = '" + username + "' and password = '" + password + "'";
Untuk beberapa site yang tidak menerapkan sistem validasi input yang
secure akan mengakibatkan seorang user bisa masuk baik sebagai admin
atau user biasa tanpa membutuhkan login dan password yang sebenarnya.
Mengapa? Karena ketika input itu di proses di sistem yang terjadi
operasi tersebut di anggap valid.
var sql = "select * from users where username = '’ OR ‘’=’' and password = '’ OR ‘’=’';
Nah tamatlah sudah riwayatmu kini hehe…hehe..
Oke mungkin contoh di atas masih di anggap sangat sederhana, sekarang
kalau misalnya saya melakukan action yang lebih ekstrim dari itu?
Username: '; drop table users--
Password:
Apa yang akan terjadi? Saya yakin Anda juga tahu bahwa command tersebut
akan menghapus seluruh data di tabel users, coba kita analisa lagi.
var sql = "select * from users where username = '’; drop table users—
Nah apa yang akan Anda perbuat jika yang terjadi adalah seperti command di atas ini? Di sini karakter titik koma (

menutup command pertama dan kemudian command drop menjadi command
berikutnya yang akan di eksekusi oleh sistem dan selanjutnya karakter
double minus (--) menutup command-command berikutnya untuk tidak di
eksekusi. Yahh klo sudah begini tamatlah sudah data Anda. Paling banter
Anda akan di pecat dari perusahaan dan di maki-maki bos Anda karena
tidak becus bekerja.
SQL Injections tidak hanya bereaksi di dalam input box saja, dalam
sebuah URL pun bisa di aplikasikan. Ini tergantung kemahiran Anda dalam
melihat celah dari ketidak-secure-an site tersebut. Tentu di perlukan
juga pengetahuan tentang command SQL dan beberapa eksperimen kecil untuk
meriching kode di antara variabel-variabel yang ada di site tersebut.
Jadi di mana letak kesalahannya?
Dalam hal ini Microsoft sangat merespon tragedi SQL Injection, bahkan mereka sudah membuat
patch-nya. Tapi sekali lagi ini tidak hanya masalah
patching
saja tapi juga di tuntut kehati-hatian Anda dalam merancang isi web itu
sendiri. Solusinya yaa buatlah beberapa fungsi validasi input yang
mampu mematikan command-command abnormal yang bisa mempengaruhi atau
membuat server bereaksi.
Hanya seperti itu saja? He..hehe… pertanyaan yang sangat menohok tapi nggak papa lah.
Jika Anda mendapatkan bugs ini pada NT server maka beruntunglah Anda
karena akses di luar database pun sanggup di lakukan. Seperti apa?
Seperti command shell, registry, dan messaging product. Yaa sedikit
tentang pengetahuan tentang sistem menjadi mutlak untuk perlu di ketahui
agar Anda bisa mendapatkan akses granted administator tentu dengan
dukungan kreatifitas dan mungkin jika perlu dukungan kemampuan
programming yang Anda kuasai. Coba lihat beberapa command sistem yang
bisa Anda manfaatkan untuk mendapatkan akses lebih banyak di server
target (NT).
xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask
xp_regaddmultistring, xp_regdeletekey, xp_regdeletevalue, xp_regenumkeys, xp_regenumvalues, xp_regread
xp_regremovemultistring, xp_regwrite
xp_availablemedia, xp_dirtree, xp_enumdsn, xp_loginconfig
xp_makecab, xp_ntsec_enumdomains
xp_terminate_process
Oke, saya harap teman-teman semua bisa mengerti sampai disini. Selamat mencari target.