Burp ProxyでiOSのhttps通信を横取りする

  • 23
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

[改訂版] iPhoneアプリのSSL接続をパケットキャプチャする方法 | [ bROOM.LOG ! ]とかBurp Proxy で iPhone の通信をパケットキャプチャ - Please Sleepとかさんざん記事は出回っているのだけれど,もうちょっと簡単にやる方法があるのでシェアーさせて頂きます.

といっても Burp Proxy Help - Installing Burp's CA Certificate のiPhoneの項目に書いてあるやつに画像を付けてだらだらやっているだけなので時間が無い人はこちらをどうぞ

Burp Proxyを立ち上げる

Burpっていうのは便利な奴で,ここからダウンロード出来る.
http://portswigger.net/burp/

プロキシの設定をかえる

デフォルトではローカルからのリクエストだけを受け付けているので,プロキシサーバとして振る舞って頂けるように設定を致します.具体的にはProxyタブのOptionsを開き
Screen Shot 2015-05-07 at 22.01.30.png

Addボタンからそれっぽいやつを追加致しまして
Screen Shot 2015-05-07 at 21.49.37.png

どーんという具合です.
Screen Shot 2015-05-07 at 21.49.15.png

これで外部からのリクエストを受け付けるようになりました.

iOSにルート証明書をインストールする

さて,SSL/TLSによる通信は暗号化されているため簡単には見えないわけです.Burpのデフォルトの動作としてはBurp自身が正しい証明書で通信をすることでBurpとしては復号結果を保持し,本来のクライアントに転送する際に,Burp自身が持っているルート証明書によって証明される証明書をホスト毎に自動生成する,という形をとります.

どういうことかというと,このBurpのルート証明書を対象端末に入れれば万事OKということです.

方法としてはBurpを立ち上げたマシンのIPを調べまして,先ほど指定したポートにアクセスします.するとこういう画面がでてきますので,迷わず右上の'CA Certificate'と言うリンクをぽちっとやります.
IMG_3174.PNG

あとは画面指示に従いルート証明書をインストールしましょう.

Proxyの設定をする

設定画面のWiFiから接続中のアクセスポイントを選択し,一番下のHTTPプロキシの項目をそれらしい感じに設定します.

192.168.1.7の8080でBurpが待ち受けている場合は以下のような設定になります.
IMG_3176.PNG

実際にHTTPSなサイトにアクセスしてみる

左がBurpが動作しているMacの画面,右がiOS上の画面です.HTMLがちゃんと展開されているのがわかります.
Screen Shot 2015-05-07 at 21.54.56.png

便利ですね.Burpの機能を使えばリクエストやレスポンスの中身を書き換えれますので,手軽にいろいろ試せて良いですよ.