Add files via upload

This commit is contained in:
雾島风起時
2025-09-25 03:23:59 +08:00
committed by GitHub
parent ec9fc5deac
commit a075c015da
17 changed files with 597 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
### 利用 NTLM Relay 配合 ADCS 这个漏洞的情况需要什么条件
**1. NTLM Relay 攻击的基本原理**
NTLM Relay 的核心是中间人攻击。攻击者位于客户端和服务器之间,截获并重放 NTLM 认证会话
1. **客户端发起认证请求**:域内的一台机器(客户端)向攻击者控制的机器发起一个 SMB 或 HTTP 等协议的连接
2. **攻击者截获并转发**:攻击者截获客户端的 NTLM Challenge/Response 认证信息(但无法破解出明文密码)
3. **攻击者重放认证**:攻击者将这个认证信息**原封不动地转发**给**另一台域内机器**(目标服务器),冒充客户端进行认证
4. **目标服务器验证通过**:目标服务器认为这个认证信息是合法的,并允许攻击者以客户端的身份进行访问
这里的关键是,攻击者没有破解密码,而是**直接利用认证过程**,将受害者的身份“重放”给了目标服务器
**2. ADCS 漏洞(ESC8)的核心原理**
Active Directory Certificate Services (ADCS) 是微软提供的一个证书颁发机构(CA),用于管理公钥基础设施(PKI)
漏洞(也被称为 ESC8)存在于一些**不安全的证书模板配置**中。当一个证书模板被配置为:
- **`Certificate Authority Authorization`** (`CA Authorization`) 权限不安全,允许低权限用户或匿名用户注册
- 并且模板允许**`客户端认证`** (`Client Authentication`)
- 最重要的是,模板设置了 **`NTLM 签名禁用`** (`NTLM Signing Disabled`)
在这种配置下,攻击者可以利用 NTLM Relay 攻击,将受害者的身份信息中继到 ADCS 服务器,**以受害者的身份请求一个证书**。这个证书将用于后续的 Kerberos 认证
**3. NTLM Relay 配合 ADCS 的完整攻击链**
将两者结合后,攻击链变得异常强大,因为攻击者不再需要找到一个可以被利用的**文件共享**或**远程桌面服务**,而是将认证重定向到一个特定的 ADCS Web 页面
1. **诱导受害者发起认证**:攻击者需要想办法让域内一个用户或计算机(受害者)向自己发起一个认证请求
- **强制认证**:通过强制用户访问一个恶意 UNC 路径(例如 `\\<攻击机IP>\share`),Windows 系统会自动尝试使用 NTLM 认证来访问这个共享
- **钓鱼攻击**:通过发送恶意链接(例如 `file:///<攻击机IP>/payload.html`)给受害者
2. **启动 NTML Relay 服务器**:攻击者使用专门的工具(如 `ntlmrelayx.py`)来监听并重定向认证
3. **重定向认证到 ADCS**:当受害者发起认证请求时,`ntlmrelayx.py` 会捕获 NTLM 认证信息,并将其**重定向到 ADCS 的一个特定 HTTP 页面**
- **重定向 URL 示例**`http://<ADCS服务器IP>/certsrv/certfnsh.asp`
4. **以受害者身份请求证书**:ADCS 服务器接收到重定向的 NTLM 认证后,会认为这是受害者在请求证书。由于模板配置不安全,它会为攻击者颁发一个**带有受害者身份信息**的有效证书
5. **利用证书获取 Kerberos 票据**:攻击者获取到这个证书后,可以使用 `Rubeus.exe` 或其他工具,利用证书请求一个**Kerberos 票据(TGT**
6. **实现 Kerberos 认证**:有了这个 TGT,攻击者就可以**以受害者的身份访问域内的所有服务**。如果这个受害者是**域管理员**,攻击者就实现了域的完全控制,包括创建新用户、修改组权限等
**4. 攻击链的利用条件总结**
要成功执行这种攻击,必须满足以下所有条件:
1. **NTLM Relay 环境**:攻击者必须能够位于一个可以拦截和重定向 NTLM 认证请求的网络位置
2. **受害者认证**:攻击者需要找到一个可以被诱导、向攻击机发起 NTLM 认证的受害者,通常是域内的一台机器或一个用户
3. **不安全的 ADCS 模板配置**:这是最关键的条件,也是漏洞的根源。ADCS 模板必须存在以下缺陷:
- **`Enrollment Rights`(注册权限)**:允许低权限用户或匿名用户请求证书
- **`Client Authentication`**:证书可以用于客户端认证
- **`NTLM Signing Disabled`**ADCS 服务器的 HTTP 接口没有启用 NTLM 签名验证
4. **域内存在未打补丁的 ADCS 服务器**:服务器必须运行一个易受攻击的 ADCS 版本,并且其证书模板存在上述配置缺陷