macOS Dangerous Entitlements & TCC perms
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
com.apple
で始まる権限は第三者には利用できず、Appleのみが付与できますので注意してください。
com.apple.rootless.install.heritable
権限 com.apple.rootless.install.heritable
は SIPをバイパスする ことを許可します。詳細は こちらを確認してください。
com.apple.rootless.install
権限 com.apple.rootless.install
は SIPをバイパスする ことを許可します。詳細は こちらを確認してください。
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トークンを提供します。
iMovie と Garageband はこの権限を持っていました。
この権限から 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
この権限は、アプリケーションがアクセスできる キーチェーン グループのリストです:
kTCCServiceSystemPolicyAllFiles
フルディスクアクセス 権限を付与します。これは、TCCの中で最も高い権限の1つです。
kTCCServiceAppleEvents
アプリが一般的にタスクを自動化するために他のアプリケーションにイベントを送信することを許可します。他のアプリを制御することで、これらの他のアプリに付与された権限を悪用することができます。
ユーザーにパスワードを要求させるようにすることができます:
また、任意のアクションを実行させることができます。
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権限は通常次の形式で見つかります:
プロセスにすべてのTCC権限を要求させる。
kTCCServicePostEvent
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)