Kali ini saya akan berbagi ilmu, tentang cara mengetahui atau membongkar password aplikasi yang menempel pada file executable (.exe) yang dibuat menggunakan Visual Basic 6. Kasus yang akan saya terangkan di sini adalah kasus nyata. Yaitu membongkar aplikasi POS ( Point Of Sales ) yang cukup terkenal. Oleh karena itu ada beberapa data yang saya samarkan karena masalah etika, saya hanya ingin berbagi ini untuk menambah pengetahuan, bukan untuk mengumbar kelemahan aplikasi buatan orang lain. Nanti saya akan berbagi trik juga agar teknik yang saya terangkan ini tidak bisa /sulit digunakan untuk membongkar
password pada file exe, tentu saja teknik ringan saja, bukan teknik tingkat tinggi.
Sebenarnya saya tidak ada rencana atau proyek khusus untuk membongkar
password, hanya perusahaan tempat saya bekerja mempunyai beberapa restoran yang memakai aplikasi POS dari pengembang
software lokal. Pengembang aplikasi POS ini jika saya lihat portofolio-nya sudah lumayan banyak digunakan di Indonesia. Karena personil IT yang sebelumnya bertugas di divisi restoran
resign, sehingga saya ditugaskan untuk membackup
troubleshooting aplikasi POS tersebut. Aplikasi ini lumayan bagus, fiturnya juga lumayan lengkap, ada menu Front Office yang GUI-nya sudah mendukung pemakaian dengan
touch screen, kemudian ada menu Kitchen, Back Office, dan masih banyak lagi. Aplikasi ini menggunakan
database server MySQL. Kemudian saya menanyakan atasan saya, apakah kita diberi
password database-nya? Dia mengatakan kita tidak diberi
password database. Tiba - tiba indra laba laba saya bergetar hebat, naluri hacker muncul alias rasa ingin ngintip
password muncul. Dari sinilah timbul keinginan saya untuk menjebol
username dan
password database aplikasi ini. Berikut akan saya terangkan langkah langkah saya dalam membobol/menjebol/menembus atau apapun istilahnya. Beberapa langkah saya buat samar, karena saya sebagai
programer juga tidak ingin aplikasi saya dijebol kemudian diperbanyak tanpa sepengetahuan saya. Programmer juga butuh makan :).
Hal pertama yang saya lakukan adalah mengendus/
sniff user database yang dikirimkan oleh aplikasi ke server, pertama saya gunakan aplikasi
WireShark. Hanya karena tampilanya terlalu rumit akhirnya saya gunakan aplikasi
Cain and Abel yang lebih "
user friendly". Dari aplikasi ini saya mendapatkan
username database MySQL yang digunakan aplikasi POS ini. Awalnya saya berharap mendapatkan
username dan
password, akan tetapi
password-nya menggunakan
hashing atau memang tidak terlacak oleh aplikasi Cain and Abel seperti terlihat pada gambar di bawah.
|
Cain and Abel - Sniffer |
Sebagai tambahan informasi, kode
hashing sendiri tidak bisa di-
decode balik untuk menghasilkan string
password. Tidak seperti ketika kita mengkodekan password misal huruf A menjadi 1, huruf B menjadi 2. Yang bisa dilakukan adalah mengecek hasil kode
hashing yang kita
generate apakah sama dengan hasil kode
hashing yang ada, jika sama maka
password kita benar. Dan tentu saja ini memakan waktu yang sangat lama. Pada aplikasi Cain and Abel fasilitas
Cracking ini ada.
|
Cain and Abel - MySQL Hashes |
|
Brute Force Attack - Jika password panjang bisa bertahun tahun lama-nya |
Seteleh ketemu, kemudian saya mencoba
crack menggunakan aplikasi Cain and Abel hanya tentu saja ini memakan waktu lama, akhirnya saya memutuskan untuk menggunakan teknik lain yaitu membongkar aplikasi POS-nya. Pertama saya cek aplikasi POS ini dibuat dengan menggunakan bahasa pemrograman apa, kemudian baru saya gunakan aplikasi
decompiler untuk melihat isinya. Memang saya tidak akan mengecek keseluruhan program, tetapi hanya mencari string
password dengan modal
username yang sudah saya dapatkan lebih dahulu. Hal ini tentu saja untuk mempercepat pencarian, bisa saja anda mencari langsung dari hasil
decompiler tersebut, hanya itu memakan waktu dan anda juga harus mempunyai pengetahuan yang cukup mengenai bahasa pemrograman tersebut.
Setelah aplikasi saya jalankan, saya menggunakan command
tasklist untuk mengecek aplikasi POS ini dibuat dengan bahasa pemrogramana apa.Yaitu kita masuk pada
command prompt, kemudian kita ketik
tasklist / m, lalu kita cek aplikasi POS tersebut load modul apa saja.
|
tasklist / m - untuk mengecek file exe |
Pada gambar di atas terlihat aplikasi POS tersebut menggunakan modul
MSVBVM60.DLL, yang artinya aplikasi POS ini dibuat menggunakan bahasa pemrograman Visual Basic versi 6.0. Kemudian berikutnya yang saya lakukan adalah membongkar file exe tersebut dengan VB Decompiler. Ada banyak aplikasi VB
decompiler silakan anda mencari sendiri di internet dengan bantuan google tentu saja. Setelah muncul hasil
decompiler, maka langkah saya berikutnya adalah mencari
string username yang sebelumnya sudah saya temukan, dan tentu saja beberapa detik kemudian keajaiban itu muncul, string
password nongkrong dengan manisnya dibawah string
username!
|
VB Decompiler - P32Dasm |
Dengan mendapatkan akses
full ke database tentu saja ini membuat level anda menjadi setingkat dewa, artinya anda bisa membuat password
superuser aplikasi
untuk mendapatkan fitur penuh dari aplikasi tersebut.Teknik ini tidak akan saya bahas karena saya menghargai si pembuat software POS tersebut.
Semoga pengalaman saya di atas bisa menambah pengetahuan teman - teman. Dan semoga ilmu atau pengetahuan tersebut digunakan untuk hal yang baik. Beberapa item memang saya samarkan karena saya menghargai si pembuat software tersebut. Beberapa tips dari saya untuk kasus di atas adalah :
- Usahakan jangan membuat kode pemrograman yang menuliskan username dan password database pada file EXE, bisa ditaruh di file lain misal file .DLL, atau username dan password dalam kondisi dienkripsi. Menuliskan atau membuat kode yang berisi username dan password default database , akan gampang sekali dijebol oleh hacker kelas teri.
- Gunakan kode bahasa pemrograman dalam bentuk rumus untuk mengenerate password sehingga tidak mudah dibaca kodenya meskipun di-decompiler.
- Bisa juga gunakan Anti Decompiler untuk mencegah teknik di atas.
Istilah
hashing,
crack password, MD5
, RSA, Kriptografi dan sebagainya selalu mengingatkan saya pada dosen saya sewaktu kuliah S1 yang berasal dari Jerman yaitu Dr. Volker Müller. Sewaktu saya kuliah dia mengajar mata kuliah Keamanan Komputer. Meskipun nilai saya tidak terlalu bagus pada mata kuliah dia, tetapi pengajarannya selalu menarik bagi saya, meskipun dia orang Jerman tetapi bahasa Indonesianya sudah cukup bagus dan lancar. Kadang juga dia sering membuat
joke, jika anda orang asing yang belajar bahasa Indonesia dan bisa membut
joke dalam bahasa Indonesia, artinya level anda sudah mahir dalam bahasa indonesia. Juga dia menceritakan bagaimana dia seorang
Linux Freak, cara menebak
password sekumpulan data nomor, dan cerita dia menjebol keamanan salah satu bank dan masih banyak lagi. Terima kasih Pak Volker Müller atas ilmunya.
|
Dr Volker Müller |
Semoga bermanfaat!