🔓

Androidの通信解析

2024/02/12に公開

目的

ピン留めされてないアプリの通信を読む

必要なもの

  • openssl
  • Burp Suite(別にBurp Suiteじゃなくてもいい)
  • root化したAndroidエミュレーター(今回はNoxのAndroid12を使った)

手順

CA証明書

証明書エクスポート

Burp SuiteのProxyの設定からInport / export CA certificateをクリック

一番上のCertificate In DER formatをクリック

好きな場所にエクスポートする

変換

derからpemに変換してサブジェクトハッシュを見る

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


一番上の9a5ba575がサブジェクトハッシュ

mv cacert.pem 9a5ba575.0

Androidにシステム証明書として入れる

AVDを使用している場合

Google Playのイメージを使用しないでください。
AVDの名前をスペースが入っていない物に変えて下さい。

エミュレーターを起動

emulator -avd Pixel6API30 -writable-system

AVD以外

AVDを使用している場合はエミュレーターの起動まで行って下さい。

sdcardに証明書をコピー

adb root
adb remount
adb push 9a5ba575.0 /sdcard/

パーミッションを設定

adb shell 
mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0

再起動する
終わり!

参考

https://blog.ropnop.com/configuring-burp-suite-with-android-nougat
https://stackoverflow.com/questions/13089694/adb-remount-permission-denied-but-able-to-access-super-user-in-shell-android/66557437#66557437

Discussion