macOS Authorizations DB & Authd
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)
/var/db/auth.db
にあるデータベースは、機密操作を実行するための権限を保存するために使用されるデータベースです。これらの操作は完全にユーザースペースで実行され、通常はXPCサービスによって使用され、特定のアクションを実行するために呼び出し元クライアントが権限を持っているかどうかをこのデータベースをチェックして確認します。
最初にこのデータベースは/System/Library/Security/authorization.plist
の内容から作成されます。その後、一部のサービスがこのデータベースに他の権限を追加または変更することがあります。
ルールはデータベース内のrules
テーブルに保存され、以下の列を含みます:
id: 各ルールの一意の識別子で、自動的にインクリメントされ、主キーとして機能します。
name: 認証システム内でルールを識別し参照するために使用される一意の名前。
type: ルールのタイプを指定し、認証ロジックを定義するために1または2の値に制限されます。
class: ルールを特定のクラスに分類し、正の整数であることを保証します。
"allow"は許可、"deny"は拒否、"user"はグループプロパティがアクセスを許可するメンバーシップを示す場合、"rule"は満たすべきルールを配列で示し、"evaluate-mechanisms"はmechanisms
配列に続き、組み込みまたは/System/Library/CoreServices/SecurityAgentPlugins/
または/Library/Security//SecurityAgentPlugins内のバンドルの名前です。
group: グループベースの認証のためにルールに関連付けられたユーザーグループを示します。
kofn: "k-of-n"パラメータを表し、満たすべきサブルールの数を決定します。
timeout: ルールによって付与された認証が期限切れになるまでの秒数を定義します。
flags: ルールの動作と特性を変更するさまざまなフラグを含みます。
tries: セキュリティを強化するために許可される認証試行の回数を制限します。
version: ルールのバージョンを追跡し、バージョン管理と更新を行います。
created: ルールが作成されたタイムスタンプを記録し、監査目的に使用します。
modified: ルールに対する最後の変更のタイムスタンプを保存します。
hash: ルールのハッシュ値を保持し、その整合性を確保し、改ざんを検出します。
identifier: ルールへの外部参照のためのUUIDなどの一意の文字列識別子を提供します。
requirement: ルールの特定の認証要件とメカニズムを定義するシリアライズされたデータを含みます。
comment: ドキュメントと明確さのためにルールに関する人間が読める説明またはコメントを提供します。
さらに、https://www.dssw.co.uk/reference/authorization-rights/authenticate-admin-nonshared/ では、authenticate-admin-nonshared
の意味を見ることができます:
これは、クライアントが機密アクションを実行するための承認リクエストを受け取るデーモンです。XPCServices/
フォルダー内に定義されたXPCサービスとして機能し、ログは/var/log/authd.log
に書き込まれます。
さらに、セキュリティツールを使用すると、多くのSecurity.framework
APIをテストすることが可能です。例えば、AuthorizationExecuteWithPrivileges
を実行するには、次のようにします: security execute-with-privileges /bin/ls
これにより、/usr/libexec/security_authtrampoline /bin/ls
がrootとしてフォークされ、lsをrootとして実行するための権限を求めるプロンプトが表示されます:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)