Skip to content

Latest commit

 

History

History
138 lines (87 loc) · 4.55 KB

File metadata and controls

138 lines (87 loc) · 4.55 KB

Android 14 の Root証明書インストールバイパス

Language/English

概要

Android 14 以降では信頼されたRoot証明書をシステムにインストールすることが困難になっています。

バイパスの手順を説明します。

バイパスポイント

API-34 よりシステムの証明書を読み込む処理にて、「/apex/com.android.conscrypt/cacerts」から証明書読み込む処理になっているが システムプロパティが「system.certs.enabled」となっている場合は、以前の「/system/etc/security/cacerts/」より証明書を取得するコードになっています。

private static File getDirectory() {
    if ((System.getProperty("system.certs.enabled") != null)
            && (System.getProperty("system.certs.enabled")).equals("true")) {
        return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
    }
    File updatable_dir = new File("/apex/com.android.conscrypt/cacerts");
    if (updatable_dir.exists()
            && !(updatable_dir.list().length == 0)) {
        return updatable_dir;
    }
    return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
}

バイパスを行うためにこの仕様を利用します。

具体的な手順

次の複数の方法を用意しました。

  • Frida-Script を利用する方法
  • Xposed Module を利用する方法
  • Magisk Module を利用する方法

Frida-Script を利用する方法

「system.certs.enabled」のシステムプロパティを書き換える方法として、Frida によるスクリプトが利用できます。

setImmediate(function () {
  console.log("[*] Starting script");
  Java.perform(function () {
    var systemClass = Java.use("java.lang.System");
    systemClass.setProperty("system.certs.enabled","true");
  })
})

Frida-Scriptを実行します。

cd OverrideSysPropModule\Frida-Script
frida -U -n com.example.app -l OverrideSysProp.js

Xposed Module を利用する方法

Fridaスクリプトはコマンドラインにて指定する必要があります。また複数のアプリに適用するには不便です。

常に利用できる方法として Android の Xposed Module を作成しました。

「OverrideSysPropModule/Xposed-Module/app/release」フォルダに作成した Xposed Module のアプリを置いています。

手順

  1. Magisk インストールします。
  1. 「Zygisk」および「Enforce DenyList」を有効にします。

  2. 再起動します。

  3. Magisk Module をインストールします。

  1. 「OverrideSysPropModule」フォルダ内の Xposed Module をインストールします。
cd OverrideSysPropModule\Xposed-Module\app\release
adb install OverrideSysprop.apk
  1. ユーザ証明書にBurp suite などのRoot証明書をインストールします。

  2. Moduleを適用したいアプリに対して有効にします。

OverrideSysProp

TIP: 手順を実施後に Android 端末を再起動しないとうまく認識しない場合があります。

Magisk-Module を利用する方法

常に利用できる方法として Android の Magisk Module を作成しました。

「OverrideSysPropModule/Magisk-Module/app/release」フォルダに作成した Magisk Module を置いています。

手順

  1. Magisk インストールします。
  1. 「Zygisk」および「Enforce DenyList」を有効にします。

  2. 再起動します。

  3. Magisk Module をインストールします。

  1. 「OverrideSysPropModule」フォルダ内の Magisk Module をインストールします。
cd OverrideSysPropModule\Magisk-Module\app\release
adb push /sdcard/Download

OverrideSysProp

6. ユーザ証明書にBurp suite などのRoot証明書をインストールします。

TIP:  手順を実施後に Android 端末を再起動しないとうまく認識しない場合があります。