14 KiB
macOS 危険な権限とTCCの許可
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはテレグラムグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。
{% hint style="warning" %}
com.apple
で始まる権限は、サードパーティには利用できません。Appleのみがそれらを付与できます。
{% endhint %}
High
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
デバッグツール権限を持つアプリは、Get Task Allow
権限が true
に設定された署名されていないサードパーティアプリに対して task_for_pid()
を呼び出すことで有効なタスクポートを取得できます。ただし、デバッグツール権限を持っていても、デバッガは 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
このエンタイトルメントは、アプリケーションがアクセスできるキーチェーングループのリストです:
<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
このアプリは、タスクの自動化に一般的に使用される他のアプリにイベントを送信することができます。他のアプリを制御することで、これらの他のアプリに付与された権限を悪用することができます。
例えば、ユーザーにパスワードを求めるように他のアプリに指示することができます:
{% code overflow="wrap" %}
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"'
{% endcode %}
または、それらに任意のアクションを実行させることができます。
kTCCServiceEndpointSecurityClient
他の権限の中には、ユーザーのTCCデータベースを書き込むことができるものもあります。
kTCCServiceSystemPolicySysAdminFiles
ユーザーがホームフォルダのパスを変更するために**NFSHomeDirectory
属性を変更することができ、それによってTCCをバイパス**することができます。
kTCCServiceSystemPolicyAppBundles
デフォルトでは許可されていないアプリ内のファイル(app.app内のアプリ内バンドル内のファイル)を変更することができます。
![](/Mirrors/hacktricks/media/commit/be6d6fbe9c9e534562561bfbe52b80b51c4e8b1d/.gitbook/assets/image%20%282%29%20%281%29.png)
このアクセス権を持っているユーザーは、システム設定 > プライバシーとセキュリティ > _アプリの管理_で確認することができます。
中程度
com.apple.security.cs.allow-jit
この権限を持つと、mmap()
システム関数にMAP_JIT
フラグを渡すことで、書き込みと実行が可能なメモリを作成することができます。詳細についてはこちらを参照してください。
com.apple.security.cs.allow-unsigned-executable-memory
この権限を持つと、Cコードをオーバーライドまたはパッチすることができ、長期間非推奨とされている**NSCreateObjectFileImageFromMemory
**(基本的には安全ではない)を使用することができます。また、DVDPlaybackフレームワークも使用できます。詳細についてはこちらを参照してください。
{% hint style="danger" %} この権限を含めると、アプリはメモリの安全でないコード言語における一般的な脆弱性にさらされる可能性があります。この例外が必要かどうかを慎重に考慮してください。 {% endhint %}
com.apple.security.cs.disable-executable-page-protection
この権限を持つと、自身の実行可能ファイルのディスク上のセクションを強制的に変更して終了することができます。詳細についてはこちらを参照してください。
{% hint style="danger" %} Disable Executable Memory Protection Entitlementは、アプリの基本的なセキュリティ保護を削除する極端な権限であり、攻撃者が検出されずにアプリの実行可能コードを書き換えることが可能になります。可能な限り狭い範囲の権限を使用してください。 {% endhint %}
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権限を要求することを許可します。
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm.
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。