Burp を用いて認証ページに辞書攻撃を行う

WEBアプリケーション

この記事では、Burp というツールを用いて、認証ページに辞書攻撃を行う方法を紹介します。

なお、以下の環境でハッキングを行います。

役割端末IP アドレス
攻撃端末Kali linux10.0.0.106
ターゲット端末bee-box (bWAPP)10.0.0.105

bWAPP のインストールについては以下記事をご覧ください。

bWAPP で用意されている認証ページを開く

Kali で Firefox を起動し URL 部に「http://10.0.0.105/bWAPP」を入力し、 bWAPP にアクセスします。

bWAPP のログインページが開くので以下の通り入力し、ログインします。

Login: bee
Password: bug
Set the security level: low

※今回攻撃対象とする認証ページはここではありません

ログインできたら、ページ右上のプルダウンメニューから「Broken Authentication – Password Attacks」を選択し、Hack をクリックします。

クリックすると以下ページが表示されます。
このページに対して辞書攻撃を行います。

ページの挙動を確認する

Login: に「test」、Password: に「test」を入力しログインを試み、挙動を確認してみます。
すると以下のように認証情報に誤りがある旨のメッセージが表示され、ログインに失敗しました。

Burp で認証ページに対して辞書攻撃を行う

Burp はプロキシツールです。
Kali から bWAPP に対する通信を Burp で一旦受け、Burp 側で通信の内容(今回だと認証情報)を書き換え、辞書攻撃を行います。

Burp を起動する

まずは Kali で Burp を起動します。検索ウィンドウに Burp と入力すると「burpsuite」というアプリケーションが見つかるので、これをクリックします。
※警告メッセージが出力された場合はOKをクリックしてください。

起動後、以下の画面が表示されます。Next をクリックします。

以下の画面が表示されるので、Start Burp をクリックします。

Burp でプロキシ設定を行う

Burp のプロキシ設定を確認します。
「Proxy > Options」でプロキシ設定を確認できます。
攻撃端末(Kali)に Burp がインストールされている状態なので、IP アドレスは 127.0.0.1 のままで問題ないです。
ポート番号 8080 は他のソフトウェアで使用している可能性があるので、9500 に変更しました。

Firefox でプロキシ設定を行う

Firefox での通信が Burp を介するよう、以下のようにプロキシの設定を行います。

Burp で通信を Intercept (捕捉) する

Firefox で bWAPP の認証ページ「Broken Auth. – Password Attacks」に通信を発生させ、Burp が通信を Intercept できることを確認します。

Login: に「test」、Password: に「test」を入力しログインを試みます。

Login ボタンをクリックすると、Burp の以下画面が開かれます。
ログインした際の通信内容が表示されており、Burp が通信を Intercept していることがわかります。

通信内容の書換えを行う

通信内容の書き換えを行うために、Intercept した通信内容を Intruder タブに持っていきます。右クリックから「Send to Intruder」をクリックしてください。

Intruder > Positions タブに移動すると、Intercept した通信内容が表示されています。

上図では「Position」という Burp が書換可能なパラメータが§で示されています。まずこの「Position」をクリアします。画面右部の「Clear §」をクリックしてください。

次に、今回は辞書攻撃を行うため認証情報を書換えるため、「login=」及び「password=」に Position を設定します。
双方の「test」を選択した状態で「Add §」をクリックしてください。

また、Attack Type を「Cluster bomb」に変更します。認証情報の試行に使われる Attack Type で、複数のポジションに値を指定しそれらの全ての組み合わせを試行させることができます。

次に、各ポジションに対してセットする値を設定します。
Payloads タブに移動し、「Payload set:」の1(「login=」にあたる) と 2(「password=」にあたる) 両方で、辞書リストとなる文字列を追加します。

上記で設定した文字列の組み合わせを「Login:」「Password:」に対して試行する動きとなります。

それでは、上記で設定した内容で辞書攻撃を行います。
画面右上の「Start Attack」をクリックしてください。
クリックすると以下画面が表示され、Payload Option に指定したパラメータの組み合わせでログイン試行を行っている様子がわかります。

すべての組み合わせを実行しても特にメッセージが表示されるわけではないため一見どの組み合わせでログインに成功したのか、失敗したのかはわかりませんが、HTTP Response の Length が異なっている組み合わせがあります。

「bee」「bug」の組み合わせのみ Length が 13898 となっており、他の組み合わせとは HTTP Response の内容が異なっていると推測できます。
このことから、「bee」「bug」の組み合わせはログインに成功している可能性があると判断できます。

この組み合わせでログインできるか、実際に認証ページからログインしてみます。

※ 通信が Intercept されると WEB サーバ側との通信ができないため Intercept is off に変更しておきます。

「bee」「bug」で Login をクリックすると、以下のようにログインに成功しました。

このように、Burp を用いた辞書攻撃によって認証情報を特定することができました。
オンラインパスワードクラックについては以下記事も公開しているため、併せてご覧いただければと思います。

今回は以上です。

くどり

この記事は「ハッキング・ラボのつくりかた 第7章 」をベースに作成しています。購入リンクは以下です。
※Amazonアソシエイトを使用しています。

コメント

タイトルとURLをコピーしました