☰
Kerberos协议攻防与域内安全加固实战解析
2026/10/27 2:47:10 网站建设 项目流程

1. 域内安全攻防的本质思考

在传统企业网络架构中,域控制器(Domain Controller)作为身份认证的核心枢纽,其安全性直接决定了整个内网的防护水平。Kerberos协议作为Windows Active Directory默认的认证机制,其设计初衷是解决网络认证中的信任问题,但恰恰是这种信任关系的建立过程,为红队渗透提供了丰富的攻击面。

我曾在一次真实的红队评估中,仅通过获取到的普通域用户凭证,在72小时内就完成了从初始访问到域控完全控制的完整攻击链。这个过程中最关键的突破口,就是Kerberos协议中的票证授予票证(TGT)的滥用。当客户端向密钥分发中心(KDC)请求服务票证时,如果攻击者能够伪造或窃取有效的TGT,就能以该用户的身份访问任何授权服务——这就是著名的"黄金票据"攻击原理。

实战经验:在配置Kerberos策略时,很多管理员会忽略"账户敏感不能被委派"这个选项。实际上启用该选项可以防止凭证被用于横向移动,这是域安全加固的基础配置之一。

2. Kerberos协议的攻击面全解析

2.1 认证流程中的脆弱环节

标准Kerberos认证包含三个主要阶段:

  1. 认证服务交换(AS-REQ/AS-REP):客户端获取TGT
  2. 票证授予服务交换(TGS-REQ/TGS-REP):客户端用TGT获取服务票证
  3. 客户端/服务器认证(AP-REQ/AP-REP):客户端向服务出示票证

每个阶段都存在特定的攻击手法:

  • AS-REP Roasting:当用户设置"不需要预认证"时,攻击者可以直接请求该用户的TGT而无需知道密码。返回的加密TGT可以用离线方式暴力破解。
# 使用Impacket查找不需要预认证的账户 GetNPUsers.py domain/user -no-pass -usersfile userlist.txt -dc-ip 192.168.1.1
  • Kerberoasting:任何域用户都可以请求服务票证,其中加密部分使用服务账户的密码哈希。攻击者可以请求票证后离线破解。
# PowerShell提取服务票证 Add-Type -AssemblyName System.IdentityModel New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/dbserver.domain.com"

2.2 高级持久化技术

在获得域管理员权限后,红队通常会建立持久化机制:

  1. 黄金票据攻击:伪造TGT需要:
    • 域的SID (Security Identifier)
    • krbtgt账户的NTLM哈希
    • 要伪造的域名
    • 要伪造的用户名
kerberos::golden /user:Administrator /domain:domain.com /sid:S-1-5-21-... /krbtgt:hash /ptt
  1. 白银票据攻击:伪造特定服务的票证,需要:
    • 服务账户的NTLM哈希
    • 目标SPN (Service Principal Name)
    • 目标用户名

3. ACL的攻防实战

3.1 访问控制列表的权限滥用

Active Directory中的每个对象都有安全描述符,其中包含DACL(自主访问控制列表)。常见的危险权限包括:

  • GenericAll:完全控制对象
  • GenericWrite:修改对象属性
  • WriteOwner:更改对象所有者
  • WriteDACL:修改权限列表
  • AllExtendedRights:包括重置密码等权限

使用PowerView进行ACL检查:

Find-InterestingDomainAcl -ResolveGUIDs | ?{$_.IdentityReference -match "TestUser"}

3.2 关键攻击路径

  1. 域管理员组添加:如果对某组有Write权限,可以将自己添加到该组
Add-DomainGroupMember -Identity 'Domain Admins' -Members 'TestUser'
  1. 权限继承攻击:通过对OU的控制权,可以影响其下所有对象
Get-DomainOU | Get-DomainObjectAcl -ResolveGUIDs | ?{$_.SecurityIdentifier -match "S-1-5-21.*-512"}
  1. 资源委派滥用:约束委派(Constrained Delegation)配置不当会导致权限提升
Get-DomainComputer -TrustedToAuth | Select-Object name,msds-allowedtodelegateto

4. 防御策略与检测技术

4.1 Kerberos加固方案

  1. 启用AES加密代替RC4-HMAC

    Set-ADAccountControl -Identity user -UseDESKeyOnly $false
  2. 配置账户策略:

    • 预认证必需
    • 设置敏感账户不可委派
    • 限制票证生命周期
  3. 监控异常票证请求:

    <!-- Windows事件ID监控 --> 4768: TGT请求 4769: 服务票证请求 4770: 服务票证续期

4.2 ACL权限管理最佳实践

  1. 定期审计敏感权限:

    Get-DomainObjectAcl -Identity "Domain Admins" -ResolveGUIDs | ?{$_.ActiveDirectoryRights -match "Write"}
  2. 实施最小权限原则:

    • 限制对AdminSDHolder对象的访问
    • 审核所有对域对象的WriteDACL操作
  3. 启用对象变更审计:

    Auditpol /set /subcategory:"Directory Service Changes" /success:enable /failure:enable

5. 红队实战中的思维突破

在最近一次针对金融行业的红队行动中,目标网络已经实施了包括LAPS、特权访问工作站(PAW)在内的全套微软推荐安全方案。传统攻击路径基本被阻断。我们最终通过以下非常规方式完成突破:

  1. 发现某台老旧服务器仍使用NTLM认证
  2. 通过LLMNR毒获取本地管理员凭证
  3. 在该服务器上发现某业务系统服务账户的明文密码
  4. 该服务账户对某个OU有Write权限
  5. 通过该OU权限添加新的域管理员

这个案例表明,即使实施了最严格的安全控制,只要域内存在一个弱环节,整个防御体系就可能被击穿。红队需要培养"攻击面思维"——不是寻找已知漏洞,而是识别任何可能被利用的配置偏差。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询