BurpSuiteのFree版を使うときのプロキシ設定をサクサク書いてみた（Chrome）

BurpSuiteのFree版を使ってPCブラウザの通信を見たいときに必要な手順を
簡単にサクサクまとめてみました。

※iPhoneとAndroidでのやり方は別の記事にまとめていますのでご覧ください。
>BurpSuiteFreeを使うときの設定をサクサク書いてみた（iPhoneとAndroid）
>http://qiita.com/inahukus/items/f6e20e877d8f8a192ed2

今回はMacでChromeを使うときの設定手順です。

 - BurpSuiteFreeのインストールと設定
 - Chromeで通信確認用のユーザー作成
 - Chromeのプロキシ設定
 - 証明書のインストール

以上の設定が終わると、Chromeの通信をBurpSuite側で取得できます。

設定手順を以下に書いていきます。


## 環境
 - macOS Sierra 10.12.5
 - java version 1.8.0_144
 - Burp Suite Free Edition v1.7.26
 - Google Chrome (59.0.3071.115)

## BurpSuiteFree版のインストールと設定

BurpSuiteのFree版をダウンロードして起動します。
>Download Burp Suite Free Edition_
>https://portswigger.net/burp/freedownload/

※Javaをインストールしていない場合は別途インストールが必要です。

インストール後は下記の手順で起動しておきます。
・起動時に、「Temporary project」にチェックが入っているのでそのまま次へ
・とりあえず「Use Burp defaults」のままで「Start Burp」で起動

起動後は下記の手順で設定しておきます。
・Proxyタブ内のInterceptタブにある、Intercept is on ボタンをクリックしてoffにしておく
・Proxyタブ内のOptionsタブにある、Proxy listeners の項目を下記のように設定しておく

<img width="80%" alt="setting.png" src="https://qiita-image-store.s3.amazonaws.com/0/156827/594b4cd1-f135-3940-d9b5-196f47e0e50b.png">


※ Bind to port のところは8080に設定していますが、すでに使用している場合もあるので、任意のポート番号に変えてください。

OKを押したあとに、Runningのところにチェックが入っている状態にしておきます。
※チェックが入らない場合は、設定したポートを他のツールが使用している場合があります。


## Chromeで通信確認用のユーザー作成
プロキシ設定を行うとブラウザの通信すべてがBurpSuiteFreeを経由することになり、
普段使っているChromeのユーザーでそのまま設定してしまうと、確認したい通信のログが埋もれてしまう可能性があります。
そのため、通常使用しているユーザーとは別に、確認用のChromeユーザーを作成します。

### 新規ユーザーの作成
新規ユーザーの作成は下記を参考にしました。
> Chrome を他のユーザーと共有する、プロフィールを追加する
> https://support.google.com/chrome/answer/2364824?co=GENIE.Platform%3DDesktop&hl=ja
>1.パソコンで Chrome を開きます。
>2.画面右上の、自分の名前またはユーザー アイコン ユーザー をクリックします。
>3.[ユーザーを管理] をクリックします。
>4.[ユーザーを追加] をクリックします。
>5.画像と名前を選択します。
>6.[保存] をクリックします。新しいウィンドウが開き、ログインするように求められます。
>7.新しいプロフィール用の Google アカウントを使って Chrome にログインします。ブックマーク、履歴、パスワードとその他の設定が自動的に同期されます。


手順7で、Googleアカウントを使ってChromeにログインするように記載されていますが、確認用のユーザーなのでログインはせずにそのまま作成を完了します。

## Chromeのプロキシ設定
Chromeの「設定」にある「詳細設定」をクリックすると、「システム」が表示されます。
システム項目内の「プロキシ設定を開く」をクリックするとPC側のプロキシ設定画面が表示されて、そこで設定を行うことができます。

ただ、毎回PC側のプロキシ設定を操作するのはめんどくさいので、プロキシ設定を切り替えるアドオンを入れておきます。

### アドオンの設定
下記のアドオンでプロキシ設定を行う手順を書いていきます。
>Proxy SwitchyOmega
>https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif

※プロキシ設定を行うアドオンは他にもありますので、使いやすいものを使用してください。

・URLにアクセスしてアドオンをインストール
・Proxy SwitchyOmega設定画面の「New Profile」から、新しく設定を作成して下記のように入力後、「Apply changes」ボタンをクリックして保存

<img width="80%" alt="proxylistener" src="https://qiita-image-store.s3.amazonaws.com/0/156827/a86fe1ef-c95d-1cd1-2268-4436f03793ea.png">

※ポートには、BurpSuiteFree側で設定したポート番号を設定しています。
・Chromeのツールバーに追加されている「Proxy SwitchyOmega」のアイコンをクリックして、作成したプロキシ設定を選択

これでChrome側の設定は完了です。
BurpSuiteFreeの設定とプロキシ設定が有効になっている状態で、任意のサイトにアクセスすると、BurpSuiteFreeのProxyタブ内のHTTP historyにブラウザの通信が入ってきているかと思います。

## 証明書のインストール
これまでの手順でBurpSuiteFreeを通るようになりますが、そのままだと証明書エラーが出ることがよくあります。
ChromeではPC側の証明書を利用するため、エラーを回避するにはPCに証明書を登録する必要があります。

### Macのキーチェーンアクセスに証明書を登録
BurpSuiteFreeの証明書を登録するには下記の手順を行います。

・BurpSuiteFreeとChromeのプロキシ設定が完了していて、通信が取れる状態で下記URLにアクセス
> http://burp

 - BurpSuiteFreeの画面が表示されるので、右上にある「CA Certificate」をタップして証明書をダウンロード
 - ダウンロードした証明書（cacert.der）をキーチェーンアクセス設定画面の「システム」にドラッグ&ドロップ
 - 「PortSwigger CA」が登録され、「このルート証明書は信頼されていません」と表示される
 - 登録した「PortSwigger CA」を選択して、コンテキストメニューから「情報を見る」画面を表示
 - 「▼信頼」をクリックして、「この証明書を使用するとき」を「常に信頼」に設定して「情報を見る」ウィンドウを閉じる
 - 「このルート証明書は信頼されていません」の表示が、「この証明書はこのアカウントにとって信頼されているものとして指定されています」に変更していることを確認


## 完了
BurpSuiteFreeとChromeでアドオンの設定をした状態で、任意のサイトにアクセスしてみます。
証明書エラーにならずに、Proxyタブ内にあるHTTP historyタブに通信データが入ってきていれば完了です！

## 忘れずに！
作業が終わったらアドオンのプロキシの設定を解除しておくことを忘れずに！