banner
南村一童

南村一童

南村一童

MacでAndroid Studioエミュレーターを使用してhttpsをキャッチする

最近 apk をテストしていると、一般的な手段:burp 証明書のエクスポート -> 証明書のインストール ->wifi 設定のプロキシ手段では https のトラフィックをキャッチできないことがわかりました(proxifier を使って Android エミュレーターを burp プロキシ経由で動かすことも可能ですが、やりたくありませんでした)。検索エンジンで調べたところ、Android7.0 以降、システムはデフォルトでシステム証明書のみを信頼し、ユーザーがインストールした証明書は信頼しなくなったことがわかりました。そのため、さまざまなエミュレーターを使って apk の https メッセージをキャッチしようと何度も試みた後、最終的に Android Studio を選択しました。証明書をシステム証明書にインストールします。

burp 証明書の準備#

1、burp 証明書をエクスポート
2、openssl を使用して証明書形式を変更し、burp 証明書の der 形式を pem に変換し、証明書のハッシュを取得します。

openssl x509 -inform DER -in burp.der -out burp.pem 
openssl x509 -inform PEM -subject_hash_old -in burp.pem

image
ファイル名を取得したハッシュ.0 に変更します。

mv burp.pem 9a5ba575.0
エミュレーターの準備#

1、Android Studio を開き、新しいエミュレーターを作成します。詳細は画像を参照してください。
image.png

システムイメージは必要に応じて選択できます。
image.png

エミュレーターの名前を入力し、エミュレーターのストレージサイズを設定します。多めに設定して、インストールスペースが不足しないようにします。
image.png

image.png

2、emulator コマンドを使用してエミュレーターを起動します。コマンドのデフォルトの場所は / Users/{{ユーザー名}}/Library/Android/sdk/emulator です。-no-snapshot-load パラメータを追加してエミュレーターの状態を保存します。そうしないと、エミュレーターを再起動した後に adb root、remount コマンドを再実行して証明書の権限を変更する必要があります。

すべてのエミュレーターを表示   emulator -list-avds
エミュレーターを起動   emulator @Resizable_API_33 -writable-system -no-snapshot-load

image.png

image.png

証明書のアップロード#

1、adb コマンドを使用してパーティションを再マウントし、system を読み書き可能にします。

adb root    root権限に入る
adb disable-verity    パーティション検証機能を無効にする
adb reboot    デバイスを再起動
adb remount    パーティションを再マウントし、systemパーティションを読み書き可能にする

image.png
image.png
image.png

2、証明書をアップロードします。

adb push 9a5ba575.0 /sdcard    /sdcardディレクトリに証明書をアップロード
adb shell    システムに入る。この時、whoamiを使用してrootユーザーかどうか確認できます
cp /sdcard/9a5ba575.0 /system/etc/security/cacerts/    システムに入った後、証明書をシステム証明書ディレクトリにコピーします
chmod 644 /system/etc/security/cacerts/9a5ba575.0    証明書の権限を変更します

image.png

3、証明書が正常にインストールされたか確認します。
エミュレーターのインターフェースを操作し、設定 (setting) --> セキュリティ (security) --> さらにセキュリティ設定 (more security settings) --> 暗号化と資格情報 (encryption & credentials) --> 信頼された資格情報 (trusted credentials) に入ります。
image.png

WIFI プロキシの設定#

image.png
image.png

パケットキャプチャに成功
image.png

参考記事#

https://www.freebuf.com/articles/system/347725.html
https://developer.android.com/studio/run/emulator-commandline?hl=ja
https://developer.android.com/studio/command-line/adb?hl=ja
https://juejin.cn/post/6844903645289398280
https://android.stackexchange.com/questions/232234/why-adb-remount-retruns-remount-failed-on-android-emulator

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。