Install Burp Certificate
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
まず最初に、BurpからDer証明書をダウンロードする必要があります。これは、Proxy --> Options --> _Import / Export CA certificate_で行うことができます。
Der形式で証明書をエクスポートし、Androidが理解できる形式に変換します。**AndroidマシンでBurp証明書を設定するには、このマシンを-writable-system
オプションで実行する必要があります。
例えば、次のように実行できます:
次に、burpの証明書を設定するには:
マシンが再起動を完了すると、Burp証明書が使用されます!
もしあなたがMagiscでデバイスをルート化した(エミュレーターかもしれません)場合、ファイルシステムが読み取り専用で再マウントできないため、Burp証明書をインストールする前の手順に従えない場合、別の方法があります。
このビデオで説明されているように、次のことを行う必要があります:
CA証明書をインストールする:DER Burp証明書をドラッグ&ドロップして、モバイルで拡張子を.crt
に変更し、ダウンロードフォルダに保存し、証明書をインストール
-> CA証明書
に進みます。
信頼できる資格情報
-> ユーザー
に進んで、証明書が正しく保存されていることを確認します。
システム信頼にする:MagiscモジュールMagiskTrustUserCerts(.zipファイル)をダウンロードし、ドラッグ&ドロップして電話に移動し、電話のMagicsアプリの**モジュール
セクションに行き、ストレージからインストール
をクリックし、.zip
モジュールを選択してインストール後に再起動**します:
再起動後、信頼できる資格情報
-> システム
に進み、Postswigger証明書がそこにあることを確認します。
最新のAndroid 14リリースでは、システム信頼の証明書機関(CA)証明書の取り扱いに大きな変化が見られました。以前は、これらの証明書は**/system/etc/security/cacerts/
に格納されており、ルート権限を持つユーザーがアクセスおよび変更できたため、システム全体に即座に適用されていました。しかし、Android 14では、ストレージの場所が/apex/com.android.conscrypt/cacerts
に移動され、/apex
**パス内のディレクトリであり、本質的に不変です。
APEX cacertsパスを読み取り可能に再マウントしようとすると失敗し、システムはそのような操作を許可しません。一時ファイルシステム(tmpfs)でディレクトリをアンマウントまたはオーバーレイしようとする試みも不変性を回避できず、アプリケーションはファイルシステムレベルでの変更に関係なく元の証明書データにアクセスし続けます。この耐性は、**/apex
マウントがPRIVATE伝播で構成されているためであり、/apex
**ディレクトリ内の変更が他のプロセスに影響を与えないことを保証します。
Androidの初期化にはinit
プロセスが関与し、オペレーティングシステムを起動すると同時にZygoteプロセスも開始されます。このプロセスは、新しいマウントネームスペースを持つアプリケーションプロセスを起動する責任があり、プライベートな**/apex
**マウントを含むため、このディレクトリへの変更を他のプロセスから隔離します。
それでも、**/apex
ディレクトリ内のシステム信頼のCA証明書を変更する必要がある場合の回避策があります。これは、PRIVATE伝播を削除するために/apex
を手動で再マウントし、書き込み可能にすることを含みます。このプロセスには、/apex/com.android.conscrypt
の内容を別の場所にコピーし、読み取り専用制約を排除するために/apex/com.android.conscrypt
ディレクトリをアンマウントし、その後、内容を/apex
**内の元の場所に復元することが含まれます。このアプローチは、システムクラッシュを避けるために迅速な行動を必要とします。これらの変更をシステム全体に適用するためには、system_server
を再起動することが推奨されており、これによりすべてのアプリケーションが再起動され、システムが一貫した状態に戻ります。
書き込み可能なディレクトリの設定: 最初に、既存の非APEXシステム証明書ディレクトリの上にtmpfs
をマウントすることで、書き込み可能なディレクトリが確立されます。これは次のコマンドで実行されます:
CA証明書の準備: 書き込み可能なディレクトリのセットアップに続いて、使用するCA証明書をこのディレクトリにコピーする必要があります。これには、/apex/com.android.conscrypt/cacerts/
からデフォルトの証明書をコピーすることが含まれる場合があります。これらの証明書の権限とSELinuxラベルを適切に調整することが重要です。
Zygoteのバインドマウント: nsenter
を使用して、Zygoteのマウントネームスペースに入ります。ZygoteはAndroidアプリケーションを起動するプロセスであり、以降に起動されるすべてのアプリケーションが新しく構成されたCA証明書を利用することを保証するためにこのステップが必要です。使用されるコマンドは:
これにより、新しく起動したアプリが更新されたCA証明書の設定に従うことが保証されます。
実行中のアプリへの変更の適用: 既に実行中のアプリケーションに変更を適用するには、nsenter
を再度使用して各アプリの名前空間に個別に入り、同様のバインドマウントを実行します。必要なコマンドは:
代替アプローチ - ソフトリブート: 代替手法は、init
プロセス(PID 1)でバインドマウントを行い、その後stop && start
コマンドでオペレーティングシステムをソフトリブートすることを含みます。このアプローチは、すべてのネームスペースに変更を伝播させ、各実行中のアプリを個別に対処する必要を回避します。しかし、この方法はリブートの不便さから一般的にはあまり好まれません。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)