18 January 2013

Hacking with SQL Map Injection

Sebelum membaca tulisan ini, ada baiknya baca lebih dulu tentang Google Hacking Database. Mengingat kita akan langsung menggunakan apa yang telah dibahas di Google Hacking Database untuk meningkatkan dari scanning ke tahap exploitation sampai privilege escalation (silahkan lihat penjelasan daftar istilah di Dict Page).
Pertama, kita langsung buka Google dengan browser, saya menggunakan firefox. Kemudian sesuai dengan dork inurl: dan site: saya ingin mencari vulnerable url dengan path "php?id=" pada site *.web.ugm.ac.id.
Google Hacking Database
Setelah mendapatkan beberapa situs, saya memilih satu situs untuk saya cek, apakah parameter id-nya bisa diinjeksi dengan menggunakan tool sqlmap. Sqlmap dapat diakses dari main menu, Applications >> BackTrack >> Vulnerability Assessment >> Database Assessment >> MySQL Assessment >> sqlmap, atau bisa juga langsung melalui terminal kemudian masuk ke direktori /pentest/database/sqlmap dengan perintah cd. Jalankan sqlmap dengan perintah ./sqlmap.py -u http://korban.web.ugm.ac.id/artikel2.php?id=29 --dbs (url korban disamarkan).
Running sqlmap
Ternyata parameter id-nya bisa diinjeksi, maka secara otomatis sqlmap akan mengidentifikasi database yang ada di server tersebut, dalam korban saya, memiliki dua database, yaitu information_schema dan w173595_korban (disamarkan).
Database Grabbing
Database information_schema biasanya tidak berisi password, maka saya meng-enumerasi tabel yang ada di database w173595_korban. Untuk memulainya saya gunakan perintah berikut.
Enumerate Tables
Grabbing Tables
Tak lama kemudian isi tabel dari database w173595_korban telah terbaca, diantaranya saya tertarik dengan tabel admin dan wp_users, saya menduga tabel admin dan wp_users akan berisi password yang akan kita gunakan untuk masuk ke tahap privilege escalation. Saya terlebih dahulu ingin membuka kolom yang ada di tabel wp_users (user wordpress) dengan perintah berikut.
Enumerate Columns
Grabbing Columns
Hmm, ada beberapa kolom yang sudah terbaca dari tabel wp_users, saya tertarik untuk langsung membaca isi kolom dari user_login dan user_pass, saya lakukan hal tersebut dengan perintah di bawah ini.
Reading Columns
Nampaknya pembacaan isi kolom user_login dan user_pass berhasil, dan ada notifikasi bahwa password telah dienkripsi dengan MD5, saya memilih untuk tidak melakukan dekripsi terlebih dahulu, maka saya tekan n kemudian enter.
Option to Decrypt Password
Akhirnya username (user_login) dan password (user_pass) telah berhasil dibaca, namun untuk passwordnya masih terenkripsi.
Successful
Setelah melakukan exploitation sampai berhasil mendapatkan username dan password, saya berganti ke tahapan berikutnya, privilege escalation. Saya akan melakukan dekripsi password tersebut secara on-line, menggunakan situs md5decrypter.co.uk. Untuk melakukan dekripsi, saya tinggal copy dan paste password hasil pembacaan isi kolom user_pass tadi. Lalu klik Decrypt Hashes.
MD5Decrypter.co.uk
Tidak menunggu waktu yang lama, password ternyata berhasil didekripsi.
Decrypted
Kemudian saya mengarahkan url login wordpress di http://korban.web.ugm.ac.id/wp-login.php. Namun ternyata halamannya tidak ada, saya curiga login page wordpressnya sudah dipindah.
Login Page Not Found
Ketika itu saya berfikir untuk menggali path directory melalui cpanel, saya mengaksesnya di http://korban.web.ugm.ac.id/cpanel.
Cpanel Login Page
Saya mencoba login dengan username dan password yang saya dapatkan dari hasil eksploitasi tadi, tapi gagal.
Failed to Login
Namun saya mencoba lagi dengan nama database yakni w173959 tanpa embel-embel korban.
Cpanel
Berhasil, kita berhasil masuk ke cpanel, sebenarnya kita bisa mencari dimana lokasi file wp-login.php dengan cpanel ini, namun saya lebih memilih menggunakan software FTP, seperti Filezilla. Setelah berhasil login dengan FileZilla, saya mencari file wp-login.php untuk masuk ke admin wordpress. Dan berhasil saya temukan, tepatnya di korban.web.ugm.ac.id/blogku/wp-login.php.
FileZilla
Kembali lagi ke firefox, saya langsung arahkan ke login page wordpress di atas (sepertinya wordpressnya sangat jadul "sekali"). Lalu saya masukkan username dan password yang kita dapatkan sewaktu proses eksploitasi tadi.
Wordpress Login
Voila, saya berhasil masuk ke site manager korban yang berbasis wordrpess.
Wordpress Admin Granted
Beginilah jadinya apabila seorang pentester berhasil memasuki sistem korbannya, haha.
Tested by h3rucutu_silent
Namun, sesuai ethical hacking, saya tidak merubah apapun isi dari blog tersebut dan cuma menampilkan tulisan saya di atas sebagai dokumentasi saja, kemudian saya hapus lagi. Sampai saat ini, saya memang belum menghubungi orang yang memiliki blog tersebut, saya akan usahakan untuk menghubunginya supaya orang tersebut segera meng-upgrade sistemnya, atau kalau memang tidak digunakan lagi, biar saya saja yang akan menggunakannya, hehe. Yang pasti akun tersebut bukanlah milik saya, setelah usut punya usut, nomor unik dibelakang w itu adalah NIU dari korban, yang merupakan mahasiswa UGM angkatan 2003 D3 Bahasa Arab.
Bukan saya bermaksud sombong dengan memasuki sistem seseorang dengan tanpa otoritas dari pemilik, namun saya hanya menguji seberapa kuat sistem Anda, bukan merusak. Jika Anda meninggalkan rumah dengan pintu terbuka, tentu saja ada kemungkinan orang akan bisa masuk dengan leluasa. Ya, begitulah saya menguji beberapa sistem-sistem yang ada, tanpa bayaran layaknya seorang security analyst, kemudian dengan begitu saya (dan Anda) tahu kelemahan dan berharap Anda bisa segera memperbaiki kelemahan itu.
"i'm not a pentester, but just a beginner"
Happy Analyst!

0 comments: