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)