Hari 26-27: Keamanan Kata Sandi & Cracking (Etis) – Memahami Kunci Pintu Digital
Setelah berhasil melancarkan eksploitasi dasar di lab Anda, kini saatnya kita fokus pada salah satu titik masuk paling umum bagi hacker: kata sandi. Di Hari 26 dan 27 pelatihan otodidak ini, kita akan mempelajari bagaimana kata sandi disimpan (atau seharusnya disimpan!), berbagai metode yang digunakan hacker untuk "memecahkan" atau crack kata sandi, dan bagaimana Anda sebagai ethical hacker bisa menguji dan meningkatkan keamanan kata sandi. Hingga saat ini, dengan maraknya serangan brute-force dan phishing kredensial, pemahaman tentang keamanan kata sandi adalah pertahanan vital.
Memahami cara kerja password cracking akan membantu Anda membangun kata sandi yang lebih kuat dan merekomendasikan praktik terbaik kepada orang lain.
Bagaimana Kata Sandi Disimpan (Seharusnya)?
Secara ideal, website atau sistem tidak akan pernah menyimpan kata sandi Anda dalam bentuk plaintext (teks biasa yang bisa dibaca). Jika itu terjadi dan database mereka bocor, semua kata sandi pengguna akan terekspos.
Alih-alih plaintext, sistem yang aman akan menyimpan hash dari kata sandi Anda.
Hashing: Seperti yang kita bahas di Hari 10-11, hashing adalah proses satu arah yang mengubah input (kata sandi Anda) menjadi output dengan panjang tetap yang unik (nilai hash). Bahkan perubahan kecil pada kata sandi akan menghasilkan hash yang sangat berbeda.
Mengapa Hashing?: Ketika Anda login, sistem akan mengambil kata sandi yang Anda masukkan, menghitung hash-nya, lalu membandingkan hash baru ini dengan hash yang tersimpan di database. Jika cocok, Anda berhasil login. Jika database bocor, hacker hanya mendapatkan hash, bukan kata sandi aslinya.
Salting: Ini adalah lapisan keamanan ekstra yang sangat penting. Salt adalah string acak unik yang ditambahkan ke setiap kata sandi sebelum di-hash. Jadi, meskipun dua pengguna memiliki kata sandi yang sama, hash mereka akan berbeda karena salt yang berbeda. Ini mencegah serangan rainbow table (basis data hash yang sudah dihitung sebelumnya).
Metode Password Cracking yang Umum:
Meskipun kata sandi di-hash dan di-salt, hacker masih memiliki cara untuk mencoba "memecahkannya":
Brute-Force Attack:
Cara Kerja: Penyerang mencoba setiap kombinasi karakter yang mungkin (huruf, angka, simbol) sampai kata sandi yang benar ditemukan.
Kelemahan: Sangat lambat dan memakan sumber daya komputasi yang besar, terutama untuk kata sandi yang panjang dan kompleks.
Pertahanan: Panjang kata sandi yang memadai, kompleksitas kata sandi, dan batasan upaya login (misal, mengunci akun setelah 3 kali percobaan gagal).
Dictionary Attack:
Cara Kerja: Penyerang menggunakan daftar kata-kata yang umum (dari kamus, daftar kata sandi bocor, atau kombinasi umum) untuk mencoba menebak kata sandi.
Kelemahan: Tidak efektif jika kata sandi tidak ada dalam daftar kamus atau tidak menggunakan kata-kata umum.
Pertahanan: Hindari penggunaan kata-kata kamus atau kombinasi yang mudah ditebak. Gunakan frasa sandi (beberapa kata acak yang digabungkan) atau kata sandi kompleks.
Rainbow Table Attack:
Cara Kerja: Penyerang menggunakan pre-computed tables dari hash yang umum untuk membandingkannya dengan hash yang dicuri. Jika hash cocok, mereka dapat menemukan kata sandi aslinya dengan cepat.
Kelemahan: Menjadi tidak efektif jika sistem menggunakan salting yang kuat, karena salt memastikan setiap hash unik bahkan untuk kata sandi yang sama.
Pertahanan: Penggunaan salt yang kuat dan unik untuk setiap kata sandi.
Credential Stuffing:
Cara Kerja: Penyerang mengambil daftar username dan kata sandi yang bocor dari satu website dan mencoba menggunakannya pada website lain. Banyak pengguna menggunakan kata sandi yang sama di berbagai platform.
Kelemahan: Efektivitasnya bergantung pada kelalaian pengguna.
Pertahanan: Gunakan kata sandi unik untuk setiap akun Anda (manfaatkan password manager!) dan aktifkan Otentikasi Dua Faktor (2FA).
Alat Cracking Kata Sandi (Etis): John the Ripper & Hashcat
Sebagai ethical hacker, Anda akan menggunakan alat-alat ini untuk menguji kekuatan kata sandi yang Anda temukan hash-nya di lingkungan lab, atau untuk menunjukkan kepada klien betapa mudahnya kata sandi lemah mereka dipecahkan.
John the Ripper (JtR):
Alat open source yang sangat populer untuk password cracking. Mendukung berbagai algoritma hashing dan dapat melakukan serangan dictionary maupun brute-force.
Sangat baik untuk pemula karena relatif mudah digunakan.
Contoh penggunaan (sangat dasar):
john --wordlist=rockyou.txt hashes.txt(untuk serangan kamus pada hash dihashes.txtmenggunakan daftar katarockyou.txt).
Hashcat:
Alat cracking kata sandi berbasis GPU (Graphics Processing Unit) yang sangat cepat. Hashcat adalah tool pilihan untuk profesional karena kecepatannya yang luar biasa dalam memecahkan hash yang kompleks.
Mendukung banyak mode serangan (dictionary, brute-force, hybrid, mask attacks).
Contoh penggunaan (sangat dasar):
hashcat -m 0 -a 0 hash.txt password.lst(untuk MD5 hash dengan serangan dictionary).
Latihan Etis di Lingkungan Lab Anda:
Anda tidak akan mencoba crack kata sandi di internet publik! Anda akan menggunakan alat ini pada hash yang Anda dapatkan dari target di lab Anda (misalnya, dari Metasploitable). Metasploitable memiliki beberapa user dan password yang lemah, dan Anda dapat menemukan hash mereka di file /etc/passwd atau /etc/shadow setelah Anda mendapatkan akses.
Latihan untuk Hari 26-27:
Akses Metasploitable: Jika Anda berhasil mendapatkan shell ke Metasploitable dari Hari 24-25, gunakan itu. Jika tidak, coba lagi exploit vsftpd backdoor.
Dapatkan Password Hash: Setelah di Metasploitable, baca konten file /etc/shadow (ini membutuhkan hak akses root). Anda akan melihat baris-baris seperti:
user:$6$salt_string$hashed_password_string:...
Salin beberapa baris hash ini ke sebuah file di Kali Linux Anda (misal: my_hashes.txt).
(Catatan: Hash yang diawali dengan $6$ adalah SHA-512, biasanya memiliki salt di dalamnya).
Unduh Daftar Kata: Dapatkan daftar kata sandi umum. File
rockyou.txtadalah salah satu yang paling terkenal (Anda mungkin perlu mencarinya secara online dan mengunduhnya, atau di Kali Linux Anda mungkin sudah ada di/usr/share/wordlists/rockyou.txt.gz- perlu di-unzip).Coba John the Ripper:
Buka Terminal di Kali Linux.
Jalankan:
john --wordlist=/path/to/rockyou.txt my_hashes.txtLihat apakah John the Ripper dapat menemukan kata sandi dari hash tersebut.
Coba Hashcat (Opsional, jika Anda punya GPU yang mumpuni):
Identifikasi hash type yang Anda dapatkan (misal, SHA512crypt = mode 1800).
Jalankan:
hashcat -m 1800 -a 0 my_hashes.txt /path/to/rockyou.txtAmati perbedaan kecepatan antara John the Ripper dan Hashcat (jika Anda membandingkan).
Memahami password cracking adalah kunci untuk membantu Anda dan organisasi lain membuat kata sandi yang tidak dapat dipecahkan.
Apakah Anda merasa terkejut dengan betapa mudahnya beberapa kata sandi bisa dipecahkan, atau ada pertanyaan lain seputar keamanan kata sandi yang muncul setelah latihan ini?
Komentar
Posting Komentar