脆弱性診断で利用するログイン情報をレコーディングする[Burp Suite]

こんにちは、臼田です。

弊社では脆弱性診断ツールとして「F-Secure Radar」を取り扱っていますが、このような機械診断のツールでWebアプリケーションを診断する際に、ログインの方法をツールに教えてあげる必要があります。

例えば、以下のような項目が必要になります。

  • ログインページのURL
  • ユーザ名・パスワード
  • ログインが正常に完了したときの動作
  • ログインの維持に使うcookie
  • などなど

機械的にログインするために必要な情報は、結構設定するのが面倒です。

F-Secure Radarでは、これを簡単にするために「レコーディングファイル」をインポートすることができます。

今回はレコーディングファイルの概要と取得方法を説明します。

レコーディングファイルとは

レコーディングファイルとは、Webアプリケーションへのログイン方法を文字通り「レコーディング(記録)」したファイルになります。

通常ではブラウザからWebページへ直接アクセスしますが、レコーディングを取得するにはレコーディング可能なツールをプロキシとして経由してWebページにアクセスする必要があります。

record

F-Secure Radarではいくつかのツールのレコーディングファイルをサポートしていますが、今回は「Burp Suite」というツールを利用します。

Burp Suiteインストール

公式サイトはこちらです

「Professional」と「Free Edition」がありますが、レコーディングファイルの取得だけの場合はFree Editionで問題ありません。

001_download

OS毎適切なものが表示されると思うので、ダウンロードしてインストールしてください。

002_download

確認時のバージョンは「Burp Suite Free Edition v1.7.27」です

プロキシの設定

ブラウザの通信をBurp Suiteに向ける必要があるため、プロキシの設定をします。

様々な方法がありますが、今回はGoogle Chrome上で手軽に操作できるFoxyProxyのエクステンションを利用して説明します。

ちなみに、同様のものがFirefox用でもあります。

確認時のバージョンは「FoxyProxy Standard 3.0.7.1」です。

エクステンションの追加

FoxyProxyにアクセスし「CHROMEに追加」ボタンから追加します。

003_foxy

「拡張機能を追加」を押します。

004_foxy

設定

エクステンションが追加されたら、ブラウザ右上のアイコンを押し、「Options」へ移動します。

005_foxy

「Add New Proxy」から新しいプロキシ設定を追加します。

006_foxy

「General」タブから「Proxy Name」を適当に設定します。(今回はBurp)

007_foxy

「Proxy Details」タブから「IP Address」に127.0.0.1、「Port」に8080を選択して「Save」します。(他のツール等と重複する場合には別のPortでも大丈夫です)

008_foxy

設定された項目が表示されていることを確認します。

009_foxy

これで、ブラウザの通信経路をプロキシ(127.0.0.1:8080)へ向ける準備が整いました。

ただ、現状では通常通りプロキシを経由しないで通信する状態です。

レコーディングファイルの取得

プロキシの待ち受け設定

まずはBurp Suiteを起動します。

「Temporary Project」を選択したまま「Next」を押します。(繰り返し利用する構成はプロジェクトとすることができますが今回は一時利用のため省略します)

010_burp

「Use Burp defaults」を選択したまま「Start Burp」を押します。(個別の設定ファイルを読み込むことが可能ですが省略します)

011_burp

起動したら「Proxy -> Options」タブへアクセスしてプロキシの設定が127.0.0.1:8080となっていることを確認します。

012_burp

Burp Suiteのプロキシ機能でローカルの8080ポートで待ち受けている状態になります。

FoxyProxyで別ポートを設定している場合には、「Edit」から変更して下さい。

続いて「Proxy -> Inspect」タブへ移動し「Inspect is on」となっているボタンをクリックし、「Inspect is off」にします。

013_burp

これは、プロキシを通るトラフィックを止めて内容を編集するための機能ですが、今回はレコーディングのみのためそのまま通過させるためにoffにします。

以上でプロキシの待ち受け設定は完了です。「Target -> Site map」タブにてアクセスが表示されるのを待ちます。

014_burp

ブラウザの通信先をプロキシに変更

FoxyProxyの設定によりブラウザの通信先をBurp Suiteに向けます。

Chrome右上のFoxyProxyのアイコンを選択し、「Use Proxy Burp(設定名)  for all URLs」を選択します。

015_foxy

選択すると、エクステンションのアイコンが青くなります。

これでブラウザからの全ての通信がBurp Suiteを経由するようになりました。

レコーディング実施

それでは本番です。

ブラウザから診断対象とするWebページのログインページにアクセスします。今回はwordpressを例とします。

016_wp

この段階で、Burp SuiteにはログインページのURLへのアクセスが記録されています。

017_burp

続いて、ブラウザから診断に利用するユーザ名、パスワードを入力してログインします。

018_wp

ログインが完了したら、FoxyProxyでプロキシを経由するのを止めます。

エクステンションのFoxyProxyのアイコンから「Disable FoxyProxy」を選択します。

019_foxy

これで、ブラウザからBurp Suiteを経由した通信は終わり、直接の通信に戻ります。

Burp Suiteを確認します。

先程ログインを行った際の情報が、ログインページ(http://<target_ip> -> wordpress -> wp-login.php)に記録されていることが確認できます。

020_burp

今回の場合は、ログインページ(wp-login.php)へのGETとログイン情報を送信しているPOST等について記録されています。

この情報を保存します。左カラムのログインページ部分(今回はwp-login.php)を右クリックして「Save selected items」を選びます。

021_burp

適当なフォルダやファイル名を入力して「保存」を押します。この際、拡張子に「.xml」を追記して下さい。(自動で付加されません)

022_burp

これで、レコーディングファイルの取得は完了です。

まとめ

説明は長くなりましたが、実際に行っている操作は非常に簡単かと思います。

少なくとも、ログインのための情報を手動で揃えることはあまり現実的ではありません。

ツールで簡単に取得して、良い脆弱性診断ライフを!