服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器安全 - 神秘APT组织锁定(IIS)Web服务器,擅长规避恶意软件检测

神秘APT组织锁定(IIS)Web服务器,擅长规避恶意软件检测

2021-08-01 23:28FreeBuf晶颜123 服务器安全

PrayingMantis(螳螂)组织很可能是一个使用自定义恶意软件并擅长躲避检测的民族国家恶意行为者。Praying Mantis利用的漏洞就是针对ASP.NET中的反序列化实现,ASP.NET是一种用于开发托管在Windows IIS Web服务器上的Web应用程序的开源框架。

神秘APT组织锁定(IIS)Web服务器,擅长规避恶意软件检测

PrayingMantis(螳螂)组织很可能是一个使用自定义恶意软件并擅长躲避检测的民族国家恶意行为者。

近日研究人员发现,在过去一年间,一个复杂的且极可能由国家民族支持的威胁行为者一直在利用面向公众的ASP.NET应用程序中的反序列漏洞来部署无文件恶意软件,从而危害一些主要的公共和私营组织。

事件响应公司Sygnia的研究人员将该组织命名为“Praying Mantis”或 TG1021。据悉,该黑客组织通过使用专为Internet信息服务 (IIS) Web服务器构建的自定义恶意软件工具集来执行凭据收集、侦察和横向移动任务。除此之外,该组织还在规避恶意软件检测方面做了很大的努力。

Sygnia研究人员在一份详细报告中称:

“活动的性质及其作案手法表明TG1021是一位经验丰富的威胁组织,并且高度了解 OPSEC(操作安全)。TG1021使用的恶意软件通过主动干扰日志记录机制、成功规避商业EDR以及静默等待传入连接,而不是连接回C2通道并持续生成流量,显示了其在避免检测方面做出的重大努力。此外,攻击者在使用后主动删除了所有磁盘驻留工具,有效地放弃了持久性以换取隐匿性。”

新旧反序列化漏洞利用

 

在编程中,序列化是将数据转换为字节流的过程,通常通过网络传输。反序列化即该过程的逆向,就像软件中的大多数数据解析操作一样,如果用户控制输入,它可能成为漏洞的来源。不安全的反序列化漏洞多年来一直困扰着Java应用程序,但Java并不是唯一一种反序列化常用的编程语言。

Praying Mantis利用的漏洞就是针对ASP.NET中的反序列化实现,ASP.NET是一种用于开发托管在Windows IIS Web服务器上的Web应用程序的开源框架。ASP.NET有一种称为“VIEWSTATE”的机制,框架使用它来存储在POST请求期间发送到客户端时网页的状态和控件。它被存储成名为“ _VIEWSTATE”的隐藏输入字段。当客户端执行POST操作并将页面发送回服务器时,VIEWSTATE被反序列化和验证。ASP.NET提供了一些安全性和完整性检查机制来确保序列化数据有效,但它们的正确使用需要归结于开发人员的实现。

研究人员发现,Praying Mantis利用了一个Checkbox Survey远程代码执行(RCE)漏洞(CVE-2021-27852),Checkbox应用程序允许网站所有者实施用户调查。据悉,在该组织发起攻击时,该RCE漏洞还处于0-day状态,并且影响了Checkbox V6及更早版本。尽管 Checkbox V7 自2019 年开始可用且不受影响,但对Checkbox V6 的官方支持直到7月1日才结束。

CERT/CC的分析师在 5 月份的一份咨询中表示:

“在7.0 版本之前,Checkbox Survey 通过接受一个_VSTATE 参数来实现它自己的VIEWSTATE 功能,然后使用LosFormatter反序列化。由于该数据由Checkbox Survey代码手动处理,因此服务器上的 ASP.NET VIEWSTATE 消息身份验证代码(MAC)设置就被忽略了。没有MAC,攻击者可以创建将被反序列化的任意数据,从而导致任意代码执行。”

Praying Mantis组织似乎对反序列漏洞有着非常深刻地认识,他们在攻击活动中以多种方式利用该机制进行横向移动和持久化。例如,即使新版本的ASP.NET支持 VIEWSTATE 完整性检查和加密,但如果加密和验证密钥被盗或泄露,它们也可被用于重新感染服务器或感染同一集群中托管同一应用程序的其他服务器,因为密钥是共享的。

研究人员表示,“在Sygnia的一项调查中,TG1021利用被盗的解密和验证密钥来利用IIS Web 服务器。VIEWSTATE反序列化漏洞利用的流程几乎与上面解释的VSTATE漏洞相同,只是调整了对VIEWSTATE数据进行加密和签名,而不是对其进行压缩。”

该小组还利用了依赖于序列化的会话存储机制。ASP.NET允许应用程序将用户会话作为序列化对象存储在MSSQL数据库中,然后为它们分配唯一的cookie。当用户的浏览器再次访问应用程序并保存了其中一些cookie时,应用程序将从数据库中加载相应的会话对象并将其反序列化。

攻击者利用此功能进行横向移动,方法是使用对IIS Web服务器(受到上述漏洞影响而受损)的访问权限,以生成恶意会话对象和关联的cookie,并将其存储在Microsoft SQL 数据库中。然后,他们将请求发送到属于同一基础结构并使用同一数据库的其他IIS服务器,并在请求中包含恶意cookie。这迫使运行在这些服务器上的应用程序实例从数据库加载恶意制作的会话对象并将其反序列化,从而导致远程代码执行(RCE)。

研究人员还观察到Praying Mantis利用其他应用程序中的反序列化漏洞,例如 CVE-2019-18935,这也是一个 RCE 漏洞,源于JSON解析中的不安全反序列化,并影响名为 Telerik UI for ASP.NET AJAX 的产品。Telerik是一套广泛用于Web应用程序的用户界面组件。此外,该组织还使用了另外一个影响Telerik的较旧的任意文件上传漏洞(CVE-2017-11317)。

为IIS量身定制的恶意软件框架

 

黑客利用这些RCE漏洞反射性地将恶意DLL加载到易受攻击的Web服务器的内存中。然后,这个DLL又反射性地加载了一个恶意软件组件。反射加载是一种将恶意DLL注入现有进程并Hook其功能的技术。这种技术的好处是某些Windows机制(例如在运行时将DLL注册为模块)被绕过,并且文件实际上并未写入磁盘;缺点是感染缺乏持久性,由于流氓DLL仅存在于RAM中,因此如果重新启动其父进程(parent process),它将消失。由于这种网络服务器的正常运行时间很长,因此用持久性换取隐匿性是一种有效的手段。

除了反射DLL加载器,Praying Mantis有时还使用web shell来加载 NodeIISWeb。当该组织利用CVE-2017-11317等文件上传漏洞而非基于反序列化的远程代码执行漏洞时,这种情况更为常见,因为web shell本质上是上传到服务器文件系统的恶意web 脚本/应用程序,可通过HTTP远程访问。Praying Mantis的web shell通常是短暂存在的,在部署NodeIISWeb后,该组织会立即删除它们。

NodeIISWeb恶意软件与IIS 输入验证功能挂钩,可以读取所有传入服务器的HTTP流量,这为攻击者提供了一种控制恶意软件的方法。由于攻击者可以通过这种HTTP机制发送指令,因此NodeIISWeb不会生成传往可能被流量监控解决方案检测到的命令和控制服务器的传出连接。

也就是说,恶意软件程序为TCP、HTTP 和SQL实现了多种流量转发方法,允许其作为代理或命令和控制通道本身,用于运行在同一网络内受感染服务器上的其他恶意软件实例,而这些实例可能不是直接暴露在互联网上。它还可以执行JScript负载并加载扩展其功能的其他DLL模块。

NodeIISWeb通常用于部署另一个名为“ExtDLL.dll”的自定义Windows 后门,该后门可用于操作文件和目录、收集系统信息、加载和执行DLL并实施各种攻击技术,例如代码注入和令牌操作。该组件还hook并操纵系统上存在的各种安全功能以隐藏其活动,包括防病毒扫描功能、事件日志报告功能、.NET代码信任检查和PowerShell相关的注册表项。

NodeIISWeb和ExtDLL.dll加载的附加DLL模块之一称为“PSRunner.dll”,它允许在主机上运行PowerShell脚本,而无需生成PowerShell进程。另一个称为“Forward.dll”,可以实现HTTP流量转发功能。“PotatoEx.dll”是权限提升工具和Active Directory映射工具,而“E.dll”是生成自定义HTTP响应的组件,允许攻击者验证漏洞是否已在目标IIS服务器上成功执行。

Praying Mantis利用其对受感染IIS服务器的访问权限,来修改现有应用程序的登录页面,以捕获用户凭据,并将其保存在单独的文件中,还部署了公开可用的攻击性安全工具,包括直接加载到内存中而不留痕迹的SharpHound和PowerSploit。该组织还被发现使用泄露的域凭据通过SMB访问内部服务器上的共享文件夹。

Praying Mantis检测和预防

 

由于其内存驻留恶意软件的易失性,以及该组织对操作安全的深刻认识,想要检测Praying Mantis的活动并不容易。Sygnia 研究人员建议修补.NET反序列化漏洞,搜索报告中发布的危害指标,使用旨在检测该组织工具的YARA规则扫描面向Internet的IIS服务器,并积极寻找IIS环境中的可疑活动。

验证ASP.NET VIEWSTATE的使用或相同机制的自定义实现(如 Checkbox Survey中的压缩 VSTATE)对于保护ASP.NET应用程序免受VIEWSTATE反序列化漏洞影响至关重要。IIS配置中的enableViewStateMac变量应设置为“True”,而aspnet:AllowInsecureDeserialization变量应设置为“False”。注册表项AspNetEnforceViewStateMac应设置为“1”,并应小心处理加密和验证键。服务器应使用自动生成的密钥或者IIS服务器上的机器密钥应定期更换,以减少因密钥被盗或泄露而被滥用的可能性。

研究人员表示:

“如果您的 Web 应用程序使用ASP.NET会话状态,请确保只能从合法的网络位置访问数据库。尽可能在不同的IIS服务器/Web应用程序之间分离会话状态MSSQL数据库,或者使用适当的最小CRUD权限创建不同的SQL用户。确保您的.NET Web应用程序使用指定的应用程序池标识以尽可能低的权限运行。这可以增加TG1021组织的攻击难度。”

除了Sygnia发布的报告外,2020年6月,ACSC也发布了一份报告,详细介绍了以澳大利亚公共和私营部门组织为目标的国家支持的威胁组织“Copy-Paste”的策略、技术和程序。报告中称Copy-Paste使用了各种反序列化的利用,特别是Microsoft IIS服务器中的Telerik UI漏洞和VIEWSTATE处理。这与Sygnia观察到的Praying Mantis活动存在部分重叠的妥协和攻击技术指标。两者是否存在联系,暂未可知。

来源:csoonline

原文链接:https://www.freebuf.com/news/282716.html

延伸 · 阅读

精彩推荐