如何通过 Kerberos进行横向移动
字数 1630 2025-08-25 22:58:40
Kerberos横向移动攻击技术详解
0x01 Kerberos协议基础
Kerberos概述
Kerberos是Windows Active Directory默认的身份验证协议,由MIT于1980年开发。其主要特点包括:
- 提供客户端和服务器的双向安全身份验证
- 通过不安全的网络传输加密的认证信息
- 不验证资源访问权限,仅提供用户特权信息
- 支持单点登录(SSO)功能
Kerberos工作流程
- 用户登录:用户提供凭证(密码/智能卡)
- 哈希转换:客户端将凭证转换为加密密钥(NT/LM哈希)
- AS请求:客户端使用加密密钥加密时间戳,发送给KDC
- AS响应:KDC验证凭证后创建:
- 登录会话密钥
- 票据授予票据(TGT),使用krbtgt账号的NT哈希加密
- 票据存储:TGT存储在LSASS进程内存中
关键概念
- TGT(Ticket-Granting Ticket):用户身份验证令牌,相当于用户凭证
- ST(Service Ticket):访问特定资源的服务票据
- PAC(Privilege Attribute Certificate):包含用户授权数据(组成员身份、权限)
- SPN(Service Principal Name):特定主机上特定服务的标识符
0x02 Kerberos攻击技术详解
2.1 凭证转储(T1003)
攻击者在获取计算机管理员权限后可以:
- 提取所有存储在内存中的Kerberos TGT
- 发现其他登录过该计算机的用户凭证
- 获取高权限账户的TGT
2.2 票据传递攻击(T1097)
攻击流程:
- 使用转储的TGT进行身份验证
- 无需账号密码即可访问网络资源
- 横向移动到其他系统
典型攻击场景:
- 获取普通用户TGT → 访问文件服务器
- 在文件服务器上转储更多TGT → 获取域管理员TGT
- 使用域管理员TGT → 控制域控制器
0x03 检测与防御
检测方法
- Microsoft Defender ATP:能够检测票据传递攻击
- SIEM监控:需要专门配置规则检测异常Kerberos活动
防御措施
-
实施分层管理模型:
- 限制域管理员登录范围(仅限域控制器和第0层资产)
- 避免域管理员在工作站上登录
-
凭证保护:
- 启用Credential Guard(可增加攻击难度)
- 注意:管理员仍可能绕过Credential Guard
-
架构设计:
- 理解SSO功能带来的安全风险
- 控制凭证在网络中的分布范围
0x04 常见误区澄清
-
工具限制:
- Mimikatz不是唯一能进行PtH/PtT攻击的工具
- Windows Credential Editor等工具也可实现类似功能
-
补丁限制:
- PtH和PtT是操作漏洞,无法通过安全补丁完全解决
- 必须通过合理的架构设计和管理实践来缓解
-
Credential Guard:
- 不能完全阻止攻击,只能增加攻击难度
- 管理员权限仍可能绕过保护机制
0x05 攻击实例分析
实例1:通过RDP服务横向移动
- 识别SPN:TERMSRV/EXCHANGE002.IDENTITY.local
- 获取TGT后请求TERMSRV服务票据
- 使用服务票据访问RDP服务
实例2:通过SQL服务横向移动
- 识别SPN:MSSQLSvc/AADConnect.IDENTITY.local
- 获取TGT后请求MSSQLSvc服务票据
- 使用服务票据连接SQL数据库
实例3:通过文件共享横向移动
- 识别CIFS服务:\FILESERVER\Fileshare
- 获取TGT后请求CIFS服务票据
- 使用服务票据访问文件共享
0x06 总结
Kerberos协议作为Active Directory的核心认证机制,其设计特性为攻击者提供了横向移动的可能。理解Kerberos工作原理、攻击技术和防御措施对于构建安全的AD环境至关重要。防御重点应放在合理的架构设计、严格的权限管理和全面的监控上,而非依赖单一的安全产品或补丁。