macOS Dangerous Entitlements & TCC perms

Support HackTricks

com.apple で始まる権限は第三者には利用できず、Appleのみが付与できますので注意してください。

High

com.apple.rootless.install.heritable

権限 com.apple.rootless.install.heritableSIPをバイパスする ことを許可します。詳細は こちらを確認してください

com.apple.rootless.install

権限 com.apple.rootless.installSIPをバイパスする ことを許可します。詳細は こちらを確認してください

com.apple.system-task-ports (以前は task_for_pid-allow と呼ばれていました)

この権限は、カーネルを除く 任意の プロセスの タスクポートを取得する ことを許可します。詳細は こちらを確認してください

com.apple.security.get-task-allow

この権限は、com.apple.security.cs.debugger 権限を持つ他のプロセスが、この権限を持つバイナリによって実行されるプロセスのタスクポートを取得し、コードを注入する ことを許可します。詳細は こちらを確認してください

com.apple.security.cs.debugger

デバッグツール権限を持つアプリは、task_for_pid() を呼び出して、Get Task Allow 権限が true に設定された署名されていないおよびサードパーティのアプリの有効なタスクポートを取得できます。しかし、デバッグツール権限があっても、デバッガは Get Task Allow 権限を持たない プロセスのタスクポートを取得できず、それらはシステム整合性保護によって保護されています。詳細は こちらを確認してください

com.apple.security.cs.disable-library-validation

この権限は、Appleによって署名されていないか、メイン実行可能ファイルと同じチームIDで署名されていないフレームワーク、プラグイン、またはライブラリを読み込む ことを許可します。これにより、攻撃者は任意のライブラリの読み込みを悪用してコードを注入することができます。詳細は こちらを確認してください

com.apple.private.security.clear-library-validation

この権限は com.apple.security.cs.disable-library-validation と非常に似ていますが、ライブラリ検証を直接無効にするのではなく、プロセスが csops システムコールを呼び出して無効にすることを許可します。 詳細は こちらを確認してください

com.apple.security.cs.allow-dyld-environment-variables

この権限は、ライブラリやコードを注入するために使用される可能性のあるDYLD環境変数を使用する ことを許可します。詳細は こちらを確認してください

com.apple.private.tcc.manager または com.apple.rootless.storage.TCC

このブログによると および このブログによると、これらの権限は TCC データベースを 変更する ことを許可します。

system.install.apple-software および system.install.apple-software.standar-user

これらの権限は、ユーザーに許可を求めることなく ソフトウェアをインストールする ことを許可します。これは 特権昇格 に役立つ可能性があります。

com.apple.private.security.kext-management

カーネルにカーネル拡張を読み込むように要求するために必要な権限です。

com.apple.private.icloud-account-access

権限 com.apple.private.icloud-account-access により、com.apple.iCloudHelper XPCサービスと通信することが可能になり、iCloudトークンを提供します

iMovieGarageband はこの権限を持っていました。

この権限から iCloudトークンを取得する ためのエクスプロイトに関する詳細は、トークを確認してください: #OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula

com.apple.private.tcc.manager.check-by-audit-token

TODO: これが何を許可するのかはわかりません。

com.apple.private.apfs.revert-to-snapshot

TODO: このレポート では、再起動後にSSV保護されたコンテンツを更新するために使用できる可能性があると述べられています。方法がわかる方はPRを送ってください!

com.apple.private.apfs.create-sealed-snapshot

TODO: このレポート では、再起動後にSSV保護されたコンテンツを更新するために使用できる可能性があると述べられています。方法がわかる方はPRを送ってください!

keychain-access-groups

この権限は、アプリケーションがアクセスできる キーチェーン グループのリストです:

<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>

kTCCServiceSystemPolicyAllFiles

フルディスクアクセス 権限を付与します。これは、TCCの中で最も高い権限の1つです。

kTCCServiceAppleEvents

アプリが一般的にタスクを自動化するために他のアプリケーションにイベントを送信することを許可します。他のアプリを制御することで、これらの他のアプリに付与された権限を悪用することができます。

ユーザーにパスワードを要求させるようにすることができます:

osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'

また、任意のアクションを実行させることができます。

kTCCServiceEndpointSecurityClient

ユーザーのTCCデータベースを書き込むことを許可します。

kTCCServiceSystemPolicySysAdminFiles

ユーザーの**NFSHomeDirectory属性を変更**することを許可し、これによりホームフォルダのパスを変更し、TCCをバイパスすることができます。

kTCCServiceSystemPolicyAppBundles

アプリバンドル内のファイルを変更することを許可します(app.app内)、これはデフォルトでは禁止されています

このアクセス権を持つユーザーを確認するには、システム設定 > プライバシーとセキュリティ > _アプリ管理_を確認してください。

kTCCServiceAccessibility

プロセスはmacOSのアクセシビリティ機能を悪用できるようになります。つまり、例えばキー入力を押すことができるようになります。したがって、Finderのようなアプリを制御するためのアクセスを要求し、この権限でダイアログを承認することができます。

中程度

com.apple.security.cs.allow-jit

この権限は、mmap()システム関数にMAP_JITフラグを渡すことで、書き込み可能かつ実行可能なメモリを作成することを許可します。詳細についてはこちらを確認してください

com.apple.security.cs.allow-unsigned-executable-memory

この権限は、Cコードをオーバーライドまたはパッチすることを許可し、長い間非推奨の**NSCreateObjectFileImageFromMemory**(根本的に安全ではありません)を使用するか、DVDPlaybackフレームワークを使用することを許可します。詳細についてはこちらを確認してください

この権限を含めると、アプリがメモリ安全でないコード言語の一般的な脆弱性にさらされます。アプリがこの例外を必要とするかどうかを慎重に検討してください。

com.apple.security.cs.disable-executable-page-protection

この権限は、ディスク上の自分の実行可能ファイルのセクションを変更して強制終了することを許可します。詳細についてはこちらを確認してください

実行可能メモリ保護を無効にする権限は、アプリから基本的なセキュリティ保護を取り除く極端な権限であり、攻撃者が検出されることなくアプリの実行可能コードを書き換えることを可能にします。可能であれば、より狭い権限を優先してください。

com.apple.security.cs.allow-relative-library-loads

TODO

com.apple.private.nullfs_allow

この権限は、nullfsファイルシステムをマウントすることを許可します(デフォルトでは禁止されています)。ツール: mount_nullfs

kTCCServiceAll

このブログ投稿によると、このTCC権限は通常次の形式で見つかります:

[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll

プロセスにすべてのTCC権限を要求させる

kTCCServicePostEvent

HackTricksをサポートする

Last updated