Pages

Friday, October 12, 2018

Cara Mengetahui Password Pada Aplikasi VB

Sneakers : Film buatan tahun 1992 tentang sekelompok hacker, salah satu film favorit.

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 :

  1. 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.
  2. Gunakan kode bahasa pemrograman dalam bentuk rumus  untuk mengenerate password sehingga tidak mudah dibaca kodenya meskipun di-decompiler.
  3. 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!

No comments:

Post a Comment