AD域开启RC4-HMAC加密
AD域开启RC4-HMAC加密
01 前言
在做 <攻击者使用 KRBTGT 帐户密码哈希值伪造 Kerberos TGT 票据(Golden Ticket)> Use Case BAS测试时,使用Mimikatz伪造黄金凭据触发EventCode 4769安全事件,其中的TicketEncryptionType
=0x12
,0x12
为AES256-HMAC-SHA1
加密模式。
不符合SPL语句中的过滤条件,故此需要开启RC4-HMAC
认证模式
安全场景SPL语句
1 |
|
02 介绍
在Windows事件代码4769(请求Kerberos服务票据)中,字段 TicketEncryptionType
表示Kerberos票据使用的加密算法类型。当该字段值为 0x17
时,其含义如下:
TicketEncryptionType = 0x17
的解释
加密算法类型:
0x17
对应 RC4-HMAC(基于RC4的哈希消息认证码加密)。协议细节:这是Kerberos协议中一种较旧的加密类型,使用
RC4
流加密算法和HMAC
完整性验证。安全背景:
- RC4-HMAC已被视为不安全的加密算法,微软自Windows 7/Server 2008 R2起默认禁用该算法。
- 若在较新系统中出现
0x17
,可能是由于兼容性配置或服务账户强制使用旧加密类型。
为何会出现 0x17
加密类型?
- 服务账户配置:某些服务账户可能显式配置为仅支持RC4-HMAC(例如旧版应用程序兼容性)。
- 域策略允许旧加密:域控制器可能启用了
RC4
支持(通过组策略Network security: Configure encryption types allowed for Kerberos
)。 - 客户端不支持新算法:请求票据的客户端可能未启用AES等更安全的加密类型。
扩展:常见Kerberos加密类型代码
十六进制值 | 加密类型 | 安全性 |
---|---|---|
0x1 |
DES-CBC-CRC | 已淘汰 |
0x3 |
DES-CBC-MD5 | 已淘汰 |
0x11 |
AES128-HMAC-SHA1 | 安全(推荐) |
0x12 |
AES256-HMAC-SHA1 | 安全(推荐) |
0x17 |
RC4-HMAC | 不安全 |
0x18 |
RC4-HMAC-EXP | 不安全 |
03 更改步骤
在Windows操作系统中,RC4-HMAC是一种已被视为不安全的Kerberos加密类型,微软默认已禁用该算法(自Windows 7/Server 2008 R2起)。但出于兼容性需求(如旧版应用程序或设备依赖),可能需要临时启用它。以下是配置方法及注意事项:
步骤 1:通过组策略允许RC4-HMAC加密
打开组策略管理编辑器:
按
Win + R
,输入gpedit.msc
(本地策略)或通过域控制器管理工具配置域组策略。路径:
Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options
配置允许的Kerberos加密类型:
- 找到策略项:
Network security: Configure encryption types allowed for Kerberos
- 双击打开,勾选
RC4_HMAC_MD5
,并确保其他更安全的加密类型(如AES)未被禁用。
- 找到策略项:
应用组策略:
- 在域控制器上运行
gpupdate /force
强制刷新策略,客户端设备需重启或等待策略自动生效。
- 在域控制器上运行
步骤 2:配置服务账户以支持RC4-HMAC
如果某个服务账户(Service Account)需要强制使用RC4加密,需更新其Kerberos加密类型:
使用PowerShell修改服务账户属性:
1
Set-ADServiceAccount -Identity "YourServiceAccount" -KerberosEncryptionType RC4, AES128, AES256
- 此处需保留
RC4
选项,确保兼容性。
- 此处需保留
验证服务主体的加密类型:
1
Get-ADServiceAccount -Identity "YourServiceAccount" -Properties KerberosEncryptionType
- 输出应包含
RC4_HMAC
。
- 输出应包含
步骤 3:修改注册表(可选)
在某些情况下,需直接修改注册表以启用RC4:
定位注册表路径:
- 打开注册表编辑器(
regedit
),导航至:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
- 打开注册表编辑器(
创建或修改DWORD值:
- 新建或编辑键值:
SupportedEncryptionTypes
- 设置数值为
0x7FFFFFFF
(允许所有加密类型)或0x17
(仅允许RC4)。
注意:十六进制值需根据实际需求调整(*参考加密类型代码* )。
- 新建或编辑键值:
重启系统生效。
验证配置是否生效
检查Kerberos票据加密类型:
使用
klist
命令查看当前会话的加密类型:1
klist
查找输出中的
Ticket Encryption Type: 0x17
(即RC4-HMAC)。
监控事件日志:
- 查看事件ID
4769
(Kerberos服务票据请求),确认TicketEncryptionType
字段是否为0x17
。
- 查看事件ID
⚠️ 重要安全警告
RC4-HMAC的风险:
- RC4存在已知漏洞(如Bar Mitzvah攻击),易被破解导致凭据泄露。
- 微软已建议禁用RC4(参考:KB2868726)。
临时使用建议:
- 仅在内网隔离环境或旧设备无法升级时临时启用。
- 完成后立即禁用RC4,恢复为AES(AES128/AES256)。
替代方案(推荐)
若需兼容旧系统,建议逐步迁移至更安全的加密方式:
升级操作系统/应用程序:确保所有设备支持AES。
强制禁用RC4:
1
2# 禁用RC4(域控制器)
Set-ADAccountControl -Identity "YourServiceAccount" -KerberosEncryptionType AES256, AES128使用组策略彻底禁用RC4:
在Network security: Configure encryption types allowed for Kerberos
中取消勾选RC4_HMAC_MD5
。
通过上述步骤,可临时启用RC4-HMAC加密,但请务必权衡安全风险。如需长期使用,建议彻底淘汰依赖RC4的旧系统。