Sophos X-Ops对新型恶意软件攻击的调查分析
关键要点
- Sophos X-Ops近期针对一系列恶意软件攻击进行了调查,这些攻击展现出攻击者在隐秘沟通和指令传达方面下了很大功夫。
- 攻击者在受影响设备中安装了至少八种不同类型的恶意文件。
- 攻击者利用了CVE-2022-3236漏洞,并通过修改原有的Java文件来植入恶意代码。
- 调查还揭示了攻击者使用的恶意后门功能及各种类型的木马和远程访问工具。
攻击过程概述
最近,SophosX-Ops调查了一系列新的、有限的攻击,这些攻击使用了独特的恶意软件,暗示它们的创造者和操作者花费了大量时间和精力来创造隐蔽的沟通和命令发放方法。
在调查过程中,我们发现攻击者在受影响的设备中安装了至少八种不同类型的恶意文件。正如我们在之前的中所见,这些攻击者通过修改一些用于SFOS操作系统的文件,来制造部分恶意文件,而其他的则似乎是“商品”Linux恶意软件的近似复制品,例如Gh0stRAT。
接下来是对这些恶意软件及其隐蔽通信方法的分析。
动手入侵
这些攻击开始于利用了CVE-2022-3236漏洞,详细信息见。
SFOS的一部分使用了在设备上运行的JettyWeb服务器下的Java应用程序。攻击者修改了少数的Java文件,以增强该设备的内部功能,并添加了额外的代码。这种方法保留了设备的功能,使其在覆盖原始文件后仍能正常运行。
Java JAR文件通常包含一个或多个被称为.class文件的功能编程文件。我们发现攻击者修改的文件之一是名为servlet-api-3.1.jar
的Java应用程序。攻击者更改了存储在该JAR中的HttpServlet.class
,添加了自己的代码,并将修改后的.class文件重新编译并上传到受影响的设备中。
该JAR会检查服务器可能遇到的HTTP请求头中的方法有效性(例如POST或GET请求)。因此,它位于一个关键的位置,可以检查入站Web流量的特征。
添加的代码使该JAR文件能够充当攻击者的后门。它还会等待用户或管理员尝试登录设备,实时捕获登录名和密码,然后使用自定义算法加密被窃取的凭证数据,并将其写入设备/tmp/目录中的文件中。
后门的功能相当复杂。负责该代码的攻击者在过程中内置了一些保护措施,以确保只有攻击者能够使用后门代码。例如,添加到该文件的代码解析入站请求的头内容,并检查Cookies头中是否存在“JSESSIONID”键。
在此头值下的内容由新代码处理,该代码使用月份和日的数字值计算密钥,从而使解密数据所用的密钥每天都不同,但可以通过该算法预测。
解密的Web请求数据流的首个字节包含一个短值,指向攻击者可以执行的七种不同类型的命令之一。简而言之,木马代码可以列出目录;读取、写入、复制、删除或重命名单个文件;或在设备的原生shell中执行命令。
图 2 通过修改的httpservlet使用的命令“情形”
这种数据并不罕见;JSESSIONID是一种通过cookie传递给Javaservlet的正常、合法的信息类型。使用这种方法指示恶意软件执行某些操作,隐蔽性极强,且在更传统的恶意软件中相当不寻常。
攻击者从木马文件接收有关成功和失败尝试使用木马代码功能的反馈遥测。
攻击者的恶意ELF Shell Stager
在利用过程中,攻击者将通常存在于设备上的合法文件(名为screenmgr.pl 和WebsocketServer.pm )木马化