Hands-on: Password Cracking dan Authentication Bypass

From OnnoWiki
Jump to navigation Jump to search

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.

Setup DVWA di Server Ubuntu

  • Sebelum memulai eksploitasi, pastikan DVWA sudah terinstal dan dijalankan di Server Ubuntu. Berikut adalah langkah-langkah untuk setup:
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:
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.

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:
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"
  • Dimana
    • `-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


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:
SELECT * FROM users WHERE username = 'input_username' AND password = 'input_password';
  • Dengan payload `' OR '1'='1`, query menjadi:
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.

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, kita dapat belajar bagaimana penyerang dapat memanfaatkan celah keamanan dan bagaimana untuk melindungi sistem dari serangan tersebut.


Pranala Menarik