Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
rtx-cve-2023-45779 — Android APEX キー再利用の脆弱性の概念実証コード | Kitploit
ツール/GitHubGitHub/metaredteam/rtx-cve-2023-45779
Androidセキュリティ脆弱性分析エクスプロイトバイナリ解析サプライチェーンセキュリティペイロード開発
GitHubmetaredteam/rtx-cve-2023-45779

rtx-cve-2023-45779

Android APEX キー再利用の脆弱性の概念実証コード

リポジトリを見る
109842年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

このリポジトリは、Meta Red Team X の脆弱性開示に付随するものです(AS IS で提供されます)。これは Meta の公式プロジェクトではなく、公式プロジェクトのようにサポートされることはありません。

AOSP のテストキーで署名された APEX を搭載する Android デバイスの検出と悪用を実証するスクリプトとアーティファクトのセットです。問題の詳細については、ブログ記事「Missing signs: how several brands forgot to secure a key piece of Android」を参照してください。

ファイル

  • apex-checker/: 既知のテストキーのダイジェストを保存し、それらのキーによる署名がないか APEX を一括チェックする Bash スクリプト群。
  • apex-forger/: AOSP の apexer および deapexer ツールの軽量ラッパー。APEX のアンパック、変更、再パックを簡単に行えます。APEX 向けの apktool のようなものです。
  • vndk-libt/: 脆弱な APEX に追加してコード実行が可能であることを実証するためのライブラリのソースコード。このライブラリは、それをロードする各プロセスのコマンドラインを logcat に出力するだけです。

エクスプロイトの実行

  1. 最近の AOSP ソースツリー(Android 13 系)をクローンし、envsetup+lunch を行って、m apexer deapexer apksigner を実行し、必要なツールをビルドします。
  2. envsetup.sh(ここにあるもので、AOSP 内のものではありません)を更新して、$AOSP と $ANDROID_HOST_OUT を適切な場所に指定します。
  3. Android デバイスを用意します。アップデートして ADB を有効にします。
  4. adb shell getprop ro.build.version.sdk と adb shell getprop ro.vndk.version を実行します。
  5. 2 つが一致する場合は、adb pull /system/apex/com.android.vndk.current.apex vndk.apex を実行します。一致しない場合は、adb pull /system_ext/apex/com.android.vndk.v<NN>.apex vndk.apex を実行します。ここで <NN> は ro.vndk.version の値です。
  6. apex-checker/check.sh vndk.apex で APEX が脆弱かどうかを確認します。出力が "OI" で始まらない場合(外側と内側の両方の署名がテストキー由来であることを示します)、この PoC は使用できません(ただし、他の APEX がまだ脆弱である可能性があるため、デバイスが安全であることは保証されません)。
  7. apex-forger/unpack.sh vndk.apex vndk で APEX をアンパックします。
  8. 抽出した APEX 内の libutils.so にパッチを適用して、注入した libt.so をロードしてみます: git apply --directory=vndk vndk-libt/libutils-v31.patch。それがうまくいかない場合(異なる VNDK バージョンなど)は、16 進エディタを使って vndk/payload/lib64/libutils.so の該当する DT_NEEDED 内の libc.so を手動で libt.so に変更します。
  9. vndk-libt/ 内で ndk-build を実行して libt.so をビルドします。vndk-libt/libs/arm64-v8a/libt.so を vndk/payload/lib64/libt.so にコピーします。
  10. apex_build_info.bp から canned_fs_config を抽出します。これを簡単に行うツールはありません。最も近い方法は protoc --decode_raw <vndk/apex_build_info.bp を実行し、フィールド #3 を手動でアンエスケープすることです。canned_fs_config を vndk/ に配置します。
  11. 他の行と同様に、/lib64/libt.so 用の行を canned_fs_config に追加します。
  12. 適切な VNDK バージョンのテストキーをここからダウンロードします。
  13. apex-forger/repack.sh vndk com.android.vndk.v<NN>.{pem,pubkey,pk8,x509.pem} で APEX を再パックします。
  14. adb install vndk/forged.apex を実行します。
  15. adb reboot && adb logcat -s RTXPoC:D を実行します。
  16. 多数の RTXPoC ログメッセージを確認します。それぞれはコードを実行できるプロセスからのものです。

apex-checker が認識するテストキー

apex-checker/apk-keys.txt と apex-checker/avb-keys.txt のハッシュは、次の APEX の外側と内側のテストキーに対応しています。これらの 2 つのリストには -goog バリアントもあることに注意してください。これは私たちの最初の報告後に Google によって作成されました。これらのリストは一般的に内容がより完全ですが、正確にどのキーが含まれているかは不明です。

  • com.android.appsearch
  • com.android.art
  • com.android.btservices
  • com.android.i18n
  • com.android.mediaprovider
  • com.android.ondevicepersonalization
  • com.android.permission
  • com.android.rkpd
  • com.android.runtime
  • com.android.uwb
  • com.android.virt
  • com.android.vndk.v28
  • com.android.vndk.v29
  • com.android.vndk.v30
  • com.android.vndk.v31
  • com.android.vndk.v32
  • com.android.vndk.v33
  • com.android.wifi
ツールをダウンロード