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!

Google Hacking Database

Google Hacking Database yang saya maksud di sini, bukanlah saya akan menghacking server Google, untuk membuka database yang tersimpan di sana, melainkan saya akan menggunakan Google sebagai search engine terpopuler abad ini untuk melakukan pencarian saja. Bayangkan, kini semua orang setiap kali mengakses internet, pasti membuka halaman Google, baik untuk mengakses Email dari Gmail, atau mengunggah foto ke Picasa, membuat Blog di Blogger, menonton video di Youtube, dan yang paling sering adalah mencari "sesuatu". Sesuatu di sini saya artikan sebagai spesifikasi korban dalam kita melakukan uji penetrasi atau penetration testing lazim dikenal pentest.
Sebenarnya sudah banyak sekali tutorial yang menyebutkan penggunaan dork ini, yang dimaksud dork ialah string atau search operator khusus untuk membantu proses pencarian kita. Dalam pencarian ini dapat memperdalam area pencarian kita, bahkan sampai ke bagian url dari sebuah situs. Ini biasanya digunakan untuk mencari korban-korban dalam teknik SQL Injection, memanfaatkan parameter yang bisa diinjeksi.
Hanya hal-hal yang mendasar yang akan saya bahas pada tulisan ini. Mengingat banyak sekali dork yang telah ada. Semisal yang bisa kita pergunakan dalam mencari situs-situs yang rentan terhadap SQL Injection.
Dork inurl: lah yang paling favorit yang sering digunakan dalam mencari situs yang rentan terhadap SQL Injection. Untuk menunjangnya, biasanya dipakai site: untuk lebih menspesifikasikan jangkauan korban. Sebagai contoh, mari kita lab-task. Pertama saya punya kata kunci yang vulnerable, yaitu yang paling dasar (basic) adalah php?id= maka dalam kotak pencarian Google kita ketik inurl:"php?id=" lalu enter. Maka akan tampil banyak sekali situs yang memiliki url mengandung "php?id=".
Search with inurl:
Untuk mempersempit area jangkauan kita, kita bisa menambahkan dork site: misalkan saya ingin menampilkan hanya situs yang memiliki domain ac.id maka dalam kotak pencarian Google kita bisa menuliskan inurl:"php?id=" site=ac.id lalu enter, maka akan ditampilkan hasil pencarian hanya dari situs yang memiliki bagian ac.id dan yang memiliki path "php?id=".
Search with site: and inurl:
Ingat belum tentu seluruh url yang ditampilkan oleh Google itu memiliki parameter id yang bisa diinjeksi (injectable), kita perlu melakukan scanning dengan tools, salah satu yang saya suka adalah sqlmap. Baru setelah mendapat konfirmasi bahwa parameter tersebut bisa diinjeksi, kita bisa melakukan grabbing database. Database yang ada biasanya berisi tentang data yang dikelola oleh situs tersebut, bisa jadi apabila situs itu merupakan toko online, kita bisa mendapatkan database Credit Card Verified (CCV), atau untuk melakukan privileging escalation, kita bisa menampilkan informasi kolom dari username dan password dari korban.
Google Hacking Database
Terdapat banyak sekali path vulnerable yang dimungkinkan untuk diinjeksi parameternya, php?id= adalah salah satu dari yang paling mendasar dan terkenal, untuk lainnya silahkan cari sendiri, atau download buku ASWB-ver1 di Wget Page. Di situs exploit-db.com, juga ada beberapa dork yang bisa digunakan, lengkap dengan path-nya silahkan akses di Google Hacking Database. Sekian dulu tulisan saya kali ini, memang tidak terlalu lengkap, karena Google is your friend, guys. "i'm not a pentester, but just a beginner". Happy Analyst!

16 January 2013

Google Chrome at Backtrack

Google Chrome is the lightweight browser which develop by Google. This browser is available for cross-platform, you can install on Windows, Mac, Linux, etc. Beside it, you can adding some add-on which available at Chrome Web Store. This is the best choice for netbook user, because Google Chrome don't make your browsing looks like a snail.
When you run on GNU/Linux, Backtrack especially, there's a Chromium Web-Browser the optional choice beside Google Chrome. You can install Chromium by type apt-get install chromium-browser at Ubuntu/Debian based. But when you install Chromium, you won't able to adding some add-on in Chrome Web Store. To install any add-on you must install Google Chrome.
Let's get it. First, download Google Chrome installer, you can go here. Choose 32 bit.deb (Debian/Ubuntu) because, Backtrack 5 is the derivative of Ubuntu, then Accept and Install. Wait until the download package was completed.
Download Page
Message for Installing Google Chrome
For example, my downloaded Google Chrome package in Downloads directory.
Google Chrome Package
Open the terminal, then enter to Downloads directory by typed cd Downloads. To see the files which located in this directory, type ls.
Listing Directory use Terminal
Install Google Chrome with dpkg -i google-chrome-stable_current_i386.deb. Wait until the process completed.
Installing Google Chrome
Now let's check on your menu Applications >> Internet, you will see Google Chrome was appear. But when you click, there's an error, because at default on backtrack, you run as root privilege. Stay cool, there's two method to fix this problem. First, you can add another user as administrator or user desktop, but you will need to type sudo, every you need root privilege. And the second, modify Google Chrome which can run by root. I will use the second choice.
Waring
Right click the main menu, then select edit main menu. Find Google Chrome at Applications >> Internet >> Google Chrome, click Properties. You will see the directory where Google Chrome is stored, at /opt/google/chrome see the Command field.
Main Menu
Run terminal again, then enter to the directory which we read from properties. Type cd /opt/google/chrome. Type ls to see files which present of this directory.
Listing Directory
Use hexedit to edit chrome binary by command hexedit chrome. After that press Tab on your keyboard to enter the string mode, press CTRL+S to search, then type geteuid and Enter.
Hexedit
ASCII search
You will see the word geteuid, now change it into getppid, just type it.
Before Editing
After Editing
After type it, you can save with CTRL+S then type y to save.
Saving
You can exit hexedit by pressing CTRL+C.
Google Chrome is Running
Now your Google Chrome can running with privilege as root. Enjoy it!

14 January 2013

Spoofing Mac into Mikrotik Net

Sebenarnya saya pernah menulis pokok bahasan yang sama dengan tulisan ini, namun gara-gara kontrak sewa domain telah berakhir dan saya tidak mampu memperpanjangnya lagi serta saya tidak mem-backup semua postingan, akhirnya tulisan itu hilang.
Langsung kita mulai saja, mumpung backtracknya fresh install, hehe. Pertama kita cari dulu hotspot berbasis mikrotik, biasanya unsecured alias tidak diproteksi WEP atau WPA, sehingga siapapun bisa connect ke hotspot ini.
Connecting Wifi
Nah, saat kita buka web browser kita maka semua url yang kita ketikkan akan di-redirect untuk login terlebih dahulu, seperti UGM Hotspot ini. Halaman redirect-nya untuk hotspot UGM ini adalah ke hotspot.ugm.ac.id/login.
Login Page
Kemudian saya melakukan scanning jaringan lokal menggunakan AutoScan-Network, pada backtrack dapat diakses dari menu Backtrack >> Information Gathering >> Network Analysis >> Network Scanners >> autoscan.
AutoScan-Network
Saat memasuki AutoScan-Network, kita akan diminta mengisi konfigurasi dan interface yang kita pakai, klik saja forward sampai keluar selesai dan aplikasi ini mulai menjalankan aksinya. Dalam tampilan tersebut, IP kita memiliki simbol mata dengan keterangan OS Daemon. Sekarang saya mencoba mengetes korban yang terkonek ke hotspot ini dengan IP 192.168.88.210, pada kotak dialog sebelah kanan akan muncul beberapa informasi, yang paling penting adalah Mac Address, korban saya kali ini memiliki Mac Address 00:1F:3C:DB:CB:34.
Scanning Victim
Sekarang kita disconnect ke hotspot tersebut, kemudian mematikan adapter WLAN kita, saya menggunakan function key pada laptop saya Fn+F2, untuk laptop yang lain silahkan menyesuaikan. Lalu kita ganti Mac Address kita sama seperti Mac Address korban dengan macchanger.
Fake Mac with macchanger
Aktifkan kembali adapter WLAN kita, kemudian kita connect ke hotspot tadi. Dan arahkan web browser kita ke hotspot.ugm.ac.id (ingat, ini halaman redirect login tadi), maka saat kita tekan Enter, kita akan dibawa langsung ke hotspot.ugm.ac.id/status. Pada halaman ini tertera beberapa informasi tentang korban, mulai dari username (bukan sepaket dengan password lho, haha), IP Address, berapa byte yang dihabiskan untuk upload dan download, status dia terkonek.
Successful
Kini sekarang kita bisa browsing tanpa harus memiliki akun hotspot tersebut, saya mencoba mengakses Google.
Accessing Google
Apa yang kita dapatkan dari tulisan ini?! Sekarang kita bisa mengakses hotspot manapun yang berbasis mikrotik dengan ketentuan ada client legal yang terkoneksi ke hotspot tersebut dimana kita menyamar seolah-olah kita adalah client legal itu dengan menyamarkan Mac Address. Dan apabila si client legal itu melakukan logout, maka kita juga akan otomatis logout dari hotspot.
Logout
Untuk tingkat lebih lanjut, kita mungkin tertarik untuk mengetahui password dari korban. Kita bisa melakukan sniffing pada korban, kemudian kita logout, maka korban pun akan ikut logout. Apabila korban melakukan login lagi, kita bisa mendapatkan username dan password yang diinputkan oleh korban, hehehe.
Semoga tulisan ini membantu para pencari internet gratis, tanpa harus repot-repot mendaftar untuk mendapatkan akun untuk login. "i'm not pentester, but just a beginner". Happy Analyst!

13 January 2013

LFI and RFI Sample

Untuk penjelasan, silahkan baca Pengertian LFI dan RFI atau lihat Dictionary Hacking.
Baik kita mulai saja. Saya mulai dengan mencari vulnerability, beberapa yang saya sangat anjurkan untuk sama-sama level beginner sudah saya dokumentasikan di Lucky Vulnerability. Untuk daftar yang lain silahkan cari saja di list Silencer yang saya cantumkan di sidebar site ini. Baik, saya gunakan Wordpress timthumb Plugin - Remote Code Execution yang merupakan vulnerability pada plugin timthumb dari Wordpress, vulrn ini mampu digunakan untuk me-remote file. Sebelumnya kita pelajari Plugin timthumb ini sendiri (silahkan googling), ternyata plugin ini adalah untuk me-resize gambar supaya nampak square (persegi). Plugin ini terkenal dan biasanya embeeded dengan kebanyakan theme wordpress. Segini mungkin cukup bagi kita untuk melakukan LFI dan RFI.
Mari kita mulai mencari korban. Saya menggunakan whatweb untuk mengetahui Meta-Generator dari sebuah website. Nah saya mencoba mengidentifikasi alamat korbanku.ugm.ac.id (disamarkan) dengan whatweb. Whatweb mendapatkan informasi bahwa korbanku.ugm.ac.id menggunakan Wordpress 3.2.1 dengan framework WooFramework 4.3.5, email dari administratornya juga terlihat adminkorban@gmail.com (menggunakan Gmail).
Whatweb Identifying Victim
Setelah itu, kita coba arahkan alamat login wordpress, kalau tidak dirubah, alamat loginnya ada di korbanku.ugm.ac.id/wp-login.php. Nah, ternyata masih default alamat loginnya (kita bisa serang pakai bruteforce nih, hehehe). Berarti sampai di sini kita mengetahui kalau korbanku menggunakan engine wordpress.
Wordpress Login Page
Sekarang kita download file index.php yang berada di korbanku.ugm.ac.id/index.php menggunakan wget. File index.php ini nantinya yang membantu kita mengidentifikasi theme wordpress yang digunakan, karena asumsi kita, korban menggunakan theme yang bundled dengan timthumb plugin. Setelah file index.php terdownload, buka dengan gedit. kita cari (CTRL+F) "wp-content/themes", dan ketemu. Terdapat link yang saya blok biru http://korbanku.ugm.ac.id/wp-content/themes/nama_theme.
index.php File
Buka url tersebut dengan browser (saya menyarankan menggunakan Firefox), ternyata tidak ada pesan error, berarti kita mendapatkan akses ke folder theme tersebut.
Theme Directory of Victim
Lanjutkan dengan menambahkan tempat timthumb plugin yaitu di korbanku.ugm.ac.id/wp-content/themes/nama_theme/thumb.php. Ternyata asumsi kita benar, theme yang sedang dipakai memiliki plugin timthumb, pada korban terinstall versi 2.7.
TimThumb Details
Selanjutnya kita coba melakukan LFI, tambahkan perintah dengan "?src=" pada lokasi direktori timthumb plugin jadi korbanku.ugm.ac.id/wp-content/themes/nama_theme/thumb.php?src=URL_INCLUDE. Isi URL_INCLUDE dengan file index.php yang barusan kita download tadi, http://korbanku.ugm.ac.id/wp-content/themes/nama_theme/thumb.php?src=http://korbanku.ugm.ac.id/index.php. Muncul pesan eror bahwa yang bisa kita include kan hanya file gambar (gif, jpg, atau png), ini mengingat plugin timthumb adalah plugin untuk me-resize gambar, jadi hanya file gambar yang bisa kita include.
TimThumb Error
Sekarang kita coba akses direktori upload dari korbanku di korbanku.ugm.ac.id/wp-content/uploads. Lagi-lagi kita memiliki hak akses ke direktori tersebut.
Uploads Directory
Image File in Uploads Directory
Pilih salah satu gambar kemudian salin alamatnya dan arahkan ke url vulrn LFI tadi, sehingga utl lengkapnya menjadi seperti http://korbanku.ugm.ac.id/wp-content/themes/nama_theme/thumb.php?src=http://korbanku.ugm.ac.id/wp-content/uploads/2006/08/baterai.png. Dan kita berhasil melakukan LFI dengan file gambar. Coba bandingkan antara file asli gambar dengan hasil LFI kita, nampak perbedaan kalau gambarnya telah di-resize oleh timthumb. Inilah kenapa file asli tidak hanya sekedar di-load saja dalam server korban, namun juga diproses, dalam contoh kali ini di-resize.
LFI Successful
Kita berganti ke RFI, sekarang saya sudah menyiapkan url yang lain dimana kita memiliki hak akses di direktori uploadnya di korbanku.mipa.ugm.ac.id/wp-content/uploads. Pilih salah satu gambar dan salin untuk menggantikan URL_INCLUDE. Ternyata timthumb menolak RFI yang akan kita lakukan, karena pengaturan default timtumb tidak memberikan permission pada luar server.
TimThumb Not Allowed
Lalu saya berfikir, tidak semua situs diblokir oleh timthumb ini, kemudian saya mencoba photobucket, situs image hosting sebesar photobucket biasanya mendapatkan permission dari plugin-plugin image. Kemudian saya mendownload gambar yang ingin saya include kan dari korbanku.mipa.ugm.ac.id tadi, dan saya upload ke photobucket.
Uploading to Photobucket
My Photobucket
Saya copy url gambar yang saya upload barusan, kemudian saya masukkan di URL_INCLUDE. Taraaa, RFI yang kita lakukan berhasil. Jadi file dari photobucket mendapatkan permission untuk di-include oleh timthumb.
RFI Successful
Kesimpulannya, plugin timthumb pada wordpress sering kali tertanam dalam theme wordpress. Plugin ini bisa meng-include file dari dalam (LFI) maupun luar (RFI) server. Timthumb hanya akan menerima file gambar dan untuk include dari luar hanya dari server-server tertentu saja, misalnya photobucket (mungkin juga picasa, flickr, dan situs image hosting lainnya) dalam keadaan default.
Lalu bagaimana memanfaatkan LFI dan RFI dengan timthumb ini?! Anda bisa memanipulasi gambar sehingga bisa mengandung script-script tertentu, sehingga dapat diterima oleh timthumb. Tentunya dengan RFI. Untuk tingkat lanjut Anda bisa mencari tutorial mengubah script menjadi gambar atau menyisipkan script ke gambar dengan bantuan Goole. Google is your friend.
Sekian dulu dari saya, apabila ada yang salah saya mohon koreksinya. Semua korban yang saya gunakan dalam tulisan ini saya samarkan untuk menjaga kelemahan sistem ini biar tidak diexploitasi oleh orang-orang tidak bertanggung jawab. "i'm not pentester, but just a beginner". Happy Analyst!