AD-DACL
이 페이지에서는 액티브 디렉토리내의 다양한 접근제어(Access Control)와 관련된 개념들을 아주 간단하게 알아본 뒤, 각 접근통제 권한을 어떻게 악용할 수 있는지에 대해서 알아본다. 이 프로젝트는 오퍼레이터들을 위한 플레이북이지 기본 보안 개념서가 아니기에, 필요한 개념에 관련된 설명은 레퍼런스 섹션을 참고한다.
ACE (Access Control Entries, 액세스 제어 항목): ACE는 특정한 Security Principal (유저, 그룹, 컴퓨터, 등)의 접근 권한을 부여, 또는 거부하는 특정한 권한이다. ACE는 접근 권한이 부여되는 대상, 권한을 허용/거부 받는 주체를 식별할 수 있는 보안 식별자 (SID), 그리고 액세스 마스크로 이뤄져있다.
ACL (Access Control List, 액세스 제어 리스트): ACL은 ACE의 집합이다. 개별 ACE를 적용하기엔 ACE 갯수가 너무 많아 ACL이라는 집합을 만든 뒤, 이를 주체와 대상에게 부여하는 경우가 많다.
DACL (Discretionary Access Control Lists, 임의적 사용자 기반 액세스 제어 리스트): ACL의 종류 중 하나. 객체 (Object)의 접근을 제어하는데 사용되는 윈도우 액티브 디렉토리 ACL 의 종류다. 특정 객체에 대해 허용되거나 거부되는 보안 주체와, 그 접근 유형을 갖고 있는 ACL이다.
간단하게 정리하자면 윈도우 액티브 디렉토리에서 액세스/접근 제어를 위해서는 DACL 이 사용되며, 각각의 항목은 ACE로 이뤄져있다.
모의해커를 위한 DACL, ACE
내부망 모의해킹 진행시 액티브 디렉토리내의 잘못 설정된 DACL 및 ACE 들이 있다면, 공격자들은 이 접근 제한 항목/리스트 들을 이용해 다양한 공격을 진행할 수 있게 된다.
DACL/ACE를 악용할 때 신경써야하는 것들은 다음과 같다.
DACL/ACE를 가지고 있는 주체가 무엇인가
DACL/ACE가 적용되는 대상의 종류 - 유저, 컴퓨터, 그룹, OU
DACL/ACE 악용을 할 때의 작전 보안 및 주의할 점
주의점
이 페이지에서는 블러드하운드 Edge 와 액티브 디렉토리의 권한에 대해서 알아본다. 예를들어 AddAllowedToAct
는 공식 액티브 디렉토리 권한이 아니라, 블러드하운드에서 임의로 만든 Edge 이름이다. 그러나 GenericAll 은 공식 액티브 디렉토리 권한임과 동시에 블러드하운드의 Edge 이름이기도 하다. 이처럼 둘이 섞여있어 헷갈릴 수 있으니, 설명란에다가 표시 해놨다.
DACL Summary
레퍼런스: https://www.thehacker.recipes/ad/movement/dacl
GenericAll
Access Right
Combination of all other rights
- User: ShadowCreds, TargetedKerberoast, ForceChangePassword - Machine: RBCD, ShadowCreds, LAPS - Group: AddMember - GPO: Evil GPO (Dangerous) - Domain: DCSync - OU/Container: DaclEdit + FullControl + ShadowCreds
GenericWrite
Access Right
Combination of write permissions
- User: ShadowCreds, TargetedKerberoast - Machine: RBCD, ShadowCreds - Group: AddMembers - GPO: Evil GPO (Dangerous)
AllExtendedRight
Access Right
Extended Rights like Create/Delete Child, Read/Write Property, Control Access, Write Owner, etc.
- User: ForceChangePassword - Machine: LAPS - Group: AddMember - Domain: DCSync, LAPS
WriteDACL
Access Right
Edit object's DACL
- User: FullControl + ShadowCreds,TargetedKerberoast,ForceChangePassword - Machine: FullControl + ShadowCreds, RBCD - Group: WriteMembers + AddMember - Domain: DCSync + DCSync - GPO: Pass (Dangerous)
WriteOwner
Access Right
Change the owner of the object + WriteDACL using ownership
- User: OwnerEdit + WriteDACL + FullControl + ShadowCreds, TargetedKerberoast - Group: OwnerEdit + WriteDACL + WriteMember + AddMember - Machine: OwnerEdit + WriteDACL + FullControl + RBCD, ShadowCreds, LAPS - Domain: OwnerEdit + WriteDACL + FullControl (dangerous)
AddAllowedToAct
BloodHound Edge
Modify msDS-AllowedToActOnBehalfOfOtherIdentity
- Machine: RBCD
AddKeyCredentialLink
BloodHound Edge
Modify msDS-KeyCredentialLink
- User: ShadowCreds - Machine: ShadowCreds
WriteAccountRestrictions
BloodHound Edge
Modify msDS-AllowedToActOnBehalfOfOtherIdentity
- Machine: RBCD
DS-Replication-Get-Changes
Extended Right
One of the two extended rights needed to do DCSync
- Domain: DCSync
DS-Replication-Get-Changes-All
Extended Right
One of the two extended rights needed to do DCSync
- Domain: DCSync
레퍼런스
https://github.com/BloodHoundAD/BloodHound/pull/625/files#diff-def72dd48888a7b1a9ad8f7df64ff1e7d5a5b664df9f47614794a9c9bf87ff26
https://learn.microsoft.com/ko-kr/windows/win32/ad/how-access-control-works-in-active-directory-domain-services
https://learn.microsoft.com/ko-kr/windows/win32/ad/controlling-access-to-objects-and-their-properties
https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/acl-persistence-abuse
https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces
https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab
https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryrights?redirectedfrom=MSDN&view=dotnet-plat-ext-7.0
https://dirkjanm.io/abusing-forgotten-permissions-on-precreated-computer-objects-in-active-directory/
https://www.youtube.com/watch?v=z8thoG7gPd0
https://www.thehacker.recipes/ad/movement/dacl
Last updated