标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-1198] 作者: ecawen 发表于: [2017-12-22]
本文共 [532] 位读者顶过
F5研究员发现了一种新型Apache Struts 漏洞利用。这种恶意行动利用NSA EternalBlue 和 EternalSynergy两种漏洞,运行于多个平台,目标为内部网络。 研究人员将其命名为“Zealot”,因为其zip文件中包含有NSA所发布的python脚本。随着研究的深入,此文章会进一步更新,目前我们所知道的有:
介绍研究员第一次发现此Apache Struts活动时,这个恶意活动看似是自2017年3月首次发现后便广泛传播,被用来利用所有存在Jakarta Multipart Parser attack (CVE-2017-56381) 漏洞的服务器。Zealot 同时还利用了DNN 漏洞(CVE-2017-98222),这个漏洞于2017年7月被首次发现。 Zealot野心勃勃的利用这两个漏洞,将目标指向Windows 和 Linux 系统。如果这些请求分开发送,我们也可以把它看成发送同样载荷的两个不同的行动。 但是仔细看一下这些高度模糊的载荷,我们发现这远非一个简单的攻击,它更复杂,在更多平台攻击,可以横向位移,且对NSA的EternalBlue 和 EternalSynergy两种漏洞 做了升级。 虽然目前Zealot活动只是在挖门罗币,但是利用这些已经损坏的系统,他们可以为所欲为。 目标 Apache Struts Jakarta Multipart Parser (CVE-2017-5638)
攻击始于网络扫描和两个HTTP请求。其中一个请求便是臭名昭著的 通过内容类型标头(Content-Type header)利用Apache Struts 漏洞。大多数Apache Struts 漏洞活动针对的目标要么是Windows或是Linux平台,而Zealot有载荷,目标是这两个平台。[出自:jiwo.org] 如果服务器很脆弱,那就会执行JAVA,损害底层操作系统。 Linux 被利用后针对Linux平台,该恶意行动会在后台使用“nohup”指令,执行shell指令,即使shell被关闭,该进程依然会继续运行。该指令会下载并运行一个spearhead bash脚本。 下载和执行方法Zealot会通过几种方法来捕捉该脚本。首先,它会通过TCP 插口链接一个远程服务器,将收到的数据重新导向shell。如果失败,Zealot将使用“curl”和“wget”工具下载并执行一个名为“larva”的文件,然后立刻删掉。
图2 Shell 指令 捕捉、执行larva bash 脚本 这些下载和执行技巧被用用于后来所有使用的恶意软件,作者将之归类为“tcp”和“http”下载单元。 “larva”spearhead Deliveries下载的bash脚本会通过测试之前定义的mutex(互斥体,21915)是否存在,来检查该机器是否已被感染。如果存在,则终止,否及将绕一圈继续执行。
然后它会使用同样的下载和执行技巧,捕捉一个名为“mule”的文件,这是一个加密货币挖矿机的恶意软件。
接下来,它会将一个内置的64进制模糊python代码 注入一个新的Python进程。
Little Snitch 和未知类别可以看到,这个python代码会检查是否“Little Snitch” 进程是否在执行(“Little Snitch”是一个针对mac OS 的防火墙设定服务 )。如果在执行,那么python代码会停止。如果未执行,那么它会向C&C服务器发送请求,捕捉另一段python代码。
该脚本与服务器交流的方式远比一般僵尸网络要复杂的多。发送请求给 C&C服务器后,会增加特定用户代理和Cookie headers。这样的话,任何试图通过个人浏览器或工具进入C&C 服务器的人都无法获得与恶意软件相同的响应。
收到的内容被RC4 密码加密过,一般的网络检测设备只能看到内容,但是无法研究或者扫描。只有脚本有密钥。而此次我们收到的是另一段Python代码,可用RC4 密码解密,解密后立即执行。
Windows 被利用后如果检测到Windows,STRUTS 载荷会通过一种隐蔽的方法运行一个PowerShell interpreter,即64进制编码的代码。一旦被解码2次,就会出现混淆脚本。去混淆之后,就能发现一个URL,进入一个文件,而这个文件是从另一域名下载的。
加密货币矿机的DLL注入该下载的文件,是一个更加模糊的PowerShell 脚本“scv.ps1”,一旦去混淆,整个过程都明了了。 主要的部署程序将开始下载矿机恶意软件并执行。然后下载一个相同的恶意软件作为DLL,并使用Reflective DLL注入技巧,将恶意软件注入进更多的PowerShell 进程中。 在内网传播、繁殖如果windows设备上未安装 python 2.7,它会下载一个python 安装包并执行。然后下载主要的python 模块(“probe.py”),将感染传入内网。该脚本使用“pyminifier”进行混淆,这是一个Python代码最小化,混淆和压缩的公共包。原脚本是一个64进制编码的脚本,压缩过20次。
“probe.py” 脚本决定该平台是32位或64位的,还有底层操作系统。
如果你对该变体和相应的数值很熟悉的话,那你应该和攻击者一样,也是星际争霸的粉丝了。 Zealot, Raven, Observer, and Overlord都是该游戏中的典型人物。 随着漏洞利用在windows设备上的进行,它会下载 “zealot.zip” 和“raven64.exe”文件。 “zealot.zip” 包含有几个python脚本和函数库,攻击者的脚本全部都用 “pyminifier”工具混淆了。
“raven64.exe”会扫描内网的445端口,并触发 zealot.py,向win7和win8系统中注入3中不同的shellcode,以利用 EternalSynergy 和 EternalBlue两个漏洞。
注入的shellcode一旦成功执行,它会开始运行PowerShell,下载 相同的“scv.ps1” 代理。不同的是,这一次是不同的服务器。
与EternalBlue漏洞利用使用外部文件作为他们的shellcode不同,EternalSynergy 漏洞利用有内置shellcode,且试图从另一个服务器下载并执行一个名为“minerd_n.ps2”的PowerShell脚本。 矿机“mule” 恶意软件是一个专挖门罗币的恶意软件。门罗币因其高匿名性的特点,已成为网络犯罪的一个热门货币。向特定矿机地址所支付的金额高达约8,500美元,目前,尚不清楚此次行动可以赚多少钱。
Leveraging Off-the-Shelf ToolsZealot攻击者使用了公共EmpireProject,这是一个PowerShell和Python 漏洞利用后期代理。
DotNetNuke Exploitation (CVE-2017-9822)Zealot攻击者发送的另一个指令是利用DotNetNuke,一个基于ASP.NET的内容管理系统,通过一个易受攻击的DNNPersonalization cookie(CVE-2017-9822)发送一个序列化的对象。
为了获得任意的代码执行,攻击者使用ASP.NET“ObjectDataProvider”小工具和“ObjectStateFormatter”格式化工具来嵌入另一个对象并调用一个shell。 “ObjectStateFormatter”提供了第二级混淆,因为嵌入对象是64进制编码。 被调用的shell将执行一个base64编码的PowerShell脚本,而这个脚本也是通过Apache Struts漏洞传递的。
结论Zealot似乎是第一个使用NSA漏洞在内部网络中传播的Struts活动。 还有其他类似NotPetya和WannaCry勒索软件的恶意软件,以及Adylkuzz cryptominer通过直接扫描互联网来攻击中小企业,利用ShadowBrokers发布的NSA工具进行攻击。 然而,Zealot运动似乎正在打开新的攻击载体,通过网络应用程序漏洞自动在内部网络上传播恶意软件。 目前,如果您尚未使用CVE,请立即修补您的系统,并强烈考虑实施Web应用防火墙以实现自动化保护。 |