Sebenarnya sangat sulit untuk meng-crack password Linux karena pada Linux modern (dan Unix pada umumnya) biasanya password tidak disimpan pada file /etc/passwd tetapi pada file /etc/shadow yang hanya dapat diakses oleh root. Tetapi bila kita bisa mendapatkan kedua file ini maka kita dapat melakukan crack dengan tool seperti John the Ripper (JtR), http://www.openwall.com/john/. Untuk mulai melakukan crack maka kedua file harus digabung dulu dengan tool unshadow yang sudah tersedia pada paket JtR.
Password Linux pada umumnya disimpan pada file dengan format sebagai berikut :
owner:EJymyuhn54t2E:510:102:Some user Info:/home/subdir/owner:/bin/bash
1 2 3 4 5 6 7
Bagian yang terpenting adalah bagian (field) kesatu dan kedua, juga yang ke lima. Bila digunakan shadow maka bagian kedua ditandai dengan x dan string tersebut disimpan pada file /etc/shadow . Bagian pertama merupakan nama user yang digunakan untuk login, sedangkan yang kedua merupakan password dalam bentuk terenkripsi dengan metoda sedemikian sehingga string ini merupakan hashing satu arah. Pada umumnya metoda yang digunakan adalah dengan menggunakan metoda enkripsi DES, MD5 dan enkripsi Blowfish. DES (Data Encryption Standard) merupakan metoda yang pertama kali digunakan dalam penyimpanan password, metoda ini sudah tidak biasa digunakan lagi, karena dengan mesin-mesin modern akan didapat kecepatan cracking yang tinggi, sekitar 800.000 lebih kombinasi password per detik pada komputer dengan prosessor Pentium 4 - 2,4 GHz, sehingga bila menggunakan metoda ini password akan relatif lebih mudah di-crack. Metoda MD5 (Message Digest 5) merupakan metoda yang umum digunakan pada saat ini dan relatif lebih sulit dipecahkan, kecepatan cracking sekitar 4.400 kombinasi per detik pada P4 – 2,4 GHz. Metoda Blowfish masih jarang digunakan dan kecepatan cracking-nya lebih rendah lagi, dibawah 500 kombinasi per detik pada P4 – 2,4 GHz.
Seperti telah disebut di atas untuk meng-crack password ini dapat digunakan JtR. Pada JtR ada beberapa mode craking yang disediakan :
Single crack Mode, mode ini merupakan mode pertama yang harus dicoba. Pada mode ini akan dicoba informasi login/gecos (informasi pada field kesatu dan kelima, pada format password di atas) sebagai password. Metoda ini jauh lebih cepat dari metoda wordlist mode dan memungkinkan menggunakan banyak aturan (rule). Aturan ini bisa dilihat di file john.conf, seperti: penambahan numerik pada huruf akhir, penambahan huruf ‘s’, diubah ke huruf besar, dll. Bila password ditemukan maka password ini akan dicobakan pada keseluruhan daftar password kalau-kalau ada yang menggunakan password yang sama. Tentu saja dengan metoda ini hanya akan didapat password dari informasi login/gecos saja.
Wordlist Mode, ini merupakan cara yang paling sederhana pada JtR, yang diperlukan adalah daftar kata-kata yang berupa file teks, file ini harus terdiri dari satu kata per baris. Dengan metoda ini kita dapat juga mengaktifkan aturan (rule) yang akan digunakan untuk memodifikasi kata, aturan ini juga bisa dilihat pada file john.conf dan bila perlu bisa dimodifikasi. Daftar kata-kata yang bisa digunakan bisa berasal kata-kata yang dikumpulkan dari bahasa nasional, bahasa daerah atau bahasa asing (Inggris, Jerman, Perancis , dll) . Untuk bahasa asing di-internet sudah tersedia dan biasanya satu file bisa terdiri dari berjuta-juta kata yang dapat digunakan. Sedangkan untuk bahasa nasional dan daerah mungkin kita harus mengumpulkannya sendiri, penulis sendiri pernah mengumpulkan beberapa puluh ribu kata. Daftar ini dikumpulkan dari media-media nasional yang ada di-internet untuk kata-kata yang umum, dari berbagai database untuk nama-nama orang, nama lokasi geografis (seperti nama pulau, gunung, sungai, dll). Daftar kata lain yang bisa digunakan adalah angka numerik seperti tanggal, karena orang kadang-kadang menggunakan tanggal lahir sebagai password. Format tanggal dapat dibuat dalam berbagai format seperti DMY, DDMMYY, DDMMYYYY, YYMMDD, YYYYMMDD, dsb. Bisa dibuat program sederhana untuk membuat format ini dan dalam range tahun tertentu (misalnya dari tahun 1940 – 2003) kemudian disort untuk menghilangkan duplikasi.
Incremental Mode, cara ini adalah cara yang paling ampuh karena menggunakan semua kombinasi dari berbagai karakter yang mungkin (brute force). Tetapi tentu saja cara ini akan memakan waktu yang sangat lama. Oleh sebab itu digunakan tabel frekuensi karakter, untuk mendapatkan sebanyak mungkin kombinasi password dalam waktu yang terbatas. Untuk menggunakan metode ini dibutuhkan definisi spesifik dari parameter yang akan digunakan seperti panjang password dan charsets (karakter sets).
External Mode, metode terakhir yang dapat digunakan dan didefinisikan dalan john.conf . Pada bagian ini kita harus mendefinisikan fungsi tertentu yang akan digunakan oleh JtR untuk menghasilkan rangkaian kata tertentu yang akan dicobakan.
Dari hasil percobaan penulis untuk mode Single Crack kita dapat memperoleh kurang lebih 10% dari keseluruhan daftar password, sedangkan untuk Wordlist mode tergantung banyak kata yang digunakan tapi kurang lebih bisa mencapai 35%. Sedangkan Untuk Incremental mode dan External mode penulis belum pernah mencoba sampai tuntas karena memakan waktu yang sangat lama.
Untuk mendapatkan hasil cracking password yang lebih banyak tentu saja dipengaruhi oleh beberapa faktor :
Pertama tentu metoda yang digunakan dalam password, dengan metoda DES tentu akan jauh lebih banyak didapat password dibanding metoda MD5 atau Blowfish.
Daftar kata yang lebih banyak, dengan mencoba sebanyak-banyaknya kata yang mungkin digunakan tentu saja akan didapat hasil cracking yang lebih banyak.
Proses cracking tidak terbatas waktu, lebih banyak waktu yang digunakan maka akan didapat lebih banyak password. Tapi tentu saja hal ini dibatasi oleh validitas dari password, karena kemungkinan user telah mengganti password dalam periode tertentu dan kemungkinan user telah tidak aktif (telah dihapus dari daftar password) pada saat password ditemukan.
Tentu saja dengan jumlah resource (hardware) yang lebih banyak, proses cracking dapat didistribusikan ke banyak mesin sehingga proses cracking dapat sangat dipercepat.
Dari hasil pembahasan diatas dapat disimpulkan bahwa: metoda penyimpanan password Linux/Unix sebenarnya sangat aman, tetapi metoda seaman apapun selalu ada lubang yang bisa ditembus karena faktor terpenting keamanan komputer terletak pada pengguna komputer itu sendiri. Bila pengguna tidak berhati hati, dalam hal ini memilih password akan selalu ada kemungkinan password-nya bisa ditebak oleh orang lain dan tentu hal ini akan sangat merugikan user itu sendiri. Untuk itu perlu digunakan modul untuk pengecekan keamanan password dan yang penulis tahu memang hal ini sudah tersedia untuk Linux, tetapi tidak semua admin menggunakan modul ini untuk menjaga keamanan user.
Copyright (c) 2003 - Budi Sukmawan
v1.0: 11 November 2003