hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md

7.1 KiB
Raw Blame History

macOS 危険な権限

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

{% hint style="warning" %} 注意:**com.apple**で始まる権限は、サードパーティには利用できません。Appleのみがそれらを付与できます。 {% endhint %}

High

com.apple.security.get-task-allow

この権限により、この権限を持つバイナリで実行されるプロセスのタスクポートを取得し、それにコードをインジェクトすることができます。詳細については、こちらを参照してください

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

この権限により、カーネルを除く任意のプロセスのタスクポートを取得することができます。詳細については、こちらを参照してください

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.security.cs.allow-dyld-environment-variables

この権限により、ライブラリやコードをインジェクトするために使用される可能性のあるDYLD環境変数を使用することができます。詳細については、こちらを参照してください

Medium

com.apple.security.cs.allow-jit

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

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

この権限により、Cコードをオーバーライドまたはパッチすることができます。また、基本的に安全ではない**NSCreateObjectFileImageFromMemory**を使用することもできます。詳細については、こちらを参照してください

{% hint style="danger" %} この権限を含めると、アプリはメモリの安全でないコード言語による一般的な脆弱性にさらされることになります。この例外が必要かどうかを慎重に考慮してください。 {% endhint %}

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

この権限により、自身の実行可能ファイルのセクションをディスク上で変更して強制的に終了することができます。詳細については、こちらを参照してください

{% hint style="danger" %} Disable Executable Memory Protection権限は、アプリの基本的なセキュリティ保護を削除する極端な権限であり、アプリの実行可能コードを検出せずに攻撃者が書き換えることが可能になります。可能な限り狭い権限を選択してください。 {% endhint %}

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

TODO