Home General Computer Multimedia Business Lounge
|
Membuat Password Cracker dengan PHP
|
|
09-12-2011, 11:18 AM
|
|||
|
|||
|
Membuat Password Cracker dengan PHP
Di dunia maya memang tidak ada yang 100% benar-benar aman, ada saja cara untuk mendapatkan jalan agar mendapatkan akses penuh kedalam sebuah sistem, melalui berbagai vulnerbality yang ada sampai memanfaatkan tools yang ada untuk memecahkan sandi-sandi yang disusun oleh system maupun developer-nya, tetapi tidak ada satupun tools yang bisa menjamin bahwa mereka akan berhasil melakukan pemecahannya, disini saya akan mencoba membuat sebuah tools sederhana untuk memecahkan sandi password yang berbentuk md5 hash
Password Cracker Apasih password Cracker itu ? bagaimana sih cara kerjanya ? itu adalah pertanyaan yang harus kita jawab dan kita te-laah dalam-dalam agar bisa membuat sebuah password cracker, password cracker sendiri adalah sebuah tools atau program yang dapat menebak atau mencari palin text dari chiper text sebuah password, cara kerja dari password cracker cukup banyak, seperti membandingkan jumlah byte yang ada, membandingkan panjang string sebelum dan sesudah di enkripsi, dan memdandingkan dengan kata-kata yang terdaftar atau disebut juga dengan Dictioanry Attack, password cracker bisa di buat dengan banyak bahasa pemrograman, saya akan mencoba membuat sebuah password cracker dengan menggunakan PHP, kenapa PHP ? karena saya hanya bisa PHP ![]() Alur Kerja sebelum kita melanjutkan ke tahap sebelumnya, kita harus sepakati dulu, bahwa teknik yang kita gunakan adalah Bruteforcing dengan Dictionary Attack, atau mengambil daftar kata yang ada dalam sebuah file (kamus kata), kemudian setiap kata akan kita rubah menjadi bentuk md5(hash) md5 hash adalah sebuah jenis chiper text satu arah, atau one-way-hasing atau enkripsi satu arah, artinya proses setelah menjadi chiper text tidak bisa kita rubah kembali menjadi plaintext oleh karena itu kita menggunakan logika perbandingan untuk memecahkannya, setelah kata yang ada dalam kamus kata kita jadikan md5(hash) maka hasilnya akan kita cocokkan atau kita bandingkan dengan hash md5 yang akan kita pecahkan, berikut flow dari cara kerjanya PHP Code: kamus_kata.txtAnalisa Code Setelah kita memahami alur dari cara kerja password cracker yang akan kita buat, sekarang saatnya kita mengatur susunan code untuk prosesnya, menyusun object beserta fungsi-fungsi yang akan kita gunakan nantinya untuk proses cracking password, kita akan menggunakan metode OOP (object Oriented Programming) agar susunan kode kita terlihat lebih baik dan mudah untuk dipahami, adapun susuna fungsinya sebagai berikut PHP Code: class Cracker{function __construct() Setelah kita menyusun struktur dari program kita sekarang kita akan menentkan variable-variable yang akan kita gunakan untuk kebutuhan aplikasi kita nantinya kedalam fungsi-fungsi yang telah kita susun, function __construct() merupakan fungsi pertama yang akan di jalankan ketika aplikasi kita di panggil, dengan begitu kita harus menentukan variablenya terlebih dahulu, seperti validasi inputan, jenis hash, dan memeriksa keberadaan kamus kata, lihat contoh di bawah PHP Code: function __construct($hash='', $salt='', $dict='')Pada potongan kode di atas kita bisa melihat bahwa pada saat pertama kali program di jalankan maka contructor akan langsung memanggil semua fungsi-fungsi lain sesuai kebutuhan, tentu saja setelah semua variable yang ada di validasi sebelumnya, jika sekarang program kita jalankan maka tidak akan terjadi apa-apa, karena fungsi yang lain belum kita buat, berikut kode program untuk fungsi-fungsi laiinya function dict_size() Fungsi ini sebenarnya tidak terlalu riskan, hanya saja fungsi ini akan menampilkan informasi seberapa besar ukuran kamus kata yang sedang kita gunakan dalam ukuran mega byte(MB) atau giga byte (GB), berikut kodenya PHP Code: function dict_size($f){function exec_time() Fungsi ini berguna menunjukan informasi waktu proses dalam memecahkan sandi md5(hash), dengan informasi ini kita bisa tau seberapa lama atau memakan waktu seberapa lama untuk memecahkan sandi tertentu, berikut kodenya PHP Code: function exec_time()function crack_salt() Ini merupakan fungsi utama sebenarnya dalam program cracking kita kali ini, fungsi ini akan membaca baris demi baris kata yang ada dalam kamus kata, kemudian menjadikannya kedalam bentuk md5(hash), kemudian membandingkannya dengan md5(hash) yang asli, jika ukuran, bentuk, dan panjang byte dari perbandingan tersebut sama maka baris kata yang ada pada kamus kata merupakan plain text dari md5(hash) yang asli, berikut kodenya PHP Code: function crack_salt()Disini saya menggunakan fungsi fopen() untuk membaca file kamus kata, karena fungsi fopen() akan membaca file berdasarkan baris perbaris, dan tidak menjadikannya array() (penggunaan array akan menkonsumsi memory cukup besar, karena jenis array akan membaca semua isi file dan memasukannya kedalam memory, jika ukuran file sebesar 1GB dan ukuran memory hanya 1GB maka system komputer kita akan crash, karena semua resouce terpakai habis, berbeda jika kita menggunakan fopen(), fopen() membaca baris perbaris yang ukurnnya hanya sekitar 8 byte perbaris dan tidak memasukkanya kedalam memory, setelah baris pertama selesai, maka memory akan di berishkan dengan fclose(), kemudian baru melanjutkan ke baris berikutnya, tentu saja dengan fungsi ini kita bisa menghemat memory dengan sangat efisien function crack_no_salt() Fungsi ini tidak jauh berbeda dengan fungsi sebelumnya, tugasnya juga sama, yaitu memecahkan password berdasarkan baris kata yang ada di dalam kamus kata, hanya saja tidak menggunakan salt, salt merupakan karakter penguat sebuha password, jika pada fungsi sebelumnya menggunakan if($this->hash == md5(md5($cek,$this->salt))) maka dibagian ini kita tidak menggunakan $his->salt, perhatikan kode di bawah PHP Code: function crack_no_salt()function logo() Fungsi ini juga sebenarnya tidak terlalu penting, hanya sebagai penghias tampilan saja agar terlihat sedikit elegan dan bergaya hacker (cracker), hanya saja pada fungsi ini terdapat fungsi kecil yang akan membersihkan layar ketika di panggil, check the code PHP Code: function logo()That's it yap hanya segitu program sederhana password cracking yang kita buat, walapun dengan tools yang sederhana ini kita bisa memcahkan md5(hash) password, dengan bersabar tentu saja, karena mengingat teknik yang kita gunakan adalah Dictionary Attack, mungkin akan memakan waktu yang cukup(lama) tergantung dari tingkat panjang-susunan salt dari password hash yang akan kita crack, tentu saja program ini masih sangat bisa untuk dikembangkan, menambahkan fungsi-fungsi lain yang pastinya bisa menignkatkan kinjerja dan fungsionalitas dari program yang kita buat, berikut script lengkap program password Craking kita kali ini PHP Code: <?phpUntuk informasi, saya membuat dan melakukan ujicoba di sistem operasi linux ubuntu 11.04 saya rasa di windows juga tidak ada masalah, untuk pengguna nix (ubuntu linux) yang sudah terinstall php5-cli saya rasa sangat mudah, hanya tinggal memanggil nama scriptnya saja, seperti berikut PHP Code: #md5 hash tanpa saltHasilnya akan seperti berikut ![]() Pada ujicoba di atas saya menggunakan kamus kata sebesar 2GB dengan panjang kata 4 - 6, dan melakukan password cracking untuk md5(hash) biasa dengan waktu 21 detik, dan untuk md5(hash) dengan salt (axf) dengan waktu 22 detik, dan menemukan plaintext dari keduanya "admin", tentu saja memang itu password yang sanagat mudah,tetapi untuk password yang lain juga saya rasa sama, hanya tergantung seberapa banyak kamus (koleksi kata) yang anda miliki, semakin banyak semakin besar peluang anda untuk memecahkan password tersebut ![]() Sekian dulu, thanks fo reading |
|||
|
09-12-2011, 11:25 AM
|
|||
|
|||
|
RE: Membuat Password Cracker dengan PHP
ijin pelajari omz wenk...
|
|||
|
09-12-2011, 11:26 AM
|
|||
|
|||
|
RE: Membuat Password Cracker dengan PHP
seep om
![]() makasih juga buat tutorial yg ini -> http://khairu.net/index.php/page/artikel...P-dan-cURL membantu banget buat skripsi ane
|
|||
|
09-12-2011, 11:28 AM
|
|||
|
|||
RE: Membuat Password Cracker dengan PHP
(09-12-2011 11:25 AM)banditos21 Wrote: ijin pelajari omz wenk... silahkan om :) semoga membantu (09-12-2011 11:26 AM)t3k0 Wrote: seep om sama-sama om, semoba bisa membantu :) |
|||
|
09-12-2011, 11:32 AM
|
|||
|
|||
|
RE: Membuat Password Cracker dengan PHP
izin coba omz..
bagus nih buat dipelajar..
|
|||
|
09-12-2011, 11:37 AM
|
|||
|
|||
|
RE: Membuat Password Cracker dengan PHP
cek pm fb om ane mau archivin yang ini
|
|||
|
09-12-2011, 11:42 AM
|
|||
|
|||
|
RE: Membuat Password Cracker dengan PHP
keren om wenk tuk tutornya
![]() langsung ane uji coba ea om
|
|||
|
09-12-2011, 12:13 PM
|
|||
|
|||
|
RE: Membuat Password Cracker dengan PHP
Wah... MAntab abis.......
Makasih om ilmunya... Btw mo nanya nih, yg function crack_salt.. (09-12-2011 11:18 AM)wenkhairu Wrote: function crack_salt()if($this->hash == md5(md5($cek,$this->salt))){ Ane masih bingung om kenapa md5nya dikasi double? |
|||
|
09-12-2011, 12:19 PM
|
|||
|
|||
RE: Membuat Password Cracker dengan PHP
(09-12-2011 12:13 PM)ditatompel Wrote: Wah... MAntab abis....... itu kan cuman customisasi, karena md5 kalo pake salt kan bisa di kreasikan dengan berbagai macam bentuk,seperti misalnya PHP Code: md5(md5($pass, $salt),$salt);jadi ga ada ketentuan mau pake yang mana, dan itu bisa di ganti sesuai kebutuhan, misalnya seperti pasword vbulltien kan menggunakan salt sebanyak tiga karakter, trus formatnya kalo ga salah md5(md5($pass, $salt)) gitu (kalo ga salah firmatnya gitu, dah lupa soalnya), ya intinya tergantung dari kebutuhan aja, karena chiper text one way hasing yang menggunaka custom salt bisa banyak cara |
|||
|
09-12-2011, 12:25 PM
|
|||
|
|||
RE: Membuat Password Cracker dengan PHP
(09-12-2011 12:19 PM)wenkhairu Wrote: itu kan cuman customisasi, karena md5 kalo pake salt kan bisa di kreasikan dengan berbagai macam bentuk,seperti misalnya Owhhh... Ngerti ane... function cracknya custom sesuai kebutuhan yak? Misal format myBB PHP Code: md5(md5($pass, $salt),$salt); PHP Code: if($this->hash == md5(md5($cek,$this->salt),$this->salt)){ gitu ya? Sip2... makasih om... Ane pelajari lebih lanjut dulu...
|
|||
|
« Next Oldest | Next Newest »
|
| Topic Tools | ||||||
| ||||||
| Users Browsing |
| 1 Guest(s) |




![[Image: pass1.png]](http://khairu.net/images/pass1.png)
![[Image: pass2.png]](http://khairu.net/images/pass2.png)











