hacktricks/windows-hardening/windows-local-privilege-escalation/acls-dacls-sacls-aces.md

140 lines
12 KiB
Markdown
Raw Normal View History

# ACLs - DACLs/SACLs/ACEs
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し**自動化**します。\
今すぐアクセスを取得:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary><strong>**htARTE (HackTricks AWS Red Team Expert)**を使用して、ゼロからヒーローまでAWSハッキングを学びましょう</strong></summary>
2022-04-28 16:01:33 +00:00
HackTricksをサポートする他の方法:
2022-04-28 16:01:33 +00:00
* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksグッズ**](https://peass.creator-spring.com)を入手
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**する
* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、**ハッキングトリックを共有**します。
2022-04-28 16:01:33 +00:00
</details>
## **アクセス制御リスト (ACL)**
アクセス制御リスト (ACL) は、オブジェクトとそのプロパティの保護を指示するアクセス制御エントリ (ACE) の順序付きセットで構成されます。基本的に、ACL は、どのセキュリティ主体 (ユーザーまたはグループ) が特定のオブジェクトで許可または拒否されるアクションを定義します。
ACL には次の2種類があります:
- **自由アクセス制御リスト (DACL):** オブジェクトへのアクセス権を持つユーザーとグループを指定します。
- **システムアクセス制御リスト (SACL):** オブジェクトへのアクセス試行の監査を管理します。
ファイルへのアクセスプロセスは、オブジェクトのセキュリティ記述子をユーザーのアクセストークンと照合し、ACE に基づいてアクセスが許可されるかどうか、およびそのアクセスの範囲を決定することによって行われます。
### **主要コンポーネント**
- **DACL:** オブジェクトに対するユーザーとグループへのアクセス許可または拒否を定義する ACE を含みます。基本的に、アクセス権を指示する主要な ACL です。
2022-10-05 20:40:19 +00:00
- **SACL:** オブジェクトへのアクセスの監査に使用され、ACE はセキュリティイベントログに記録されるべきアクセスの種類を定義します。これは、未承認のアクセス試行を検出したり、アクセスの問題をトラブルシューティングするために非常に役立ちます。
2022-10-05 20:40:19 +00:00
### **ACL とのシステムの相互作用**
2022-10-05 20:40:19 +00:00
各ユーザーセッションは、そのセッションに関連するセキュリティ情報 (ユーザー、グループの識別、特権など) を含むアクセストークンに関連付けられます。このトークンには、セッションを一意に識別するログオン SID も含まれます。
2022-10-05 20:40:19 +00:00
ローカルセキュリティ機関 (LSASS) は、アクセスを試みるセキュリティ主体に一致する DACL の ACE を調べることによってオブジェクトへのアクセス要求を処理します。関連する ACE が見つからない場合、アクセスは直ちに許可されます。それ以外の場合、LSASS は、アクセスの資格を決定するために、アクセストークン内のセキュリティ主体の SID と ACE を比較します。
2022-10-05 20:40:19 +00:00
### **要約されたプロセス**
- **ACL:** DACL によってアクセス権を定義し、SACL によって監査ルールを定義します。
- **アクセストークン:** セッションのユーザー、グループ、特権情報を含む。
- **アクセス決定:** DACL の ACE をアクセストークンと比較してアクセスの資格を決定します。監査のために SACL が使用されます。
### ACEs
**アクセス制御エントリ (ACE)** には、**3つの主要なタイプ**があります:
- **アクセス拒否 ACE**: この ACE は、指定されたユーザーやグループに対してオブジェクトへのアクセスを明示的に拒否します (DACL 内)。
- **アクセス許可 ACE**: この ACE は、指定されたユーザーやグループに対してオブジェクトへのアクセスを明示的に許可します (DACL 内)。
- **システム監査 ACE**: システムアクセス制御リスト (SACL) 内に配置され、この ACE はユーザーやグループによるオブジェクトへのアクセス試行時に監査ログを生成します。アクセスが許可されたか拒否されたか、およびアクセスの性質を文書化します。
各 ACE には、次の**4つの重要なコンポーネント**があります:
1. ユーザーまたはグループの**セキュリティ識別子 (SID)** (グラフィカル表現では主体名)。
2. ACE タイプ (アクセス拒否、許可、システム監査を識別するフラグ)。
3. 子オブジェクトが親から ACE を継承できるかを決定する**継承フラグ**。
4. オブジェクトの許可された権利を指定する**[アクセスマスク](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/7a53f60e-e730-4dfe-bbe9-b21b62eb790b?redirectedfrom=MSDN)** を示す 32 ビット値。
アクセス決定は、要求された権利がアクセストークン内の委任者に明示的に拒否される**アクセス拒否 ACE**、アクセストークン内の委任者に明示的にすべての要求された権利が付与される**アクセス許可 ACE**、すべての ACE を確認した後、要求された権利が**明示的に許可されていない**場合は、アクセスが暗黙的に**拒否**されるまで、順次各 ACE を調べることによって行われます。
2022-08-31 22:35:39 +00:00
### ACE の順序
2022-08-31 22:35:39 +00:00
**ACE** (誰がアクセスできるか、できないかを示すルール) がリストで配置される方法は非常に重要です。これは、システムがこれらのルールに基づいてアクセスを許可または拒否した後、残りを見なくなるためです。
これらの ACE を整理する最良の方法があり、それは**"正準順序"**と呼ばれています。この方法は、すべてがスムーズにかつ公平に機能するようにするのに役立ちます。以下は、**Windows 2000** および **Windows Server 2003** のシステムに適用される方法です:
- まず、**このアイテムに特に作成されたすべてのルール**を、親フォルダーなどの他の場所から来たものよりも前に配置します。
- これらの特定のルールの中で、**"no" (deny)** と書かれたものを**"yes" (allow)** と書かれたものの前に配置します。
- 他の場所から来たルールについては、最も**近いソース**から始め、そこから戻ります。再び、**"no"** を**"yes"** の前に配置します。
この設定には2つの大きな利点があります:
* 特定の**"no"** がある場合、他の**"yes"** ルールがあっても、それが尊重されることを確認します。
* ファイルまたはフォルダーの所有者が、親フォルダーやさらに後ろからのルールが適用される前に、誰がアクセスできるかを最終的に決定できるようにします。
この方法により、ファイルまたはフォルダーの所有者は、アクセスを許可する正確な人物を確実に指定し、正しい人物がアクセスできるようにし、誤った人物がアクセスできないようにします。
![](https://www.ntfs.com/images/screenshots/ACEs.gif)
したがって、この**"正準順序"**は、アクセスルールが明確でうまく機能し、特定のルールを最初に配置し、すべてをスマートに整理することに関連しています。
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し**自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
### GUI の例
**[ここからの例](https://secureidentity.se/acl-dacl-sacl-and-the-ace/)**
これは、ACL、DACL、およびACE を示すフォルダーのクラシックなセキュリティタブです:
![http://secureidentity.se/wp-content/uploads/2014/04/classicsectab.jpg](../../.gitbook/assets/classicsectab.jpg)
**詳細ボタン**をクリックすると、継承などの追加オプションが表示されます:
![http://secureidentity.se/wp-content/uploads/2014/04/aceinheritance.jpg](../../.gitbook/assets/aceinheritance.jpg)
セキュリティプリンシパルを追加または編集する場合:
![http://secureidentity.se/wp-content/uploads/2014/04/editseprincipalpointers1.jpg](../../.gitbook/assets/editseprincipalpointers1.jpg)
最後に、監査タブのSACLがあります:
![http://secureidentity.se/wp-content/uploads/2014/04/audit-tab.jpg](../../.gitbook/assets/audit-tab.jpg)
### 簡略化された方法でアクセス制御を説明する
リソースへのアクセスを管理する際、フォルダーなどのリストとルールであるアクセス制御リスト (ACL) とアクセス制御エントリ (ACE) を使用します。これらは特定のデータにアクセスできるかどうかを定義します。
#### 特定のグループへのアクセスを拒否する
Cost という名前のフォルダーがあると想像してください。マーケティングチームを除いて誰もがアクセスできるようにしたい場合。正しいルールを設定することで、マーケティングチームがアクセスできないように確実にします。これは、マーケティングチームにアクセスを拒否するルールを、他のすべての人にアクセスを許可するルールの前に配置することで行います。
#### 拒否されたグループの特定メンバーへのアクセスを許可する
たとえば、マーケティングチームが一般的にアクセス権を持つべきでない場合でも、マーケティングディレクターである Bob が Cost フォルダーにアクセスする必要がある場合。Bob にアクセス権を付与する特定のルール (ACE) を追加し、マーケティングチームにアクセスを拒否するルールの前に配置します。これにより、一般的な制限があるにもかかわらず、Bob がアクセスできるようになります。
2022-04-28 16:01:33 +00:00
#### アクセス制御エントリの説明
2022-08-31 22:35:39 +00:00
ACE は ACL 内の個々のルールです。ユーザーやグループを識別し、許可または拒否されるアクセスを指定し、これらのルールがサブアイテムにどのように適用されるか (継承) を決定します。主な ACE の2つのタイプがあります:
2022-04-28 16:01:33 +00:00
- **一般的な ACE**: これらは広く適用され、すべてのオブジェクトに影響を与えるか、コンテナ (フォルダなど) と非コンテナ (ファイルなど