今回も引き続きDVWAサーバの挙動を、 “Burp suite” ツールを用いて調べます。
右のラズパイ4Bを “ヤラレ” サーバに仕立てて、これを左のラズパイ5から攻撃しています。
今回はburp suiteのintruder機能を使っています。
burp suiteの “intruder” は過去のhttp requestの一部を自動的・連続的に改変してサーバに送る機能です。
Intruderへの移送
ログインに失敗したリクエストを右クリックして “Send to Intruder” を選択します。

“Intruder” に先ほどのリクエストが移動しています。

変更したい部位(今回の場合はパスワードの部分)にカーソルを合わせ、左欄の “Add§” をクリックしてリクエスト本文内に “§§” を挿入します。
右半分に “Payloads” 画面が開きます。

2つの “§” の間の部分が変動部分になります。
この部分を順次変動させて、繰り返しhttpリクエストをサーバに送ります。
変動させるデータは後程payloadに登録します。
上記はDVWAサーバのSecutrity levelが “low” の場合のhttp Requestの例ですが、Secutrity levelを変更すると、Requestの内容も変わり攻撃の難易度も変化します。
Attack typeの設定
左上プルダウンより攻撃タイプを選択します。

ここでは最も単純な “Sniper” を選択しています。1カ所にパスワードを順に試す時などに使用します。
| Attack type | Payload | 主な用途 |
|---|---|---|
| Sniper | 1セット | 1個ずつパラメータを試す |
| Battering ram | 1セット | 同じ値を複数箇所へ同時投入 |
| Pitchfork | 複数セット | 複数セットの対応する値を同時投入 |
| Cluster bomb | 複数セット | 複数セットの全組み合わせを試す |
“Cluster bomb” は、Usernemeの候補セットとPasswordの候補セットを総当たりで試す時などに使用します。(後述)
wordlistの準備
ここでは “rockyou.txt” を使用してみます。
kali ー 08-Credential Access ー Password Profiling & Wordlists ー wordlists で “rockyou.txt” が解凍されます。
“rockyou.txt” は1430万語以上のパスワード候補語集ですが、最初から4番目に今回の当たりパスワードである “password” があります。

1430万語分も調べていると非常に長時間となってしまいますので、時短のため最初の10語のみのパスワード集を “rockyou1.txt” として別に作成してこれを使用します。
wordlistファイルを使わずに、payload configuration欄にコピペによる手入力もできます。
Payloadの設定
Payload typeは “Simple list” のままとします。
右欄 “Payloads” の、 “Payload configulation” 段の “Load…” をクリックします。

ダイアログでワードリストファイルを選びます。(今回の場合は “rockyou1.txt” )


読み込んだワードリストに基づいて、パスワードの候補一覧がpayloadsに装填されます。

Cluster bombの場合
Attack typeを ‘Cluster bomb’ に選択した場合、左欄のhttpリクエスト本文に2カ所の “§” を設定します。(ユーザネームの部分とパスワードの部分)

右欄Payloads欄の最上部 “payload position” が、 ‘1- user’ / ‘2-pass’ と選択できるようになりますので、それぞれに試行するワードを設定します。
例として、
‘1- user’ には、候補ワードを”admin”, “username”, “test” と手入力(”Paste”からコピペ)

‘2- pass’ には、候補ワードを”abc123″, “password”, “123456” と手入力(”Paste”からコピペ)

この場合、ユーザネーム数×パスワード数の回数分(上記例では3×3の9回)試行されます。
ユーザネームとパスワードの2カ所を順次変更しながら総当たりで試行する場合には、この “cluster bomb” attackを使用します。
Intruder実行
上段中央の “Start attack” をクリックして実行します。

無料版では制限がある旨が表示されます

実行結果
別ウインドウに結果が表示されます。

10回の試行は全てステータスコード “200” なので接続には成功しています。
しかし “Length” (データの長さ)は、4番目(成功回)のみ4880であり、それ以外(失敗回)の4836-7よりも長くなっています。
今回はこれによりログイン成功/失敗の判別がつきます。
成功回
4回目の試行のみ。Responseの92行目に “Welcome to the password protected area admin” とあります。

失敗回
4回目以外の試行回。Responseの92行目に “Username and/or password incorrect” とあります。

実行結果の参照
結果表示ウインドウを閉じる際に下記ダイアログが表示されます。
“Discard” ➡️ 結果データを即破棄
“Keep in memory” ➡️ 結果を保持(但し無料版ではburp suite本体の終了時にどうせ破棄されます)

“Keep in memory” を選択するとDashboard画面の左欄に表示されます。

選択すると右欄に表示されます。

まとめ
今回は脆弱性を “Low” (最も脆弱)に設定したDVWAサーバに対して、burp suiteのintruder機能を使用してみました。
intruder機能は、サーバへのrequestを自動的に変化させて送信して、サーバーの反応の違いを検証する機能です。
前回お示ししたように、このサーバを使って色々な演習が出来ますが、今回で一旦区切りとします。

コメント