コンテンツにスキップ

AD のアクセス制御と BloodHound の関係

Active Directory Domain Services(AD DS)のアクセス制御と、BloodHound に表示される関係を対応付けます。両者の用語が似ていても、同じ種類の権限を表しているとは限りません。

たとえば GenericAll、WriteDacl、ForceChangePassword は同じ一覧に並びますが、読み解くには次の三層を区別します。

  1. Windows がアクセスマスクとして定義する基本アクセス権。
  2. 属性、プロパティセット、検証付き書き込み、拡張権限として設定される権限。
  3. BloodHound が ACE や AD オブジェクトの状態を解析して付ける関係名。

参照した Microsoft 公式情報と BloodHound 公式情報は末尾の「公式参照」にまとめる。内容は 2026-07-13 時点の Microsoft Learn と SpecterOps BloodHound ドキュメントを前提にしている。

GenericAll は Active Directory object に設定される generic access right (汎用アクセス権) の一種であり、Active Directory に対して展開されると、一般に Full Control (フルコントロール) と呼ばれる強い権限になる。

ただし、BloodHound の画面に並ぶ名称をすべて「Windows が定義する権限名」として読むと混乱する。HTB で優先的に覚えるなら、まず次の対応を押さえる。

権限・BloodHound Edge意味代表的な対象
GenericAll対象へのほぼ完全な制御User、Group、Computer、OU、Domain、GPO、certificate template
GenericWrite対象の広範な非保護属性を書き換え可能User、Computer、Group、OU、GPO
WriteDaclDACL を書き換え、別の権限を追加できる多くの AD object
WriteOwnerobject の owner (所有者) を変更できる多くの AD object
Ownssource principal が現在その object の owner である多くの AD object
AllExtendedRights対象に適用可能なすべての extended right を実行できるUser、Group、Domain、certificate template など
ForceChangePassword現在の password を知らずに reset できるUser
AddMembergroup に任意の member を追加できるGroup
AddSelf自分自身を group に追加・削除できるGroup
WriteSPNservicePrincipalName を変更できるUser、Computer
AddKeyCredentialLinkmsDS-KeyCredentialLink を変更できるUser、Computer
WriteAccountRestrictionsAccount Restrictions property set の属性を書き換えられるUser、Computer
AllowedToActRBCD で source principal が対象 resource への委任を許可済みComputer
ReadLAPSPasswordLAPS が管理する local administrator password を取得できるComputer
ReadGMSAPasswordgMSA の managed password を取得できるgMSA
GetChanges + GetChangesAlldomain naming context から secret を含む replication data を取得できるDomain
DCSyncBloodHound が replication rights の組み合わせから生成する攻撃可能な関係Domain

最も重要なのは Edge 名だけではなく、次の順で読むことである。

誰が
↓
どの object に対して
↓
どの access mask / GUID / 継承範囲を持ち
↓
どの属性・操作を変更でき
↓
どの認証・委任・group membership・ACL へつながるか

各 AD object には security descriptor (セキュリティ記述子) があり、主に次の情報を持つ。

要素内容
Ownerobject の owner
DACLaccess を許可・拒否する ACE の一覧
SACL監査対象を定義する ACE の一覧
ACE trustee権限を許可・拒否される security principal
ACE access maskWRITE_DAC、WRITE_PROPERTY などの権限 bit
ObjectType属性、property set、extended right、child object class などを示す GUID
InheritedObjectTypeACE を継承できる child object class を示す GUID
ACE flags継承方向、継承のみ、object/container への適用範囲など

同じ WRITE_PROPERTY bit でも、ObjectType が servicePrincipalName の schema GUID なら SPN だけに適用され、GUID がない場合は全 property への書き込みとして扱われる。したがって、access mask だけを見て権限の強さを判断してはいけない。

DACL (Discretionary Access Control List) は、object に対して「誰が、どの操作を許可または拒否されるか」を定義する ACL である。 DACL は複数の ACE (Access Control Entry) から成り、各 ACE が principal と権限の対応を表す。

Security Descriptor
├─ Owner
├─ DACL
│ ├─ ACE: Judith に WriteOwner を許可
│ ├─ ACE: Management に GenericWrite を許可
│ └─ ACE: Domain Admins に GenericAll を許可
└─ SACL
└─ どの操作を監査するか
用語意味
DACLobject の access を許可・拒否する ACE 全体の一覧。
ACE1 件の許可または拒否の設定。principal、access mask、適用対象、継承条件などを持つ。
SIDACE の対象となる user、group、computer などの security principal を識別する ID。
Access maskGenericAll、WRITE_DAC (WriteDacl)、WRITE_OWNER (WriteOwner)、WRITE_PROPERTY (WriteProperty) などの権限 bit。

たとえば、Management group に対する WriteOwner の関係は、概念的には次の Allow ACE に相当する。

Allow judith.mader WriteOwner on Management

この ACE は「Judith が Management group の owner を変更できる」ことを意味するだけであり、Judith が Management group の member になることや、ただちにすべての操作が可能になることを意味しない。

owner になる
≠
group member になる
≠
object の全操作が可能になる

owner は原則として、その object の DACL を変更するための暗黙の WRITE_DAC を持つ。そのため、WriteOwner は次のような権限連鎖の起点になり得る。

WriteOwner を持つ
↓
自分を owner にする
↓
owner として DACL を変更する
↓
自分に GenericAll または member 属性への WriteProperty を許可する
↓
group の member 属性を変更する

group への任意の member 追加は member 属性への WRITE_PROPERTY が根拠であり、BloodHound では通常 AddMember Edge として表示される。ツールや資料によっては、同じ趣旨を WriteMembers と表記することがある。

ただし、owner の暗黙の WRITE_DAC には OWNER RIGHTS ACE や BlockOwnerImplicitRights などの例外がある。protected account/group では AdminSDHolder / SDProp による ACL の再適用もあり得るため、owner 変更後も実際に DACL を変更できるかを対象 object ごとに確認する。

項目役割
DACL誰にどの操作を許可・拒否するかを定義する。
SACLどの access を監査ログに記録するかを定義する。
DACL = Can you do it?
SACL = Should we log it?

DACL によって access が許可されても、SACL と audit policy (監査ポリシー) の設定次第では、その操作の詳細な監査記録が残らないことがある。

属性・プロパティセット・拡張権限

Section titled “属性・プロパティセット・拡張権限”

AD の object-specific access control (オブジェクト固有アクセス制御) には、主に次の種類がある。

種類Access maskGUID が表すもの例
属性単位の読み書きREAD_PROP / WRITE_PROPschema attributeservicePrincipalName、member
Property setREAD_PROP / WRITE_PROP複数属性をまとめた property setUser-Account-Restrictions
Validated writeSELFserver-side validation を伴う操作Self-Membership、Validated-SPN
Extended rightCONTROL_ACCESS特殊操作を表す control access rightReset Password、replication rights、Certificate Enrollment
Child object 操作CREATE_CHILD / DELETE_CHILDchild object classUser object の作成、Computer object の削除

Extended right は権限ごとに個別 bit を持つのではなく、CONTROL_ACCESS bit と ObjectType の rights GUID で識別される。ObjectType に GUID のない CONTROL_ACCESS ACE は、その object に適用可能なすべての extended right を意味し、BloodHound の AllExtendedRights の根拠になる。

BloodHound Edge は、必ずしも単一 ACE の表示名ではない。SharpHound が ACL、object type、property GUID、owner、属性値などを収集し、BloodHound が攻撃経路として使いやすい関係へ正規化または post-processing (後処理) した名称である。

代表例は次の通り。

BloodHound Edge主な根拠Windows 上の位置づけ
GenericAllGeneric All を許可する ACEGeneric access right
WriteSPNSPN 属性への WRITE_PROP または対応する validated write属性 / validated write
ForceChangePasswordReset Password rights GUID を許可する ACEExtended right
AddSelfSelf-Membership rights GUID を許可する ACEValidated write
Ownssecurity descriptor の Owner fieldACE ではなく object の状態
AllowedToActRBCD security descriptor に source SID が存在ACL への権限ではなく属性値から得る状態関係
DCSyncGetChanges と GetChangesAll の組み合わせ複数 Edge から生成する関係
ADCSESC4 などtemplate を変更できる権限と template/CA 条件複数の ACL・属性・構成から得る攻撃経路

このため、BloodHound の version や collection method によって Edge 名、対象 node、traversable (経路探索可能) かどうかが変わる場合がある。

Windows が定義する基本アクセス権

Section titled “Windows が定義する基本アクセス権”

Microsoft の ADS_RIGHTS_ENUM は、Active Directory object の access mask として次を定義している。

Windows 定数値一般的な表記内容
ADS_RIGHT_DELETE0x00010000Delete対象 object を削除
ADS_RIGHT_READ_CONTROL0x00020000ReadControlSACL を除く security descriptor を読み取り
ADS_RIGHT_WRITE_DAC0x00040000WriteDaclDACL を変更
ADS_RIGHT_WRITE_OWNER0x00080000WriteOwnerowner を変更
ADS_RIGHT_SYNCHRONIZE0x00100000Synchronize同期アクセス
ADS_RIGHT_ACCESS_SYSTEM_SECURITY0x01000000AccessSystemSecuritySACL を取得・設定
ADS_RIGHT_GENERIC_READ0x80000000GenericRead汎用読み取り
ADS_RIGHT_GENERIC_WRITE0x40000000GenericWrite汎用書き込み
ADS_RIGHT_GENERIC_EXECUTE0x20000000GenericExecute汎用実行
ADS_RIGHT_GENERIC_ALL0x10000000GenericAll汎用全権限
ADS_RIGHT_DS_CREATE_CHILD0x00000001CreateChildchild object を作成
ADS_RIGHT_DS_DELETE_CHILD0x00000002DeleteChildchild object を削除
ADS_RIGHT_ACTRL_DS_LIST0x00000004ListChildrenchild object を一覧表示
ADS_RIGHT_DS_SELF0x00000008Selfvalidated write を実行
ADS_RIGHT_DS_READ_PROP0x00000010ReadPropertyproperty を読み取り
ADS_RIGHT_DS_WRITE_PROP0x00000020WritePropertyproperty を書き込み
ADS_RIGHT_DS_DELETE_TREE0x00000040DeleteTreesubtree を削除
ADS_RIGHT_DS_LIST_OBJECT0x00000080ListObject特定 object を表示
ADS_RIGHT_DS_CONTROL_ACCESS0x00000100ExtendedRightextended right を実行

Generic access right は、対象 object type 用の GENERIC_MAPPING によって standard right と directory-specific right へ展開される。AD での概念的な包含関係は次のように読める。

GenericAll / DS_GENERIC_ALL
├─ Delete / ReadControl / WriteDacl / WriteOwner
├─ CreateChild / DeleteChild / DeleteTree
├─ ListChildren / ListObject
├─ Self (validated writes)
├─ ReadProperty / WriteProperty
└─ ControlAccess (extended rights)
GenericWrite / DS_GENERIC_WRITE
├─ ReadControl
├─ WriteProperty
└─ Self (validated writes)

GenericWrite は広範な属性変更を許すが、password reset のような extended right まで自動的に含むわけではない。GenericAll は DACL や owner の変更、extended right を含むため、BloodHound では Full Control に相当する関係として扱われる。

ACE に強い権限が見えても、実際の access check と操作結果は次の影響を受ける。

  • Explicit deny ACE (明示的な拒否 ACE) と ACE の canonical order。
  • User SID、group SID、SID history など access token に含まれる trustee。
  • ACE が直接設定されたか、parent container から継承されたか。
  • ACE の inheritance flags と InheritedObjectType。
  • ObjectType が指定する attribute、property set、extended right、child object class。
  • Object class、schema、system-only attribute、validated write の server-side constraint。
  • 対象 object で ACL inheritance (ACL 継承) が無効化されているか。
  • Protected account/group に対する AdminSDHolder と SDProp の ACL 再適用。
  • Owner の暗黙の READ_CONTROL / WRITE_DAC と、それを制限する OWNER RIGHTS SID や BlockOwnerImplicitRights などの例外。
  • 操作に別の user right / privilege、protocol、service configuration が必要か。
  • Replication delay により、変更先 DC と確認先 DC の状態が異なっていないか。

Protected Users group は Kerberos/NTLM や credential delegation の保護機能であり、一般の DACL access check を直接変更する仕組みではない。一方、AdminSDHolder / SDProp の対象となる protected account/group は ACL 継承が無効化され、ACL が定期的に template と一致するよう再設定される。

したがって、GenericAll Edge が表示されたからといって、どの object type に対しても、どの Windows version でも、あらゆる操作が必ず成功するとは限らない。

Edge意味・典型的な展開
GenericAll対象への Full Control。対象 type に応じて password reset、member 変更、attribute 変更、DACL 変更などへ展開する
GenericWrite書き込み可能な属性を利用する。通常は DACL 変更やすべての extended right までは含まない
WriteDacl自分または管理下 principal に GenericAll、属性書き込み、extended right などを追加する
WriteOwner自分または管理下 principal を owner にし、owner の暗黙の WRITE_DAC を経由して DACL 変更へつなぐ
Owns現在 owner であり、通常は暗黙の WRITE_DAC を利用できる。ただし owner rights の制限を確認する
AllExtendedRightsGUID で限定されない CONTROL_ACCESS に相当し、対象で定義された extended right を実行する

WriteDacl は対象の DACL を変更できるため、攻撃経路上では別の強い権限へ昇格できる。ただし、追加する ACE の object type、継承範囲、対象 object の ACL 保護状態が正しくなければ期待した権限にならない。

WriteOwner と Owns は同じではない。前者は owner を変更できる権限、後者は現在の owner field を表す BloodHound Edge である。また、owner は既定で READ_CONTROL と WRITE_DAC を暗黙に持つが、OWNER RIGHTS ACE や Windows の owner implicit rights 制限によって、この経路が制限される場合がある。

Edge主に操作できるもの代表的な影響
ForceChangePasswordReset Password extended right現在の password を知らずに reset
WriteSPNservicePrincipalNameTargeted Kerberoasting、SPN 構成変更
AddKeyCredentialLinkmsDS-KeyCredentialLinkKey Trust / Shadow Credentials による PKINIT 認証経路
WriteAccountRestrictionsAccount Restrictions property setuserAccountControl、accountExpires、RBCD 属性などの変更可能性
GenericWrite広範な非保護属性SPN、key credential、その他書き込み可能属性
GenericAllpassword、property、owner、DACL、extended rightUser object の Full Control
AllExtendedRightsUser に適用可能な extended rightReset Password など

ForceChangePassword は BloodHound が Microsoft の User-Force-Change-Password、表示名 Reset Password の extended right を攻撃可能な Edge として表現したものである。現在の password を知る必要はない。

「Change Password」と「Reset Password」は異なる。

操作・権限現在の password主な利用者
Change Password / User-Change-Password原則として必要Account 本人
Reset Password / User-Force-Change-Password不要Administrator、help desk、委任された principal

Set-ADAccountPassword でも、旧 password と新 password を指定する change と、-Reset を使う reset は別の操作として扱われる。

Edge内容Windows 上の主な根拠
AddMember任意の User、Group、Computer などを member に追加member attribute への WRITE_PROP
AddSelf自分自身を追加・削除Self-Membership validated write
GenericWritemember を含む書き込み可能属性を変更Generic Write の展開
GenericAllMember 変更、DACL/owner 変更を含む Full ControlGeneric All の展開
WriteDaclMember 変更権限などを自分に付与WRITE_DAC

AddMember は対象 security group に任意の principal を追加できる関係である。追加した principal は、新しい logon token や Kerberos ticket が発行された後などに、その group に与えられた権限を利用できる。変更直後に既存 session の token が自動更新されるとは限らない。

AddSelf は Microsoft の Self-Membership validated write に対応し、自分自身の追加・削除に限定される。

BloodHound の version や古い資料では AddMembers と複数形で表記される場合があるが、本書では現行 Edge 名の AddMember を使う。

Edge関係する属性・機能読み方
AddKeyCredentialLinkmsDS-KeyCredentialLinkComputer account の key credential を追加できる
WriteAccountRestrictionsUser-Account-Restrictions property setRBCD を含む account restriction 属性を変更できる
AllowedToActmsDS-AllowedToActOnBehalfOfOtherIdentitySource principal が対象 resource への RBCD を許可済み
ReadLAPSPasswordLegacy LAPS / Windows LAPS password data管理対象 local account の password を取得できる
ReadGMSAPasswordmsDS-ManagedPasswordgMSA password data を取得できる
GenericWriteSPN、key credential、account restriction など書き込み可能属性を対象別に確認する
GenericAllComputer object 全体RBCD、key credential、LAPS read などへ展開し得る

WriteAccountRestrictions は Microsoft の User-Account-Restrictions property set への書き込みから導かれる BloodHound Edge である。この property set は User と Computer に適用され、Windows Server 2012 の定義では msDS-AllowedToActOnBehalfOfOtherIdentity も member に含まれる。

特に Computer object の同属性を書き換えると、RBCD (Resource-Based Constrained Delegation) の設定につながる。一方、AllowedToAct は「書き換える権限」ではなく、RBCD security descriptor に source principal がすでに許可されている状態を示す。

LAPS と gMSA は、製品 version、attribute、暗号化設定、authorized decryptor、ACL によって実際の取得条件が異なる。Edge を見たら、Legacy LAPS の clear-text attribute、Windows LAPS の encrypted/clear-text attribute、gMSA の managed password のどれを読めるのかまで確認する。

OU または Domain object 上の権限は、その object 自体への権限と、descendant object (子孫オブジェクト) へ継承する権限を分けて読む。

OU に GenericAll (This object only)
-> OU 自体の DACL や property を変更できる
OU に GenericAll (Descendant User objects)
-> 継承が有効な配下 User に権限が及ぶ
OU に WriteGPLink
-> gPLink を通じて GPO 適用経路へつながり得る

Domain node で DCSync に関係する代表的な extended right は次の通り。

Extended rightRights GUIDBloodHound 表記例意味
DS-Replication-Get-Changes1131f6aa-9c07-11d1-f79f-00c04fc2dcd2GetChangesNaming Context から変更を replication する
DS-Replication-Get-Changes-All1131f6ad-9c07-11d1-f79f-00c04fc2dcd2GetChangesAllSecret domain data を含む replication を許可する
DS-Replication-Get-Changes-In-Filtered-Set89e95b76-444d-4c62-991a-0facbeda640cGetChangesInFilteredSetFiltered Attribute Set の replication に関係する

通常、BloodHound が攻撃可能な DCSync Edge を生成する中心的な組み合わせは次である。

GetChanges
+
GetChangesAll
=
DCSync

GetChanges 単独または GetChangesAll 単独は、BloodHound ではそれだけで DCSync 可能な経路として扱われない。GetChangesInFilteredSet は RODC Filtered Attribute Set や SyncLAPSPassword の評価にも関係し、通常の DCSync の中心となる 2 権限とは役割を分けて読む。

Domain object への GenericAll または対象に適用可能な AllExtendedRights は、GetChanges と GetChangesAll を含み得るため、BloodHound では DCSync へつながる。

AD CS (Active Directory Certificate Services) では、次の異なる対象を混同しないことが重要である。

Certificate Template object の ACL / property
Enterprise CA の AD registration object
CA service の administrative security
Template の発行状態と certificate issuance policy
Edge・権限対象レイヤー内容
EnrollCertificate template / Enterprise CACertificate enrollment を許可
AutoEnrollCertificate templateGroup Policy などによる自動 enrollment を許可
GenericAllAD 内の template/CA-related object対象 AD object を広範に変更
GenericWriteAD 内の template/CA-related objectTemplate attribute などを変更
WriteDaclAD objectTemplate/CA-related object の DACL を変更
WriteOwnerAD objectTemplate/CA-related object の owner を変更
WritePKINameFlagCertificate templatemsPKI-Certificate-Name-Flag を変更
WritePKIEnrollmentFlagCertificate templatemsPKI-Enrollment-Flag を変更
EnrollOnBehalfOfTemplate と enrollment agent 条件別 principal のために enrollment できる関係
ManageCACA serviceCA Administrator として CA 設定を管理
ManageCertificatesCA serviceCA Officer として request の承認・拒否・失効などを管理

Certificate template は AD object であり、ほかの AD object と同様に ACL を持つ。CA は template に対する Enroll permission を確認し、requesting principal にその権限がなければ template に基づく certificate を発行しない。実際の enrollment では、template が Enterprise CA に publish され、requester と CA に必要な read/enroll 条件があり、issuance requirement を満たす必要がある。

ManageCA と ManageCertificates は、単に pKIEnrollmentService object に GenericAll があることと同じではない。前者は CA service 上の role/permission であり、template object の AD ACL とは別に評価する。

BloodHound は、単一 ACE をそのまま ESC4 と表示するのではなく、template の owner、DACL、generic right、属性単位の write right、template/CA configuration などを解析し、ADCSESC4 などの攻撃経路へ集約する。WritePKINameFlag 単独のように、それだけでは privilege escalation が成立せず、ほかの template flag、EKU、issuance requirement、publish/enroll 条件との組み合わせが必要な Edge もある。

「すべての権限一覧」が一意ではない理由

Section titled “「すべての権限一覧」が一意ではない理由”

Active Directory には schema や製品追加によって増える attribute、property set、validated write、extended right がある。

Microsoft の標準 Extended Rights 一覧だけでも、たとえば次が含まれる。

  • Reset Password。
  • Change Password。
  • Apply Group Policy。
  • Certificate Enrollment。
  • Replicating Directory Changes。
  • Replicating Directory Changes All。
  • Replicating Directory Changes In Filtered Set。
  • Allowed to Authenticate。
  • Send As。
  • Receive As。
  • Create Inbound Forest Trust。
  • Domain Administer Server。
  • Reanimate Tombstones。

管理 tool が表示名や GUID を解決するための controlAccessRight object は、Configuration naming context の次の container に登録される。

CN=Extended-Rights,CN=Configuration,<ForestRootDN>

Extended right の access check 自体は CONTROL_ACCESS bit と rights GUID によって行われる。Microsoft の protocol specification によると、controlAccessRight object は administrative tool が権限を識別しやすくする表現であり、access check のために object の存在そのものが必須というわけではない。

Exchange、LAPS、AD CS、そのほか schema extension を伴う製品を導入すると、環境固有の attribute や control access right も増える。したがって、完全な一覧は対象 forest の schema と Extended-Rights container から列挙するのが確実である。

ドメイン内の拡張権限を列挙する

Section titled “ドメイン内の拡張権限を列挙する”

安全な検証環境または管理目的では、次のように確認できる。

ターミナルウィンドウ
$configurationNamingContext = (
Get-ADRootDSE
).configurationNamingContext
Get-ADObject `
-SearchBase "CN=Extended-Rights,$configurationNamingContext" `
-LDAPFilter "(objectClass=controlAccessRight)" `
-Properties displayName, rightsGuid, validAccesses |
Sort-Object displayName |
Select-Object displayName, rightsGuid, validAccesses

特定の権限を探す場合は次のようにする。

ターミナルウィンドウ
Get-ADObject `
-SearchBase "CN=Extended-Rights,$configurationNamingContext" `
-LDAPFilter "(objectClass=controlAccessRight)" `
-Properties displayName, rightsGuid |
Where-Object {
$_.displayName -match "Password|Replication|Certificate|LAPS"
} |
Select-Object displayName, rightsGuid

Property set と validated write も controlAccessRight class で表現される。validAccesses を確認すると、CONTROL_ACCESS、WRITE_PROP / READ_PROP、SELF のどの種類として使われるかを区別できる。

Active Directory provider を使える管理端末では、object の ACE を確認できる。

ターミナルウィンドウ
Import-Module ActiveDirectory
$targetDn = "CN=Example User,OU=Users,DC=example,DC=com"
(Get-Acl -Path "AD:\$targetDn").Access |
Select-Object IdentityReference,
ActiveDirectoryRights,
AccessControlType,
ObjectType,
InheritedObjectType,
InheritanceType,
IsInherited

GUID を表示名へ解決しない状態では、属性限定 ACE と extended right の意味を見落としやすい。調査時は schema naming context と Extended-Rights container から GUID map を作るか、BloodHound、ADSI Edit、dsacls など複数の表示を突き合わせる。

CPTS・HTB の観点では、まず次の順が実用的である。

GenericAll
GenericWrite
WriteDacl
WriteOwner
Owns
AllExtendedRights
ForceChangePassword
AddMember / AddSelf
WriteSPN
AddKeyCredentialLink
WriteAccountRestrictions / AllowedToAct
GetChanges + GetChangesAll -> DCSync
Enroll / AutoEnroll / ManageCA / ManageCertificates

名称を覚えた後は、object type ごとの展開へ進む。

対象最初に確認する権限・属性
UserPassword reset、SPN、key credential、account restriction、DACL
Groupmember、Self-Membership、DACL
ComputerRBCD、SPN、key credential、LAPS、DACL
OUACE inheritance、descendant object type、gPLink
DomainReplication extended rights、inherited ACE、AdminSDHolder
GPOAD object と SYSVOL の両方の write access
Certificate templateEnroll、template flag、EKU、issuance requirement、publish 状態
Enterprise CAEnroll、ManageCA、ManageCertificates、CA flags

防御側では、GenericAll だけを検索しても強い委任を十分に検出できない。少なくとも次を含めて確認する。

  • WriteDacl と WriteOwner。
  • Owner field と OWNER RIGHTS ACE。
  • GUID で限定された WriteProperty、Self、ControlAccess。
  • OU / Domain から descendant object へ継承する ACE。
  • ACL inheritance が無効な object と AdminSDHolder / SDProp 対象。
  • member、servicePrincipalName、msDS-KeyCredentialLink、RBCD 属性の変更権限。
  • LAPS / gMSA secret を読める principal。
  • Domain root に設定された replication extended rights。
  • Certificate template と CA service の別々の ACL / role。
  • Direct ACE だけでなく、nested group membership と SID history を含む effective trustee。

特に属性単位の ACE は GUI 上では目立たなくても、BloodHound では WriteSPN、AddKeyCredentialLink、WriteAccountRestrictions などの強い攻撃経路として現れる。

監査では、Edge の有無だけでなく次を記録する。

Source principal SID
Target object GUID / DN / class
Allow または Deny
Access mask
ObjectType GUID
InheritedObjectType GUID
Inheritance flags
Direct または inherited
Owner
変更が処理された DC