目的
スマホアプリの作成やマルウエアが流行しているので手軽に通信を解析できる手段を確保しておきたいと思いました。
今回、Burp Suiteと呼ばれるHTTPやHTTPSを解析するソフトウェアの使い方を紹介したいと思います。
※ SSL/TLSの仕組みなどについてはある程度、知識があることが前提で解説を進めます。
準備
Burp Suiteのダウンロードページからburpsuite_free_v1.6.jarをダウンロードして実行します。
※ このソフトウエアの実行にはJavaのランタイムが必要です。
Burp Suiteの起動
ダウンロードしたjarファイルをダブルクリックしてBurp Suiteを起動します。
Burp Suiteの設定
標準設定ではローカルホスト内でしかアクセスできないため、他の端末からアクセスできるように設定します。
Burp Suiteを起動したら、以下の様なウインドウが表示されます。

[Proxy]タブをクリックし、[Options]タブをクリックします。
8080番のポートを使う設定がデフォルトで入っているのでそれを選択し、[Edit]をクリックします。

[All interfaces]にチェックを入れて[OK]をクリックします。

これで他の端末からこの、PCで起動しているBurp Suiteへアクセスできるようになったはずです。
Burp Suiteの証明書作成
クライアント側のブラウザなどに導入するルート証明書を作成します。
[Proxy]タブをクリックして、[Options]タブをクリックします。
[CA certificate …]をクリックすると以下のようなウインドウが表示されます。
[Export]の中にある[Certificate in DER format]を選択して[Next]を押します。

途中、保存先の選択などがありますがファイル名(拡張子:crt)などを指定するだけで特に困ることもないはずです。
証明書を作成すると以下の様なファイルが生成されます。

Android端末への証明書導入
先ほど作成した証明書をSDカードなどにコピーしてAndroid端末に導入します。
[設定]から[セキュリティ]をクリックし、[SDカードからインストール]をクリックします。

証明書を置いた場所まで移動し、証明書を選択します。

証明書の名前を指定して[OK]をクリックします。

Android端末のProxy設定
無線LANのアクセスポイント名からProxy設定(Burp Suiteを起動しているパソコンのIPアドレスとポート番号)を行います。
※ Android端末でのProxy設定については情報がありふれているので省略します。
Android端末で行われている通信の確認
Android端末上で動いているアプリが行った通信の内容が確認します。
[Proxy]タブをクリックして、[HTTP history]タブをクリックします。
HTTPだけでなくHTTPSの通信も複合されているためリクエスト・レスポンス双方の通信内容を確認する事ができます。

今回、Android端末を用いて書いていますが、基本は対象がiPhoneでもパソコンでも行う事はさほど変わりません。
以下は、状況に応じて設定してください。
Burp Suiteで通信を毎回止めたくない時の設定
Burp Suiteを介して通信を行うとリクエストごとに毎回[Forward]ボタンを押さなければなりません。
リクエスト内容を書き換えたいときは便利なのですが、単純に通信を見たいときは邪魔なので以下の設定を行います。
[Proxy]タブをクリックして、[Options]タブをクリックします。
[Intercept Client Requests]で[Is in target scope]を選択して有効化します。

Burp Suiteの日本語表示
Burp Suiteで解析した通信に日本語が混在していた場合、日本語が化けて見えなくなるため、見えるように設定します。
[Options]タブをクリックして、[Display]タブをクリックします。
[HTTP Message Display]のフォント設定を日本語用のフォントに変更します。

※ 証明書の導入などもあるため大丈夫だとは思いますが、くれぐれも悪用などしないようお願い致します。
参考サイト
Burp Proxy で iPhone の通信をパケットキャプチャ
[改訂版] iPhoneアプリのSSL接続をパケットキャプチャする方法 | [ bROOM.LOG ! ]
最近のコメント