1 Cain and Abel
Cain & Abel adalah alat recovery password untuk Sistem Operasi Microsoft. Memungkinkan cracking password terenkripsi menggunakan Dictionary-Attack, Brute-Force Attack dan serangan kriptanalisis, merekam percakapan VoIP, decoding password teracak, memulihkan kunci jaringan wireless, mengungkap password cache dan menganalisis routing protokol. Program ini tidak memanfaatkan kerentanan perangkat lunak atau bug yang tidak dapat diperbaiki. Ini mencakup beberapa aspek keamanan atau kelemahan yang ada dalam protokol standar, metode otentikasi dan mekanisme caching. Tujuan utamanya adalah pemulihan password dan kredensial dari berbagai sumber. 

2 Brutus

Brutus adalah jenis password cracker yang bekerja secara online, mencoba membobol telnet, POP3, FTP, HTTP, RAS atau IMAP dengan hanya mencoba untuk login sebagai pengguna yang sah. Brutus dapat berjalan dalam modus single user yaitu mencoba masuk ke akun pengguna tunggal dengan mencoba kombinasi password yang berbeda atau dengan mencoba daftar kombinasi user atau  password dari file word (dictionary). Aplikasi akan memindai host untuk layanan yang dikenal dan dapat dengan mudah dimodifikasi untuk break-in layanan kustom lain yang membutuhkan logon interaktif dari sebuah username dan password. 

3 Hydra

Hydra adalah sebuah software yang dikembangkan oleh sebuah organisasi bernama "The Hacker's Choice" (THC) yang menggunakan brute force dan dictionary attack untuk menguji  password yang lemah atau password sederhana. Ia dirancang sebagai bukti untuk menunjukkan kemudahan cracking password karena password yang dipilih buruk. Proyek ini mendukung berbagai layanan dan protokol: AFP, TELNET, FTP, HTTP, HTTPS, SMB, MS-SQL, MySQL, REXEC, RSH, rlogin, CVS, SNMP, SOCKS5, VNC, POP3, IMAP, NNTP, NCP, PCNFS, ICQ, Cisco dan lain-lain.. 

4 RainbowCrack

RainbowCrack menggunakan metode rainbow table untuk memecahkan enkripsi password. RainbowCrack memecahakn berbagai jenis enkripsi, diantaranya LM, NTLM, MD5, SHA-1.  Cracking password dengan mengunakan metode ini memakan waktu lama untuk meng-generate rainbow table-nya, tetapi jika telah digenerate metode ini akan sangat efektif, dan membutuhkan waktu lebih singkat jika dibandingkan dengan software yang meggunakan metode brute force atau dictionary attack.

5 John The Ripper

John the Ripper merupakan password cracking perangkat lunak gratis yang menggunakan metode Brute force attack dan dictionary attack. Awalnya dikembangkan untuk sistem operasi UNIX, tetapi saat ini tersedia juga untuk Linux, Mac dan Windows. Ini adalah salah satu program pengujian password dengan mengombinasikan sejumlah password cracker ke dalam satu paket, autodetects jenis hash password, dan memasukkan cracker yang dapat dimodifikasi. Hal ini dapat dijalankan dalam berbagai format enkripsi sperti Unix (DES, MD5, atau Blowfish), Kerberos AFS, dan Windows NT/2000/XP/2003, LM hash.

Rainbow table adalah lookup table yang digunakan untuk mendapatkan plain text dari password yang telah dirubah menggunakan fungsi hash. Rainbow table berawal dari ide Martin Edward Hellman pada tahun 1982. Kemudian dikembangkan oleh Philippe Oechslin dengan metode Faster Time Memory Trade Off pada tahun 2003. Pada penelitian yang dilakukan Philippe Oechslin, penggunaan rainbow table dapat mempersingkat waktu penyerangan terhadap Microsoft's LAN Manager passwords sampai 99,9%, yaitu dari 101 detik hanya menjadi 13,6 detik.

Cracking password menggunakan rainbow table tidak sesulit cracking dengan cara brute force. Rainbow table membuat pssword cracking lebih cepat dibandingkan dengan metode sebelumnya, seperti brute force attack dan dictionary attack. Berdasarkan pada software password cracking yang menggunakan metode rainbow table mampu memecahkan password 14 karakter alfanumerik sekitar 160 detik.

Rainbow table dibentuk oleh fungsi hash dan fungsi reduksi. Fungsi hash merubah plaintext enjadi hash, sedangkan fungsi reduksi merubah hash menjadi plain text. Tetapi, perlu diingat bahwa fungsi reduksi bukan merupakan kebalikan dari fungsi hash. Fungsi hash dan fungsi reduksi bersifat irreversible. Jadi, apabila kita merubah sebuah hash dengan menggunakan fungsi reduksi, maka plain text yang didapat bukanlah plain text aslinya, melainkan plain text lain.
Konsep dasar pambangunan rainbow table sebagai berikut
                                                Gambar 2
                Gambar 1

                                                                             Gambar 3

                                                                                       

      
Kererangan gambar :
Gambar 1
Pembentukan hash kode dari suatu plain text dengan menggunakan fungsi hash, misalnya MD5.

Gambar 2 
Setelah plain text dirubah menjadi hash, akan dibentuk suatu palin text dengan proses reduce. Reduce merupakan suatu fungsi yang akan mereduksi hash kode menurut algoritma tertentu,  fungsi reduksi ini bukan merupakan kebalikan dari fungsi hash, karena hash sendiri merupakan fungsi satu arah. Jadi ketika suatu pain text sudah di-generate hash kodenya, maka tidak bisa dikembalikan menjadi plain text dengan fungsi yang sama.

Gambar 3
Proses yang terjadi dalam pembangunan rainbow table adalah proses hashing dan reducing berulang dan nantinya yang  akan disimpan di dalam rainbow table hanya berupa start plain text sample dan hash kode terakhir yang di-generate.   
Sebagai contoh dari proses di atas disajikan dalam tabel berikut,

Starting Point
End Point
Makalah
kriptografi
Keamanan
informasi
Informatika
telematika

Untuk proses peretasan password dapat dapat dilakukan sebagai berikut,
Misal diketahui suatu  hash code f1e2d3c4 dan akan dicari plaintext-nya. Langkah pencarian tersebut dapat dilihat pada diagram di bawah ini,

 
Penjelasan gambar :
1. Dengan menggunakan fungsi reduksi terakhir hash code f1e2d3c4, diubah menjadi plaintext. Kemudian dicek apakah password hasil fungsi reduksi terdapat pada kolom endpoint pada tabel.
2. Jika langkah 1 gagal, artinya indonesia tidak terdapat pada tabel, maka dengan menggunakan dua fungsi reduksi terakhir dibuat rantai hash. Apabila tidak terdapat password pada tahap ini, dilakukan pembuatan rantai dengan menggunakan tiga reduksi, empat reduksi, dan seterusnya sampai password ditemukan. Jika tidak terdapat password pada rantai, maka password gagal didapat.
3. Jika langkah 2 berhasil (terdapat password pada rantai), maka password didapat dengan cara membentuk rantai dimulai dari starting point dari end point yang bersangkutan. Dalam contoh ini, starting point yang dimaksud adalah telematika.
4. Pada langkah ini, dimulai dari starting point, dalam  hal ini informatika, dibuat rantai. Pembuatan rantai dilakukan dengan cara membandingkan nilai hash dari starting point dengan nilai hash yang dimaksud (f1e2d3c4). Jika tidak sesuai, lakukan fungsi reduksi dari nilai hash ini. Begitu seterusnya sampai didapat nilai hash yang dimaksud. Password yang bersesuaian adalah password sebelum dilakukan hash sehingga menghasilkan nilai hash yang dimaksud. Dalam contoh ini password dari nilai hash code f1e2d3c4 adalah kuliah.

Tidak berbeda dengan metode-metode cracking password sebelumnya, metode rainbow table juga memiliki kelebihan dan kekurangan. Kelebihan dari metode ini adalah waktu yang dibutuhkan untuk meretas password relatif cepat, adapun kekurangannya antara lain, membutuhkan komputasi dan memori yang besar, ada kemungkinan terjadi looping (kembali ke start plaintext lagi), kemungkinan terdapat dua atau lebih plaintext atau hases yang berujung sama.


Dictionary attack adalah sebuah teknik untuk melawan cipher atau melawan mekanisme otentikasi dengan cara menentukan kunci dekripsi dengan mencari kemungkinan kombinasi kata yang terdapat di dalam sebuah kamus.
            Pada dasarnya dictionary attack adalah pengembangan dari brute force attack, yaitu mencoba memecahkan kode dengan mencoba satu per satu kemungkinan secara berulang (exhaustive search). Akan tetapi dictionary attack bukan mencoba kombinasi satu per satu karakter yang tersedia seperti brute force, melainkan mencoba kombinasi kata yang paling mungkin berhasil dengan input sebuah “list of word” yang dapat didefinisikan (Dictionary), yang biasanya berasal dari daftar kombinasi kata-kata umum yang terdapat dalam kamus, misalnya kamus bahasa Inggris.
Dictionary attack merupakan serangan yang sangat efektif untuk memecahkan kode dan sering digunakan hacker untuk membobol sistem keamanan yang berupa password, seperti akun email, akun jejaring sosial, halaman administrator situs web, dan lain-lain. Dictionary attack dianggap efektif karena memanfaatkan psikologi manusia, yaitu kebiasaan bahwa pengguna akun akan menggunakan kata-kata yang lumrah dan mudah diingat sebagai password suatu akun tertentu, misalnya tanggal lahir, makanan kesukaan, nama orang tua, dan lain-lain. Kata-kata ini merupakan kata yang terdapat dalam kamus (karena merupakan kata yang digunakan sehari-hari) dan mudah diingat. Psikologi manusia dalam membuat password juga telah dikaji dan dibuktikan dengan penelitian.  Saat ini dictionary attack telah dikembangkan variasinya dan semakin tinggi efektivitasnya, sehingga teknik ini masih sering digunakan untuk membobol password pengguna sebuah akun.

Cara Kerja Dictionary Attack
Sistem operasi seperti Windows menyimpan password ke dalam bentuk terenkripsi yang disebut hashes. Password tidak dapat diambil (retrieved) secara langsung dari hashes. Untuk melakukan recover password diperlukan komputasi terhadap hashes dengan possible password (kata-kata yang diduga sebagai password) dan memasukkannya ke dalam list of hashes.
Hacker mengumpulkan kata-kata yang sering digunakan sebagai password ini ke dalam sebuah file yang dinamakan sebagai dictionary (kamus) dan file ini bisa didapatkan dengan mudah di Internet seperti di situs http://lastbit.com/dict.asp, atau kita juga bisa membuatnya sendiri atau menambahkannya dari file dictionary yang sudah ada
.
Gambar di bawah ini merupakan alur proses dari dictionary attack:

Program cracking akan mengubah satu persatu kata-kata yang ada di dalam kamus berdasarkan fungsi hash yang digunakan ke dalam bentuk tabel hash. Hasil perubahan ini kemudian dicocokkan dengan hash pada file password yang didapatkan. Apabila hasil hash ini cocok, artinya password sudah berhasil diketahui. Dengan teknik ini, hacker tidak perlu mencoba semua kombinasi karakter yang ada (seperti brute force attack) sehingga bisa menghemat banyak waktu dan tenaga.
Kentungan dari metode dictionary attack adalah waktu yang dibutuhkan relatif singkat. Sedangkan kelemahan dari metode ini adalah hanya dapat menebak password yang terdiri dari kombinasi kata-kata yang terdapat pada kamus (contoh: jika password pengguna menggunakan kombinasi huruf angka yang tidak terdapat dalam kamus, maka password tidak akan tertebak).
Serangan brute-force adalah sebuah teknik serangan terhadap sebuah sistem keamaman komputer 
yang menggunakan percobaan terhadap semua kunci yang mungkin. Pendekatan ini pada awalnya merujuk pada sebuah program komputer yang mengandalkan kekuatan pemrosesan komputer dibandingkan kecerdasan manusia.  Istilah brute force sendiri dipopulerkan oleh Kenneth Thompson, dengan mottonya:
"When in doubt, use brute-force" (jika ragu, gunakan brute-force).
Secara sederhana, sistem serangan brute-force adalah sistem menebak password dan mencoba semua kombinasi karakter yang mungkin.  Brute force attack digunakan untuk menjebol akses ke suatu host (server/workstation/network) atau kepada data yang terenkripsi. Metode ini dipakai para cracker untuk mendapatkan account secara tidak sah, dan sangat berguna untuk memecahkan enkripsi. Pemakaian password sembarangan, memakai password yang hanya sepanjang 3 karakter, menggunakan kata kunci yang mudah ditebak, menggunakan password yang sama, menggunakan nama, memakai nomor telepon, sudah pasti sangat tidak aman. Beberapa faktor yang menjadi keuntungan seorang hacker, bisanya disebabkan oleh kemalasan manusia itu sendiri. Namun brute force attack bisa saja memakan waktu lama bahkan sampai berbulan-bulan atau tahun tergantung dari tingkat kerumitan password dan kecepatan prosesornya.
Hal-hal yang perlu diperhatikan dalam menggunakan metode brute force attack :
a.        Asumsikan bahwa password diketik dalam huruf kecil (lower case).
Pada kasus ini, waktu yang dibutuhkan akan cenderung sama tetapi jika password mengandung huruf kapital (upper case) cara ini tidak akan berhasil.
b.       Coba semua kemungkinan.
Tujuh karakter lower case membutuhkan sekitar 4 jam untuk berhasil mendapatkan password  tetapi jika dicoba semua kemungkinan kombinasi antara karakter upper case dan lower case akan membutuhkan waktu sekitar 23 hari.
c.       Metode ketiga adalah trade-off.
Hanya kombinasi-kombinasi yang mungkin yang dimasukkan dalam pencarian, sebagai contoh “password”, “PASSWORD” dan “Password”. Kombinasi rumit seperti “pAssWOrD” tidak dimasukkan dalam proses. Dalam kasus ini, lambatnya proses dapat tertangani tetapi ada kemungkinan password tidak ditemukan.
Feasibility dari sebuah brute force attack tergantung dari panjangnya cipher yang ingin dipecahkan, dan jumlah komputasi yang tersedia untuk penyerang. Kuncinya adalah mencoba semua kemungkinan password dengan formula seperti berikut. 



L = jumlah karakter yang kita ingin definsikan
m = panjang minimum dari kunci
M = panjang maksimal dari kunci
Contohnya saat kita ingin meretas sebuah LanManager paswords (LM) dengan karakter set "ABCDEFGHIJKLMNOPQRSTUVWXYZ" dengan jumlah 26 karakter, maka brute force cracker harus mencoba  = 8353082582 kunci yang berbeda. Jika ingin meretas password yang sama dengan set karakter set "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789! @#$%^&*()-_+=~`[]{}|\:;"'<>,.?/", jumlah kunci akan dihasilkan akan naik menjadi 6823331935124. Brute Force attack melakukan perbandingan string matching antara pattern dengan text per karakter dengan pseudocode berikut :
do if (text letter == pattern letter)
compare next letter of pattern to next letter of text
else move pattern down text by one letter
while (entire pattern found or end of text)

Brute-Foce Indicator/Charactersitic
Sebuah serangan brute-force  memiliki beberapa ciri-ciri tertentu. Berikut adalah beberapa ciri-ciri indikator yang dapat menjadi parameter penulis dalam mendefinisikan sebuah paket serangan brute-force.
1. Jumlah percobaan login gagal berasal dari alamat IP yang sama
2. Melakukan percobaan login dengan beberapa/ lebih dari satu username dari alamat IP yang sama.
3. Percobaan login untuk satu account yang berasal dari banyak alamat IP yang berbeda
4. Percobaan gagal login dengan kombinasi username dan password yang terurut sesuai abjad.
5. Login dengan “password hacker” mencurigakan atau tools brute-force  yang biasa digunakan, seperti hydra, ownsyou (ownzyou), washere (wazhere), fanatik, hacksyou, dan lain-lain.



Kelebiahn dari metode brute force adalah dapat membongkar hampir semua jenis enkripsi namun memiliki kelemahan yaitu memerlukan waktu yang sangat lama untuk mendapatkan password. Walaupun sudah kuno, teknik penyerangan yang membosankan ini bisa berhasil seperti yang lebih baru dan menarik. Walaupun dianggap low-tech, brute force attack dapat menjadi sangat efektif dalam membahayakan sebuah Aplikasi Web kecuali mempunyai mekanisme defense tersendiri. Cracking dengan Brute Force akan sangat lamban jika dihadapkan pada enkripsi yang kuat,(misalnya dengan ukuran password yang lebih panjang).



Sebuah password dapat dibongkar dengan menggunakan program yang disebut sebagai passsword cracker. Password cracking adalah proses pemulihan password dari data yang telah di simpan oleh sistem komputer. Cracking mencoba membuka sebuah password yang telah terenkripsi dengan menggunakan sebuah algoritma tertentu dengan cara mencoba semua kemungkinan. Password cracking mengacu pada proses mendapatkan password dari data  yang dilindungi dengan password. Perlu diingat bahwa cara menipu seseorang agar memberikan password, seperti phising  buka merupakan metode password cracking. Password cracking menebak password berdasarkan pengetahuan yang sudah ada dan tidak di ketahui sebelumnya dari pemilik sistem komputer.
Teknik password cracking sangat sedarhana, tapi efektivitasnya luar biasa, dan tidak ada satu pun sistem yang aman dari serangan ini, meski teknik ini memakan waktu yang sangat lama, khususnya untuk password yang rumit. Namun ini tidak berarti bahwa password cracker membutuhkan decrypt. Pada prakteknya, mereka kebayakan tidak melakukan itu. Umumnya, kita tidak dapat melakukan decrypt password-password yang sudah terenkripsi dengan algoritma yang kuat. Proses proses enkripsi modern kebanyakan hanya memberikan satu jalan, di mana tidak ada proses pengembalian enkripsi. Program password cracker adalah mesin-mesin ulet. Ia akan mencoba kata demi kata dalam kecepatan tinggi. Mereka menganut "Asas Keberuntungan", dengan harapan bahwa pada kesempatan tertentu akan menemukan kata atau kalimat yang cocok. Teori ini mungkin tepat mengena pada mereka yang terbiasa membuat password asal-asalan. Dan memang pada kenyataannya, sebuah password yang mudah di ingat umumnya juga mudah bagi attacker untuk menebak sedangkan password yang baik sulit untuk ditembus oleh program password cracker. Namun password yang sulit diingat akan mengurangi keamanan sistem  kerena mungkin  user perlu menulis atau menyimpan dalam media elektronik, (misalnya notebook) yang bisa di ketahui oleh orang lain.
Lamanya waktu yang dibutuhkan seorang cracker untuk menemukan password tergantung dari kekuatan password dan kecepatan komputer. untuk beberpa jenis enkripsi password, komputer dekstop dapat meguji lebih dari seratus juta password  per detik dan milyaran password per detik menggunakan GPU khusus untuk cracking password.
Banyak metode serangan terhadap kriptografi yang hingga saat ini masih dianggap efektif untuk memecahkan password, beberapa diantaranya yaitu brute force, dictoinary attack, rainbow table attack.

Dalam era teknologi seperti sekarang ini hampir semua aspek kehidupan tidak lepas dari koneksi internet, dalam keseharian saja  misalnya, mulai dari bisnis, transaksi keuangan, komunikasi, jejaring sosial,pesan makanan hingga pesan ojek  pun di lakukan dengan menggunakan koneksi internet. Begitu di manjanya kita dengan kemudahan-kemudahan yang ditawarkan dengan adanya fasilitas tersebut. Namun di balik kemudahan-kemudahan itu seringkali kita mengabaikan  masalah keamanan. Keamanan data maupun keamanan aplikasi  merupakan hal yang sangat penting diperhatikan dalam menggunakan layanan internet.
Salah satu metode pengamanan sistem informasi yang umum diketahui oleh banyak orang adalah password. Tanpa disadari password mempunyai peranan penting dalam mengamankan informasi-informasi yang sifatnya pribadi (confidential). Pada beberapa aplikasi yang berhubungan dengan piranti lunak, seperti HP, kartu ATM, dll.,
Password adalah salah satu prosedur kemanan yang sulit untuk diserang, seorang attacker mungkin saja mempunyai banyak tools (secara teknik maupun dalam kehidupan sosial) hanya untuk membuka sesuatu yang dilindungi oleh password.  Tetapi banyak user tidak perduli dengan passsword yang mereka miliki. Banyak para pengguna password membuat password secara sembarangan tanpa mengetahui kebijakan pengamanan (password policy) dan bagaimana membuat password yang kuat (strong password). Mereka tidak sadar dengan bahayanya serangan sandi (password attacks) yang dapat mencuri atau mengacak-acak informasi tersebut. Ketika seorang attacker berhasil mendapatkan password yang dimiliki oleh seorang user, maka ia akan mempunyai kekuasaan yang sama dengan user tersebut. Oleh karena itu, kriptogarafi dan sistem keamanan komputer sangat dibutuhkan. Akan tetapi ironisnya ketika ilmu kriptografi untuk mengenkripsi sebuah informasi semakin berkembang, semakin berkembang pula cara untuk melawannya.