Setelah memahami format password pada /etc/shadow serta melakukan testing langkah demi langkah pada interactive console, maka tibalah saatnya kita menyusun script secara utuh.
Secara umum kita melakukan dictionary attack. Dimana kita menyiapkan file dictionary terlebih dahulu, selanjutnya dilakukan perhitungan hash dengan SHA-512. Apabila perhitungan hash dari wordlist pada dictionary sesuai dengan hash pada file /etc/shadow maka password berhasil di-crack. Sebaliknya, apabila kalkulasi hash tidak sesuai maka password gagal di-crack. Pada contoh kali ini, kita menyiapkan tiga wordlist, yaitu:
- budi123
- badu123
- wati123
Untuk melakukan perhitungan hash, pada script ini kita akan menggunakan module crypt. Adapun langkah-langkah password cracking pada script ini adalah sebagai berikut:
- Membaca file /etc/shadow
- Memilah dan memilih hanya user account saja yang di-crack, bukan service account.
- Meng-ekstrak user name dan hash dari user account pada file /etc/shadow
- Meng-ekstrak hash identifier dari hash pada /etc/shadow
- Meng-identifikasi hash id pada /etc/shadow
- Meng-ekstrak salt dari hash pada /etc/shadow
- Membaca wordlist dari dictionary yang telah disiapkan
- Menghitung hash pada setiap wordlist
- Apabila hasil kalkulasi hash sesuai dengan hash pada /etc/shadow maka password berhasil di-crack dan wordlist di-tampilkan.
- Sebailknya, apabila hasil kalkulasi hash tidak sesuai maka password gagal di-crack
Kesepuluh langkah diatas dituangkan ke dalam dua fungsi, yaitu:
- Fungsi utama, yaitu def main(). Fungsi ini berisi langkah 1 hingga langkah 3 selanjutnya memanggil fungsi crackingHash() dengan dua parameter yaitu: userName dan hashPass
- Fungsi cracking password, yaitu def crackingHash(). Fungsi ini berisi langkah 3 hingga langkah kesembilan, dimulai dari meng-ekstrak hash dari /etc/shadow hingga kalkulasi hash dan mengambil keputusan keberhasilan password cracking.
Berikut ini adalah script secara utuh:
Apabila script tersebut dijalankan maka hasilnya adalah sebagai berikut:
Script password cracking dapat diunduh dan dimodifikasi pada github pada link berikut ini:
Artikel-artikel terkait sebelumnya adalah:
Cracking /etc/shadow – line by line
User Account Extraction from /etc/shadow
#Bangkok, ASIA Education Summit – UNESCO ~ “OUT OF SCHOOL CHILDREN”