概要
Webアプリケーション脆弱詩診断の業務に携わっています。
診断時に特定のドメインだけ通信が取れなくて困った事があったので、備忘録として残します。
(2019/04/09 追記)
時が経ち、有線LANに接続できるMacが手元にないので追記しました。
スライド
2016/11/18 に、Burp Suite Japan LT Carnival に登壇させていただいたときの資料になります。
こちらもどうぞご覧ください。
Burp suite を使って iPhone アプリを診断した時に困ったことと、解決方法
通信が取れなくなった原因
プロキシ設定が無視されてるのではと考えていますが、特定できず…
解決方法
Macの機能を使いました。
インターネット共有
- Macを有線LANに接続
- システム環境設定 > 共有 > インターネット共有 > Wi-Fiの設定 > インターネット共有開始
- iPhoneからMacに無線LANで接続
有線LANへ接続できない場合、モバイルルーターのUSBテザリング機能で代替可能でした。
検証時の環境は下記です。
- PC
- MacBook Pro 15インチ 2015
- モバイルルーター
手順は下記です。
- Aterm MR05LN の設定を変更します。
設定 > LAN側設定 > USBテザリング機能OFF→ON でテザリング機能を有効化できました。 - PC と Aterm MR05LN をUSB接続して、テザリングします。
- システム環境設定 > 共有 > インターネット共有 > Wi-Fiの設定 > インターネット共有開始
- iPhoneからMacに無線接続
※CatalinaでUSBテザリングができない場合、Mac側にドライバが必要かもしれません。
HoRNDIS: USB tethering driver for Mac OS X | Joshua Wise's domain の HoRNDIS-9.2.pkg をいれたら動きました。
※USBテザリングで追記。
Catalinaだとインストール途中でエラーを吐くようになったので、下記を使っています。(Big Surでは使えないようなので注意)
HoRNDIS-9.2-catalina_install.pkg.zip
※USBテザリングで追記。その2。
Big Surの場合は下記を参照のこと
Big SurにアップデートしたHoRNDISを再インストールする
パケットフィルタ
設定ファイルを作成します。
rdr inet proto tcp from any to port 80 -> 127.0.0.1 port 8080
rdr inet proto tcp from any to 診断対象のIPアドレス port 443 -> 127.0.0.1 port 8080
rdr inet proto tcp from any to any port 443 -> 127.0.0.1 port 8081
ターミナルからパケットフィルタを起動します。
% sudo pfctl -ef pf_burp.conf
あとはBurpを3つ起動して通信を取得するだけです。
# | port | os | 備考 |
---|---|---|---|
Burp1 | 8081 | Mac | 診断対象外 SSL Path Throughで通信を取得しない |
Burp2 | 8080 | Mac | 診断対象 Burp3に通信をリダイレクト |
Burp3 | 8080 | Win | 通常通り診断 |
参考リンク
- PF 設定方法
- MessagePack の 拡張機能
- USBテザリング