白银票据攻击实战:Kerberos协议下的内网横向渗透与防御 📅 2026/7/31 7:37:50 1. 项目概述从“黄金”到“白银”的战术演进在Active DirectoryAD域环境中Kerberos协议是身份验证的基石而票据Ticket则是这个协议中的核心通行证。很多朋友都听说过“黄金票据”Golden Ticket的大名它通过伪造域内最高权限的KRBTGT账户票据几乎能实现“为所欲为”。但今天我们要聊的是它的“兄弟”——“白银票据”Silver Ticket。如果说黄金票据是伪造了国王的玉玺可以签发任何命令那么白银票据更像是伪造了某个特定大臣的官印虽然权限范围有限但胜在制作简单、无需与域控制器DC交互且极难被传统防御手段检测。这个项目就是围绕如何利用白银票据在渗透测试中突破内网访问限制展开的。为什么白银票据在实战中如此重要因为在真实的攻防对抗里拿到域管理员权限相当于拿到“玉玺”往往是一个漫长且高风险的过程。更多的时候我们通过一个普通域用户的权限进入内网或者通过其他漏洞拿到了某台服务器的本地管理员权限。此时我们的目标可能很具体比如想访问那台只有特定服务账户才能访问的文件服务器上的财务数据或者想控制那台运行着关键业务应用的Web服务器。直接提权到域管可能动静太大而白银票据提供了一种更隐蔽、更精准的“外科手术式”攻击路径。它不追求全局统治而是针对特定服务如CIFS文件共享、HTTP Web服务、MSSQL数据库等进行权限伪造直接达成战术目标。本篇文章我将结合多年一线红队评估的经验为你拆解白银票据的核心原理并重点分享三种最具代表性的实战场景。这些场景覆盖了从信息收集到横向移动再到权限维持的关键环节。无论你是刚开始接触内网渗透的安全爱好者还是希望提升防御深度的蓝队成员理解这些攻击手法及其背后的Kerberos协议细节都至关重要。我们会从“为什么能这么做”讲起再到“具体怎么做”最后分享“怎么防”以及我在实操中踩过的那些坑。让我们暂时抛开那些复杂的协议流程图用更直白的方式进入白银票据的实战世界。2. 白银票据核心原理与前置条件解析在动手之前我们必须彻底搞清楚白银票据到底是什么以及它生效需要哪些“原料”。知其然更要知其所以然这能帮助我们在复杂的实战环境中灵活变通而不是死记硬背命令。2.1 Kerberos服务票据ST与白银票据的本质简单回顾一下Kerberos认证中一个用户访问一个服务如\fileserver\share的基本流程用户向DC请求票据授予票据TGT。用户使用TGT向DC请求访问特定服务的服务票据ST。用户将ST发送给目标服务服务验证ST后授予访问权限。服务票据ST的核心部分是由DC使用服务账户的密码哈希NTLM Hash进行加密的。服务在收到ST后会用自己知道的密码哈希去解密它。如果能成功解密并且票据内的信息如用户、时间戳等有效服务就认为这个票据是合法的DC颁发的从而允许访问。白银票据攻击的精髓就在于此攻击者不需要与DC进行任何交互。我们直接跳过了向DC请求ST的步骤。如果我们能获取到目标服务账户的密码哈希我们就可以自己伪造一张ST。因为加密和解密的密钥即密码哈希我们都有了所以我们可以构造一个完全合法的ST直接发送给服务。服务用自己的哈希成功解密后就会信任这张票据。这与黄金票据的关键区别在于黄金票据伪造TGT需要KRBTGT账户的哈希可以访问任何服务。白银票据伪造特定服务的ST需要该服务账户的哈希只能访问该特定服务。2.2 制作白银票据的“原料清单”要成功伪造一张白银票据你需要收集以下几项关键信息。在实战中获取这些信息本身就是渗透测试的重要环节。目标域名Domain这个很简单就是当前AD域的域名例如testlab.local。目标服务账户的SIDSecurity Identifier这是标识域用户或计算机账户的唯一ID。对于服务票据我们通常使用计算机账户的SID因为很多服务如CIFS, HOST运行在计算机账户上下文中。计算机账户的SID格式为域SID-计算机账户的RID。域SID可以通过whoami /user命令查看当前用户的SID并去掉末尾的RID部分获得或者通过Get-ADDomain等命令查询。目标服务账户的NTLM Hash这是最核心、最难获取的一环。没有它一切无从谈起。这个哈希是服务用来解密ST的密钥。对于计算机账户其密码是定期自动更改的但如果我们能在某个时刻获取到它例如通过内存dump工具如Mimikatz从lsass进程中提取或者通过域控漏洞获取就可以用它来伪造票据。要伪造的用户名Username你可以伪造任何域用户甚至是不存在的用户。通常为了隐蔽和权限最大化我们会伪造域管理员组成员如Administrator或高权限服务账户。注意这里伪造的用户名只在票据中存在并不会在DC的日志中产生对应的TGT请求记录这是其隐蔽性的来源之一。要访问的服务类型Service这决定了票据的用途。不同的服务对应不同的SPNService Principal Name。常见的有cifs用于文件共享访问如\\server\share。host用于远程服务管理如WMI, WinRM。http用于访问Web应用如IIS站点。mssql用于访问SQL Server数据库。ldap用于查询域控LDAP服务。目标服务器的主机名Target SPN即服务运行在哪台服务器上例如dc01.testlab.local。重要提示获取服务账户哈希的行为通常需要已具备一定的权限如本地管理员权限。因此白银票据攻击常发生在已经初步立足获得一台域内主机权限之后的横向移动或权限提升阶段。2.3 工具选型为什么是Mimikatz在Windows环境下制作和注入票据的首选工具无疑是Mimikatz。它几乎成为了内网渗透的“瑞士军刀”。其kerberos::golden模块同样可以用于生成白银票据。选择它的理由很充分功能强大且稳定经过多年实战检验其票据生成和注入功能非常可靠。内存操作生成的票据可以直接注入到当前会话的内存中无需落地文件减少了被终端安全软件检测的风险。灵活性高支持几乎所有参数的自定义包括票据有效期、加密类型等。当然除了Mimikatz也有像impacket套件中的ticketer.py这样的跨平台工具可以在Linux上生成票据文件然后再传递到Windows主机使用。但在典型的Windows内网环境中Mimikatz的集成度和便捷性更高。在后面的实战中我们将以Mimikatz为例进行演示。3. 实战场景一伪造CIFS票据无痕访问文件服务器这是最经典、需求最普遍的白银票据应用场景。假设我们在渗透测试中通过钓鱼等方式拿下了市场部某位同事的笔记本电脑已加入域获得了本地管理员权限。我们发现内网有一台文件服务器FS01上面存放着公司重要的项目资料。普通域用户只能访问公共区而“项目资料”文件夹只有FS01$计算机账户和少数几个管理账户有写权限。我们的目标是悄无声息地访问并下载这些资料。3.1 场景分析与信息收集首先我们需要为伪造票据收集“原料”。获取当前域信息在已控制的主机上打开命令提示符。# 查看当前域名和用户 echo %userdomain% net config workstation # 更详细的信息可以使用PowerShell Get-ADDomain | select Name, DomainSID假设我们得知域名为corp.com。定位目标并获取其SID我们需要文件服务器FS01的计算机账户SID。# 使用PowerShell ActiveDirectory模块查询 Get-ADComputer FS01 -Properties SID如果该模块不可用可以通过网络查询或利用已知信息拼接。计算机账户的SID通常是域SID-计算机账户的RID。我们可以先获取域SID例如S-1-5-21-1602875587-2789445558-1801674531然后通过枚举或猜测计算机账户RID通常从1000开始顺序分配来确定FS01的RID。更准确的方法是如果我们有另一个域账户可以尝试用PowerView等工具进行远程查询。获取服务账户NTLM Hash关键步骤这是最具挑战的一步。在这个场景中我们需要FS01$计算机账户的哈希。有几种可能的方法本地提权后Dump内存如果我们能物理接触FS01或者通过其他漏洞获得其本地管理员权限可以在其上运行Mimikatz的sekurlsa::logonpasswords命令直接从lsass进程中提取FS01$的哈希。域控攻击如果获得了域控权限可以从NTDS.dit数据库中导出所有哈希其中就包含所有计算机账户的哈希。其他漏洞利用如MS14-068、Zerologon等历史漏洞可能直接或间接导致计算机账户哈希泄露。假设在此次测试中我们通过之前对另一台服务器的攻击已经拿到了一个包含FS01$哈希的数据库其NTLM Hash为4d6e435c6a556e576e327a314c774a513.2 票据伪造与注入实战现在原料齐备。我们在已控制的电脑上以管理员权限运行Mimikatz。# 使用Mimikatz生成并注入CIFS服务的白银票据 kerberos::golden /domain:corp.com /sid:S-1-5-21-1602875587-2789445558-1801674531-1105 /target:FS01.corp.com /service:cifs /rc4:4d6e435c6a556e576e327a314c774a51 /user:Administrator /ptt参数详解/domain 目标域名。/sid 目标服务账户FS01计算机账户的完整SID。这里-1105就是它的RID。/target 目标服务器的全限定主机名FQDN。/service 服务类型这里是cifs。/rc4 目标服务账户的NTLM HashRC4加密类型对应NTLM Hash。如果域环境使用了AES加密则需要使用/aes128或/aes256参数提供对应的AES Key。/user 要伪造的用户名这里我们伪造域管理员Administrator。/ptt “Pass The Ticket”的缩写表示生成票据后直接注入到当前会话的内存中。执行成功后Mimikatz会输出票据信息并提示“Golden ticket for ‘Administrator corp.com’ successfully submitted for current session”。此时伪造的票据已经加载到当前会话的Kerberos缓存中。3.3 验证与利用现在我们可以直接访问之前无权访问的文件共享了无需输入任何密码。# 列出文件服务器共享目录 dir \\FS01.corp.com\项目资料\ # 或者使用net use建立驱动器映射同样不需要密码 net use Z: \\FS01.corp.com\项目资料\你会发现操作畅通无阻就像你是真正的域管理员一样。而且由于整个过程中没有与域控制器DC发生任何交互在DC的安全日志如4769事件请求了Kerberos服务票据中不会留下我们伪造的这个Administrator用户请求访问FS01的CIFS服务记录。这极大地增强了隐蔽性。实操心得使用/ptt注入内存的票据只在当前会话有效。如果关闭了Mimikatz运行的命令行窗口票据就会失效。对于需要持久化访问的场景可以使用/ticket参数将票据导出为.kirbi文件然后在需要时使用kerberos::ptt ticket.kirbi命令再次注入。另外注意观察目标服务的加密方式现代Windows Server默认可能更倾向于使用AES如果仅提供NTLM HashRC4而服务要求AES票据可能会失效。最稳妥的方式是同时获取NTLM Hash和AES Key。4. 实战场景二伪造HOST票据实现远程命令执行与横向移动访问文件只是第一步我们往往需要获得服务器的命令执行权限以便进一步横向移动或部署后门。HOST SPN涵盖了服务器上许多管理功能如WMIWindows Management Instrumentation和WinRMWindows Remote Management。伪造HOST服务的白银票据可以让我们远程执行命令。4.1 场景设定与目标选择假设在上一场景后我们还想进一步控制开发团队的一台重要服务器DEVSRV01。我们知道这台服务器开启了WMI或WinRM进行远程管理。同样我们通过某种方式例如从已控的域管机器内存中或者利用漏洞获取了DEVSRV01$计算机账户的NTLM Hash8f9d5e5e5c8f7a6d5b4a3c2b1a098776。我们的目标是在不触发可疑告警的情况下远程在DEVSRV01上执行系统命令例如添加一个隐藏的后门账户。4.2 生成HOST服务票据在攻击机上再次使用Mimikatz生成针对HOST服务的票据。这里我们伪造一个属于“Domain Admins”组的用户sqladmin一个可能存在的、拥有较高权限的服务账户更不易引起怀疑。kerberos::golden /domain:corp.com /sid:S-1-5-21-1602875587-2789445558-1801674531-1201 /target:DEVSRV01.corp.com /service:host /rc4:8f9d5e5e5c8f7a6d5b4a3c2b1a098776 /user:sqladmin /ptt注意/service参数变为了host/target和/sid也相应改为目标服务器DEVSRV01的信息。4.3 利用票据进行远程命令执行票据注入后我们就可以使用依赖Kerberos认证的远程管理工具了。方法一使用WMI执行命令WMI默认使用Kerberos认证。我们可以使用PowerShell的Invoke-WmiMethod或Get-WmiObject。# 使用注入票据的会话启动PowerShell # 然后执行远程命令例如创建用户 Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList “net user backdooruser Pssw0rd! /add” -ComputerName DEVSRV01.corp.com -Credential (New-Object System.Management.Automation.PSCredential(“corp.com\sqladmin”, (ConvertTo-SecureString “dummy” -AsPlainText -Force)))这里需要提供一个PSCredential对象但密码是假的因为实际认证依靠的是内存中的Kerberos票据而不是密码。命令会在DEVSRV01上以系统权限执行。方法二使用WinRMPowerShell Remoting如果目标服务器启用了WinRM通常5985端口我们可以直接建立远程会话。# 建立远程PSSession $sess New-PSSession -ComputerName DEVSRV01.corp.com -Authentication Kerberos -Credential (Get-Credential corp.com\sqladmin) # 在弹出的窗口中输入任意密码即可 Enter-PSSession $sess # 现在你就在DEVSRV01的命令行下了可以执行任何操作 whoami hostname同样认证过程由Kerberos票据完成输入的密码不起作用。4.4 隐蔽性分析与防御视角这种方式的隐蔽性在于无网络认证流量指向DC所有认证在客户端和服务端之间通过票据完成DC不参与此次服务请求的验证。日志位于目标服务器在DEVSRV01的安全日志中会记录sqladmin账户的登录和操作事件。如果sqladmin本身就是一个合法的管理账户这些日志看起来就很正常。蓝队如果仅监控DC的Kerberos事件很容易遗漏。踩坑记录在实际测试中我曾遇到WinRM连接失败的情况错误提示“WinRM客户端无法处理该请求”。除了检查网络和WinRM服务状态外一个常见原因是票据中的SPN不匹配。host服务是一个通用SPN但有些严格的配置或第三方工具可能要求更具体的SPN如HOST/DEVSRV01或HOST/DEVSRV01.corp.com。在kerberos::golden命令中/target参数实际上就指定了SPN的主机部分。确保这里的值与你要连接的目标完全一致。有时尝试使用http服务票据对应5985端口的WinRM也可能成功命令中/service改为http/target改为DEVSRV01.corp.com:5985。5. 实战场景三伪造LDAP票据从域控直接提取数据这是白银票据攻击中权限极高的一种应用。LDAP服务运行在域控制器上用于查询和修改AD目录中的数据。如果我们能伪造访问域控LDAP服务的票据就意味着我们可以直接向域控发起查询甚至可能进行修改取决于伪造用户的权限。5.1 高风险场景与必要条件警告此操作风险极高极易触发告警。因为直接对域控的LDAP进行大量或敏感查询本身就是异常行为。仅在渗透测试的后期需要快速收集关键信息如所有域管理员列表、敏感组关系时酌情使用。这个场景需要两个关键条件目标服务是域控制器本身例如DC01.corp.com。需要域控制器计算机账户DC01$的NTLM Hash。这通常意味着你已经通过某种方式严重危害了域控的安全例如利用漏洞获取了内存中的哈希或已经拿到了域控的本地管理员权限并进行了dump。5.2 伪造LDAP票据并执行域查询假设我们已获得DC01$的哈希a1b2c3d4e5f67890123456789abcdef0。现在我们伪造一个域管理员用户admin的票据访问DC01的LDAP服务。kerberos::golden /domain:corp.com /sid:S-1-5-21-1602875587-2789445558-1801674531-500 /target:DC01.corp.com /service:ldap /rc4:a1b2c3d4e5f67890123456789abcdef0 /user:admin /ptt注意这里/sid是域控制器计算机账户的SIDRID通常是500但并非绝对需确认。/service是ldap。5.3 利用票据进行隐蔽信息收集票据注入后我们可以使用LDAP查询工具而无需提供真实的密码。例如使用PowerShell的ActiveDirectory模块# 导入模块 Import-Module ActiveDirectory # 此时执行查询认证会自动使用内存中的Kerberos票据 Get-ADUser -Filter * -Properties * | select SamAccountName, DistinguishedName Get-ADGroupMember “Domain Admins”或者使用更轻量的命令行工具ldp.exe在连接时选择“使用当前登录凭据”即可。由于票据是伪造的这些查询请求会直接发送给域控DC01并由其LDAP服务处理。在DC的安全日志中你会看到admin用户发起的LDAP查询记录但在Kerberos事件日志中找不到对应的TGT请求或ST颁发记录。这种“脱节”对于有经验的蓝队分析师来说是一个危险信号。5.4 扩展利用与深度隐蔽思考除了查询如果伪造的用户拥有足够权限如域管理员理论上甚至可以修改AD对象属性。例如修改某个用户的msDS-AllowedToActOnBehalfOfOtherIdentity属性来配置基于资源的约束委派RBCD攻击或者直接修改用户的密码。但这会产生大量明显的修改日志极容易被发现。深度隐蔽技巧为了尽可能降低噪音在伪造LDAP票据时可以尝试伪造一个合法的、但不常被使用的服务账户而不是高亮的Administrator。将票据导出为文件使用/ticket:ldap.kirbi然后在另一台受控的、网络位置不同的机器上注入并使用。这可以混淆攻击来源。控制查询的频率和数量避免短时间内进行全量数据拉取模仿正常的管理员行为模式。核心要点LDAP白银票据攻击是“双刃剑”。它提供了强大的信息收集能力但同时也因为直接触碰域控而风险巨大。在真实的红队评估中这通常是收网阶段为了快速达成特定目标如获取关键人员列表而使用的战术而非常规横向移动手段。蓝队应重点监控域控上的LDAP活动尤其是来自非管理终端、使用非常用账户的敏感查询操作。6. 防御、检测与溯源实战指南了解了攻击手法防守方该如何应对白银票据攻击的防御是一个多层次的工作核心在于打破其依赖的前提条件和建立有效的检测机制。6.1 防御措施增加攻击成本保护密码哈希最根本的防御实施凭证保护Credential Guard对于Windows 10/Server 2016及以上版本启用Credential Guard可以虚拟化安全子系统防止Mimikatz等工具从lsass进程中直接提取明文密码、哈希和票据。这极大地增加了攻击者获取服务账户哈希的难度。限制本地管理员权限实施最小权限原则减少拥有本地管理员权限的账户数量。攻击者往往需要本地管理员权限才能运行哈希dump工具。使用组管理服务账户gMSA或虚拟账户对于服务尽可能使用gMSA。这些账户的密码由AD自动管理非常长且定期轮换管理员通常不知道其密码更难被窃取。虚拟账户如NT SERVICE\也不在AD中存储密码哈希。防范横向移动及时修补诸如Zerologon (CVE-2020-1472) 等可直接危害计算机账户的严重漏洞。强化Kerberos协议安全启用AES加密在AD域中强制使用AES进行Kerberos加密并禁用较弱的RC4加密类型对应NTLM Hash。白银票据如果使用RC4哈希伪造而服务要求AES票据将失效。可以通过组策略计算机配置 - 策略 - 安全设置 - 本地策略 - 安全选项 - 网络安全: 配置Kerberos允许的加密类型来设置。启用Kerberos ArmoringFAST在受支持的环境Windows Server 2012 R2及以上域功能级别中这可以提供额外的保护。6.2 检测机制发现异常活动由于白银票据不与DC交互检测重点应放在目标服务和网络流量上。服务端日志分析关键Windows安全日志事件ID 4624、4634在目标服务器如文件服务器、Web服务器上仔细分析登录日志。关注登录类型Logon TypeKerberos服务票据认证对应的登录类型是3网络登录。大量来自非常用客户端的类型3登录值得关注。账户名与源地址检查是否有高权限账户如域管从非管理员的办公电脑IP地址登录文件服务器。或者一个平时只从特定跳板机登录的服务账户突然从员工终端登录。登录时间在非工作时间发生的管理员登录。服务特定日志如IIS日志、SQL Server审计日志等查看访问记录是否与账户的正常行为模式相符。网络流量监控Kerberos票据特征白银票据是伪造的ST它没有对应的TGT。在流量中你会看到客户端直接向服务发送了AP-REQ包含ST但在此之前没有向KDC发送TGS-REQ请求。这种“孤立”的服务票据请求是白银票据的典型网络特征。安全设备或SIEM可以通过关联分析进行检测。加密类型如果域内已禁用RC4但监控到仍在使用的RC4加密的Kerberos票据这是一个强烈的异常信号。终端行为监控监控进程行为如可疑的Mimikatz或其变种工具的执行。监控对lsass进程的非法内存访问。6.3 溯源与响应一旦检测到疑似白银票据攻击应急响应流程应包括立即隔离受影响主机断开疑似被攻击的服务器的网络防止进一步扩散。收集证据提取目标服务器上的安全日志、内存镜像用于查找注入的票据、进程列表等。重置密码立即重置疑似泄露的服务账户特别是计算机账户的密码。计算机账户密码重置后所有基于旧哈希伪造的白银票据将立即失效。全面排查以被攻击的服务器为起点排查攻击者可能进行的横向移动路径检查其他服务器是否也存在异常登录或后门。7. 常见问题、排查技巧与高级绕过实录在实际操作中你肯定会遇到各种问题。下面是我在多次测试中积累的一些常见问题排查方法和高级技巧。7.1 票据注入成功但访问被拒绝这是最常见的问题。可能的原因和排查步骤服务类型SPN不匹配症状能ping通目标但访问共享或连接服务时提示“拒绝访问”。排查仔细检查你要访问的服务对应的SPN。例如访问Web服务可能要用http而非host访问特定端口的服务可能需要完整的SPN如HTTP/webapp.corp.com:8080。使用setspn -L命令查询目标服务器注册的所有SPN。解决在kerberos::golden命令中确保/service参数与目标服务实际使用的SPN严格匹配。加密类型不匹配症状票据注入后连接时出现加密相关错误。排查检查域和服务器支持的Kerberos加密类型。在DC上Get-ADObject -Identity “CNDomainName,CNSystem,DCcorp,DCcom” -Partition “DCcorp,DCcom” -Properties “msDS-SupportedEncryptionTypes”。在客户端或服务器端查看事件查看器中的Kerberos调试日志需启用。解决如果服务要求AES加密而你只提供了NTLM HashRC4票据会失败。你需要获取服务账户的AES密钥128位或256位。在Mimikatz中使用/aes128:或/aes256:参数代替/rc4:。时间偏差问题症状票据看似有效但连接失败可能提示“时钟偏差太大”。原理Kerberos协议对时间同步要求严格默认允许5分钟偏差。伪造票据时其时间戳是基于攻击者系统时间的。解决确保攻击者机器的系统时间与目标域的时间同步。可以使用net time \\dc01.corp.com /set /y命令进行同步。用户权限不足症状票据有效能通过认证但执行操作时被拒绝。原理白银票据只解决了“身份认证”问题即“你是谁”。而“授权”你能做什么是由目标服务器上的本地安全策略或文件系统ACL决定的。如果你伪造的用户如一个普通的域用户在目标服务器上没有相应权限访问仍会被拒绝。解决伪造一个在目标资源上拥有足够权限的用户如域管理员、目标服务器的本地管理员组成员等。7.2 如何获取服务账户的AES密钥在较新的、配置了Credential Guard的环境中获取NTLM Hash可能变难但AES密钥同样存储在lsass进程中。使用Mimikatz的sekurlsa::ekeys命令可以提取缓存的Kerberos加密密钥其中就包含AES密钥。mimikatz # sekurlsa::ekeys在输出中找到目标服务账户如DC01$记录其aes256_hmac或aes128_hmac的值。然后在生成票据时使用/aes256:参数。7.3 票据的持久化与传递导出票据文件使用/ticket:silver_cifs.kirbi参数票据会被保存到文件而不是注入内存。之后可以在任何机器上使用kerberos::ptt silver_cifs.kirbi注入。票据传递Pass The Ticket PTT这就是我们一直在做的。将票据注入内存供当前会话使用。Over-Pass The Hash这是一种混合技术。如果你有服务账户的NTLM Hash你可以用它来请求一个该账户的合法TGT通过sekurlsa::pth然后用这个TGT去请求你需要的任何服务票据ST。这比白银票据更灵活可以访问多种服务但需要与DC交互一次会留下日志。白银票据是完全不与DC交互的“离线”攻击。7.4 针对EDR/AV的绕过思路现代终端检测与响应EDR产品会监控Mimikatz等工具的行为。使用免杀加载器或内存加载使用自定义的加载器将Mimikatz反射加载到内存中避免文件落地扫描。使用替代工具使用用其他语言如C#、Go重写的、功能类似的工具如Rubeus、SharpKatz等这些工具可能特征码不同。手工构造票据高级对于顶尖红队可以完全理解Kerberos票据结构使用Python等语言编写脚本直接生成.kirbi文件完全绕过对特定工具的依赖和检测。利用合法管理工具有些EDR对klist查看票据、kerberos::ptt如果通过其他方式获得票据文件等操作监控较弱。可以先在隔离环境生成票据文件然后通过kerberos::ptt加载整个过程可能不触发警报。白银票据攻击是内网渗透测试中一项极具威力的中级技术。它完美诠释了“权限提升”不一定非要拿到域管理员精准打击往往更高效隐蔽。对于防御者而言理解其原理和特征构建以“凭证保护”为核心结合服务端日志分析和网络流量异常的纵深防御体系是应对此类攻击的关键。攻防的本质是知识的对抗希望这篇近万字的深度解析能为你无论是作为攻击方还是防守方都提供扎实的实践参考和思考维度。