GhostSurf:颠覆NTLM中继攻击,一键劫持企业内网所有浏览器会话

张开发
2026/4/19 16:39:37 15 分钟阅读

分享文章

GhostSurf:颠覆NTLM中继攻击,一键劫持企业内网所有浏览器会话
引言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.1IP地址192.168.1.100域控制器Windows Server 2022域名COMPANY.LOCAL目标服务器Windows Server 2022运行CyberArk Privileged Access ManagerIP地址192.168.1.200受害者机器Windows 11域用户john.doe普通用户和jane.adminCyberArk管理员3.2 步骤一安装和配置GhostSurf首先我们在攻击者机器上安装GhostSurfgitclone https://github.com/senderend/ghostsurf.gitcdghostsurfchmodx 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/TCPSOCKS5代理端口80/TCPHTTP服务器用于LLMNR/NBT-NS欺骗响应443/TCPHTTPS服务器用于钓鱼和强制认证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认证如PrinterBugpython3 printerbug.py COMPANY.LOCAL/john.doe:password192.168.1.10 192.168.1.100PetitPotampython3 petitpotam.py 192.168.1.100 192.168.1.10ShadowCoercepython3 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}# 获取所有密码responserequests.get(https://cyberark.company.com/api/passwords,proxiesproxies)passwordsresponse.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的出现提醒我们身份认证安全是企业安全的基石任何微小的缺陷都可能导致灾难性的后果。我们必须不断创新和改进我们的防御技术才能应对日益复杂的网络安全威胁。

更多文章