LoginSignup
18
5

More than 3 years have passed since last update.

Windows 10 + Burp Suite で Android 8.0 のアプリの通信を取得する方法

Last updated at Posted at 2019-11-30

概要

Webアプリケーション脆弱性診断するときに困ったので、備忘録としてまとめました。

  • Android 8.0 で動くアプリについて、 Windows 10 Pro + Burp Suite Pro で HTTPS 通信を取得する方法です。
  • Mac をお使いの方は適宜読み替えてください。
  • 対象の Android 端末の root 化が必要なのと、システムディレクトリ触るので注意が必要です。
  • ご利用される際は自己責任でお願いします。

環境

  • Nexus 5X(Android 8.0)
    • root 化済み
  • Windows 10 Pro バージョン1803 (OSビルド 17134.407)
  • OpenSSL Win64 v1.1.1b
  • Android Debug Bridge version 1.0.40 Version 4986621
  • Burp Suite Pro 1.7.37
    • Communityエディションでもいけると思いますが未検証…

通信のイメージ

Android <--無線LAN--> Win10(Burp:8080) <--無線LAN--> サーバー

前提

Burpの設定をしておきます。
Android端末の通信をプロキシできるようにします。

  • Win10 を 無線LANに接続します。
    • 無線LANの接続方式をプライベートネットワークにしておきます。
    • 信頼できないネットワークでやらないようにしてください。
  • 対象の Android 端末も Win10 と同じ無線LANに接続します。
    • 接続する際、Proxyを設定します。手動設定でWin10のIPアドレスと8080ポートを指定します。
  • Burp を起動して、 Proxy > Options > Proxy Listeners と進み、デフォルトの8080ポートの設定を選択してEditします。
    • Proxy設定を変更していきます。
    • Binding > Binding to address: のラジオボタンで All interfaces にチェックをいれます。
      • 信頼できないネットワークでやらないようにしてください。
    • Request handling > Invisible proxy support allows non-proxy-aware clients to connect directory to the listner > Support invisible proxying (enable only if needed) にチェックをいれます。
    • 設定後 OK し、 Proxy 設定を反映させます。

これだけだと、https接続時に証明書エラーがおきるので、次のステップで証明書エラーが起きないようにします。

証明書の設定手順

  • Burp Suite の Proxy > Options > Proxy ListenersImport/export CA certificate をクリックします。
  • Export > Certificate in DER format にチェックを入れて Next をクリックします。
  • 任意のローカルフォルダを設定して、任意のファイル名で保存します。
    • 例) c:\hoge.der
  • PowerShellなどを用いて、OpenSSLを使って、保存した hoge.der をpem形式に変換します。
PS C:\> openssl x509 -inform DER -in hoge.der -out hoge.pem
  • 作成したpemファイルの subject_hash_old の1行目の値を取ります(下記だと9a5ba575)
PS C:\> openssl x509 -inform PEM -subject_hash_old -in hoge.pem
9a5ba575
-----BEGIN CERTIFICATE-----
~略~
-----END CERTIFICATE-----
  • hoge.pem のファイル名を変更します。(hash + 拡張子が0)
    • 例)9a5ba575 の場合は 9a5ba575.0 にファイル名を変更
PS C:\> ren hoge.pem 9a5ba575.0
  • adb を使って、Android端末に作成したファイルを保存します。
PS C:\> adb push 9a5ba575.0 /sdcard/
  • adb shell を使ってAndroid端末を操作します。
PS C:\> adb shell 
  • su を叩いて superuser になります。
    • もし Android 端末側で確認ダイアログが出たら許可します。
$ su
  • 端末に保存した証明書ファイルをシステムにマウントします。
# mount -o rw,remount /system
# mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
# chmod 644 /system/etc/security/cacerts/9a5ba575.0
  • 端末を再起動します。
  • 再起動後、端末の設定内のセキュリティ項目で、「信頼できる認証情報」を確認して、 PortSwigger CA が設定されていることを確認します。

結果、 Burp Suite で通信が取れようになっていると思います。

参考サイト

WindowsにOpenSSLをインストールして証明書を取り扱う(基本編):Tech TIPS - @IT
Configuring Burp Suite with Android Nougat
AndroidのプレインストールされたCAにCAを追加する - 試運転ブログ

18
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
5