
学生であるため、この脆弱性をテストできるデバイスが限られています。これまでテストしたバージョンは、MacOS 12.3.1、MacOS 12.3、MacOS 12.0、MacOS 10.15.7、MacOS 11.6.1 です。この脆弱性はテストしたすべてのバージョンで動作します。
影響: 悪意のあるアプリケーションが特定のプライバシー設定をバイパスできる可能性があります。
説明: 実行中の実行可能ファイルが削除されると、プロセスはスクリーンレコーディングの制限や特定のアクセシビリティ設定、つまりキーストロークインジェクション(Metasploitを使用)をバイパスできるようになります。
考えられる理由: macOSはプロセスの親実行可能ファイルの権限を見つけられず、そのためスクリーンレコーディングを防止しません。しかし、カメラとマイクが依然として適切に制限されているのは混乱を招きます。
詳細:
tccutil reset All を実行すると権限プロンプトが表示されます。カメラやマイクへのアクセスでも権限プロンプトが表示されます。これはmacOSの新規インストールで動作します。
src/POC.sh からPOCを実行すると、TCCプロンプトなしでスクリーンショットが生成され、ユーザーに表示されているすべてのウィンドウが含まれます。スクリーンショットを生成するには、スクリプトを時々複数回(最大3回)実行する必要があります。
このエクスプロイトは、MetasploitのWebデリバリーを試しているときに私が最初に発見しました。meterpreterシェルが開いた直後にドロップされた実行可能ファイルを削除すると、シェルが通常はTCCプロンプトの背後にロックされている機能を獲得できることを発見しました。この脆弱性により、攻撃者はキーストロークを注入することもできます。しかし、私はObjective-C開発者ではないため、独自のPOCを作成できていません。この効果はMetasploitを通じて依然として達成可能です。
src/POC.sh -- シェルスクリプト: screenshot をコピーし、実行し、実行中に削除します。
src/screenshot -- Mach-O実行可能ファイル: スクリーンショットを撮り、src/screenshot.png に保存します。src/screenshot.m からコンパイルされています。
src/screenshot.m -- 基本コードのクレジットは theevilbit にあります。私が行った唯一の変更は、スクリーンショットの前に3秒のスリープを追加して、スクリーンショットが撮られる前に実行可能ファイルを削除するのに十分な時間を確保したことです。