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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-0073-Android-client-TLS-auth-bypass — オリジナルのPythonエクスプロイトをCに変換する | Kitploit
ツール/GitHubGitHub/m00ddy/cve-2026-0073-android-client-tls-auth-bypass
Androidセキュリティ脆弱性分析エクスプロイトペネトレーションテストペイロード開発バイナリエクスプロイト
GitHubm00ddy/cve-2026-0073-android-client-tls-auth-bypass

CVE-2026-0073-Android-client-TLS-auth-bypass

オリジナルのPythonエクスプロイトをCに変換する

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
22ヶ月前未レビュー

CVE‑2026‑0073 は、Android の ADB デーモン (adbd) における論理バグであり、ワイヤレスデバッグが有効で、かつ一度でも任意のコンピューターとペアリングされたデバイスに対して、攻撃者が TLS 相互認証をバイパスしてリモートシェルを開くことを可能にします。根本原因は、単一の API の誤用です。OpenSSL の EVP_PKEY_cmp() の戻り値が、3 値の結果ではなくブール値として扱われます。

ADB ワイヤレスデバッグにおける通常の認証フロー

アンドロイドの開発者向けオプションからワイヤレスデバッグを有効にすると、デバイスはランダムな TCP ポートで待ち受ける adbd インスタンスを起動します。 注: この機能は Android 11 以降で導入されました。

プロトコルには 2 つのフェーズがあります。

  1. クリアテキストネゴシエーション: ホストは TCP 経由で接続し、TLS へのアップグレードに合意するために CNXN/STLS ハンドシェイクを交換します。
  2. TLS 1.3 相互認証:
    • サーバー adbd はクライアントに証明書の提示を要求します
    • adbd はその証明書から公開鍵を抽出します
    • 次に、その鍵を /data/misc/adb/adb_keys に保存されているすべての承認済み RSA 鍵と比較します。鍵は以前のペアリング中にそこに配置されます (このエクスプロイトでは、少なくとも 1 つの鍵がそこに存在する必要があります)
    • 鍵が一致すれば、ハンドシェイクは成功し、ホストは shell ユーザーとしてシェルコマンドを送信できます 鍵の比較には OpenSSL の EVP_PKEY_cmp(key1, key2) が使用され、これは次の値を返します。
  • 1 --> 鍵が等しい
  • 0 --> 鍵が等しくない
  • -1 --> 鍵のタイプが異なる、またはエラーが発生した

バグ

ファイル daemon/auth.cpp 内の脆弱な関数 adb_tls_verify_cert() はおおよそ次のようになります。

root@kitploit:~
int cmp = EVP_PKEY_cmp(stored_rsa_key, peer_key);
if (cmp) {     
    authorised = true;
}

if(cmp) は cmp が非ゼロである限り true を返すため、EVP_PKEY_cmp() が -1 を返すと認証が行われます。つまり、保存されている鍵が RSA であるため、クライアントが EC または ed25519 証明書を提示すると、関数は -1 を返し、攻撃者は承認されたアクセスを獲得します。

攻撃の流れ

  1. ターゲット: ワイヤレスデバッグが有効で、キーストアに少なくとも 1 つの RSA 鍵がある Android デバイス (誰かによって一度でもペアリングされている)。

  2. クリアテキストハンドシェイク: 攻撃者は adbd の TCP ポートに接続し、CNXN/STLS を交換します。

  3. EC 証明書を使用した TLS ハンドシェイク: 攻撃者は一時的な EC P‑256 鍵と自己署名証明書を生成します。この鍵は意図的に RSA ではありません。

  4. 欠陥のある比較: EVP_PKEY_cmp(RSA, EC) は ‑1 を返す → if (cmp) が true になる → adbd はトランスポートを承認済みとしてマークします。

  5. TLS 後: 攻撃者はホスト CNXN (トランスポートをリセットする) の送信を回避し、大きな delayed_ack ウィンドウを持つ shell: ストリームを直接開きます。

結果: シェルユーザーとしてのリモートシェル。ユーザーの操作なし、通知なし、正当な秘密鍵を保持する必要もありません。

なぜ C に移植するのか?

Python スクリプトは、攻撃マシンに python 3 インタープリターと cryptography ライブラリがインストールされている必要があります。C での実装は、システムの OpenSSL/libssl 以外の外部依存関係を持たないスタンドアロンのバイナリにコンパイルされます。OpenSSL/libssl は事実上すべての Linux システムにデフォルトで存在します。これにより、配備の障壁が劇的に下がります。さらに、C プログラムは任意のターゲットアーキテクチャ (x86_64、ARM、MIPS) 向けにクロスコンパイルできます。つまり、エクスプロイトはルーターや Raspberry Pi などの組み込みデバイス、あるいは攻撃者として動作する別の Android デバイス上でも、python 環境を必要とせずにコンパイルして実行できます。そして、コンパイルされた C バイナリはシンボルを除去したり、(UPX で) パックしたりできるため、逆アセンブラなしでは不透明であり、python スクリプトよりもステルス性が高くなります。

デモ

エクスプロイトの実行: ワイヤレスデバッグインターフェースの IP と PORT を指定すると、デバイス上でシェルを取得できます。

root@kitploit:~
docker build -t adb_bypass .
docker run -it --network host adb_bypass <IP> <PORT>

電卓を起動する

root@kitploit:~
am start -n com.sec.android.app.popupcalculator/com.sec.android.app.popupcalculator.Calculator

LLM の使用に関する注記

LLM はエクスプロイトを python から C に移植するために使用されました。元のエクスプロイトは こちら です。移植は 1:1 では正しくなく、多くの問題に直面したため、コード分析とやり取りを繰り返すループが、移植のバグを修正して完全に動作するエクスプロイトに到達するために必要でした。

ツールをダウンロード