LoginSignup
0
0

Windows10上のBurp SuiteとNox Playerで通信をキャプチャする環境を作ってみる

Last updated at Posted at 2023-09-29

はじめに

いまさら(2023年)ながら、まとめてみる

各種ツールのインストール

インストール自体はさすがに省略 m(_ _)m

今回のバージョンは、

  • Windows10 Professional
  • Burp Suite Community Edition 2023.10.1.1
  • Win64 OpenSSL v3.1.3
  • Nox Player v7.0.5.8(2023/09/11) (Android9相当!?) (ダウンロードしたらv7.0.5.9だった)

認証局証明書の抽出

Burpから、証明書をExportする

特に秘密鍵は必要ないので、DER形式で抽出

cacert01.png

証明書の編集

DER形式からPEM形式へ変換

OenSSLのコマンドでフォーマットを変換

openssl.exe x509 -inform DER -in cacert.der -out cacert.pem

証明書ファイル名の書き換え

これはどうも、OpenSSLの仕様のようだ。

"ハッシュ値".0」というファイルでないとダメのようだ。

C:\temp>openssl.exe x509 -inform PEM -in cacert.pem -subject_hash_old
9a5ba575
-----BEGIN CERTIFICATE-----
~~~~~省略~~~~~

C:\temp>move cacert.pem 9a5ba575.0
        1 個のファイルを移動しました。

Link
OpenSSLでSSLサーバ証明書の検証をする方法

NoxPlayerの設定(ルート化)

起動して、設定画面からAndroidエミュレータをRoot化できる

cacert03.png

GUIで設定できるのはとても便利だ♪

NoxPlayerへコピー

NoxPlayerへコピー(D&D)

証明書ファイルをドラッグ・アンド・ドロップで、NoxPlayer内へコピーされると思う。
(コピー先のディレクトリパスは記憶しておくこと)

NoxPlayerへコピー(adb.exeの場所)

Nox Playerのインストール先(C:\Program Files (x86)\Nox\bin)にadb.exeがある

C:\Program Files (x86)\Nox\bin>dir adb*
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は A079-921A です

 C:\Program Files (x86)\Nox\bin のディレクトリ

2023/09/29  10:58           395,091 adb.7z
2023/09/29  10:59         1,503,072 adb.exe
2023/09/29  10:59            97,792 AdbWinApi.dll
2023/09/29  10:59            62,976 AdbWinUsbApi.dll
               4 個のファイル           2,058,931 バイト
               0 個のディレクトリ  36,198,649,856 バイトの空き領域

NoxPlayerの証明書フォルダへコピー

D&Dでは、/system/etc/security/cacerts/ 以下にはコピーできないようなので、adb.exeコマンドを使って、コピーする

↓のは、D&Dでコピーしたファイルが /sdcard/Pictures 以下にコピーされてしまったので、それを/system/etc/security/cacerts/以下にコピーする

C:\Program Files (x86)\Nox\bin>adb shell
d2q:/ # mount -o rw,remount /system
d2q:/ # mv /sdcard/Pictures/9a5ba575.0 /system/etc/security/cacerts/
d2q:/ # chmod 644 /system/etc/security/cacerts/9a5ba575.0
d2q:/ # reboot

複数のAndroidデバイスを接続していると、「デバイスIDを指定してくれ~」とか面倒なので、エミュレータ1台起動するだけにしておいた方が無難だと思う。

NoxPlayerの再起動

adbコマンドの "reboot" コマンド後は仮想キーボードが無反応になるようなので、NoxPlayer自体を再起動した方がいいかもしれない。

Burp Suite を外部からも接続できるようにする

通常は127.0.0.1にバインドされていて、ローカルホストからしか接続できないので、外部ホストからも接続できるように0.0.0.0にバインドさせる

cacert02.png

キャプチャ画像にはバインドポート番号が空欄だけど、ここにはポート番号(例えば8080)を入れておくように。

NoxPlayerのProxy設定

Burpが動作している端末のIPアドレスとポート番号は事前に調べておく。

それを

cacert03a.png

  • Tools→設定→ネットワークとインターネット→Wi-Fi→"Wi-Fi名"→詳細設定→"編集ボタン"→プロキシ

に記述する

テスト

ブラウザで動作テスト

Nox Playerに標準でインストールされているWebブラウザで、Proxy経由でhttps通信を覗けるかテストする

アプリの動作テスト(AndroidStudio/Java)

AndroidStudio/Javaで書いたWebページを取得するだけのテスト用のアプリがあるので、実際にトラップできるかをテストする

sWebGetAndroid (GooglePlay)
(レスポンスを表示するタイミングはすごい遅いので、待ち時間があるよ)

さすがに「Force NoProxy」を、チェックするとトラップできない。(当たり前か...orz)

開発業者にjava.net.HttpURLConnectionクラスのProxyに関するプロパティはいじらないでと言っておく必要があるかもしれない

アプリの動作テスト(Monaca)

Monaca(Cordva)で書いたWebページを取得するだけのテスト用のアプリがあるので、実際にトラップできるかをテストする

sWebGetMonaca (GooglePlay)

Webブラウザベース(WebView)なので、Webブラウザでトラップできれば、こちらでもトラップできるとは思う...

アプリの動作テスト(Xamarin)

Xamarinで書いたWebページを取得するだけのテスト用のアプリがあるので、実際にトラップできるかをテストする

sWebGetXamarin (GooglePlay)

うん!? 「NoProxy」でトラップできないのは当然として、「Default」でもトラップできない...

開発業者がXamarinで作っていないようにとお祈りしておく必要があるかもしれない

アプリの動作テスト(.NET MAUI)

まだ、テスト用アプリを書いていない...orz

アプリの動作テスト(Flutter)

まだ、テスト用アプリを書いていない...orz

Fiddlerの場合

認証局証明書の抽出

Fiddlerの場合、「Tools」→「Options」メニュー→「HTTPS」タブの「Actions」ボタンの「Export Root Certificate to Desktop」を選択すると、デスクトップに、CER形式の証明書がエクスポートされる

fiddler.png

デスクトップに「FiddlerRoot.cer」というファイルができる

fiddler1.png

証明書の編集

CER形式もDER形式でよいようだ

OenSSLのコマンドでフォーマットを変換

openssl.exe x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.pem

これ以降は、Burpと同じ手順です。

Zapの場合

認証局証明書の抽出

OWASP ZapもCER形式のようだ。

zap-cer.png

なので、Fiddlerと同じ手順です。

なので、これ以降は、Burpと同じ手順です。

Link

後で追記していく...

以上

0
0
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
0
0