标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-1908] 作者: 对不起 发表于: [2018-09-12]
本文共 [625] 位读者顶过
就在两周前,一个新发现的Apache Struts 2远程代码执行漏洞(CVE-2018-11776)被公开披露。仅在一天之后,一位Github 用户就发布了针对此漏洞的概念验证(PoC)漏洞利用代码。随后,另一位Github 用户还发布了一个可利用该漏洞的Python脚本。 [出自:jiwo.org] 近日,F5实验室的威胁研究人员在一篇分析报告中指出,该漏洞已经被用于门罗币挖矿活动,目标指向Linux系统。基于在这场活动中使用的cron(用于建立持久性)和Xhide(用于启动具有虚假进程名称的可执行文件)技术,F5实验室将此活动命名为“CroniX”。 CroniX活动分析与很多其他的Apache Struts 2漏洞一样,CVE-2018-11776漏洞允许攻击者进行对象图导航语言(Object-Graph Navigation Language,OGNL)表达式注入。在这场活动中,注入点位于URL中。 攻击者在注入OGNL表达式时会发送一个HTTP请求,而OGNL表达式的值一旦被计算,就会执行shell命令,以下载并执行恶意文件。
图1:URL请求中解码的漏洞利用payload 位于服务器“/win/checking-test.hta”的一个文件包含了一个Visual Basic脚本,该脚本能够通过调用微软Windows cmd在受感染设备上运行Powershell命令。因此,攻击者似乎意图使用位于同一台服务器上的另一个操作系统来攻击Windows操作系统。
图2:在服务器上找到的一个文件,其中含有一个针对Windows系统的脚本 提高挖矿效率下载的“update.sh”文件是一个bash脚本,将会执行多个步骤来部署加密货币挖掘恶意软件(也称“矿工”)。 这个脚本首先会将内存中“huge page”的数量设置为128。这是第一个能够证明攻击者的目标是挖掘加密货币的线索,而这一步骤很可能与提高挖矿效率有关。
图3:设置“huge pages”以提高CPU的挖矿效率 建立持久性为了建立持久性,恶意软件一共会设置三个cron job(定时任务)。其中两个cron job负责每天下载和执行新的“update.sh”文件。有趣的是,文件的下载会用到明确的服务器IP地址或域名。在下载过程中,恶意软件会使用 “linux”用户代理来作为访问限制机制,而使用其他用户代理的IP访问是被禁止的。 另一个cron job负责启动一个位于“~/.config/java/.conf/upd“的文件(将在稍后分析)。
图4:为建立持久性设置cron job 另外,为了在受感染设备驻留更长的时间,恶意软件还会下载一个名为“anacrond”的文件,该文件会被复制到/etc目录下所有名为“cron.d”的文件夹中,同时,它也会被保存到/etc/cron.d/anacron。该文件中的命令与文件“update.sh”中的命令相似,这些命令用于下载部署的bash脚本并重启挖矿进程。
图5:为获取更长驻留时间的文件“anacrond” 杀死竞争挖矿进程恶意软件还会尝试杀死其他挖矿进程,并删除在之前已安装矿工的二进制文件。就目前而言,这是大多数矿工都会做的一件事。
图6:用于杀死竞争挖矿进程的命令 对于其中一些矿工,攻击者选择了一种更加谨慎的方法——检查进程名和进程的CPU利用率,然后只杀死那些占用CPU资源超过60%的进程。这可能是为了避免杀死某些合法进程,因为一些挖矿进程(如crond、sshd和syslogs)的名称通常与Linux系统上的合法进程的名称相同。
图7:如果CPU占用率用率等于或超过60%,则杀死进程 释放恶意可执行文件一旦干掉了竞争对手,攻击者就会删除旧版本恶意软件的文件,并下载新版本的run和upd bash脚本。
图8:下载新的恶意文件 另外,攻击者还会下载两个额外的二进制可执行文件“xmrig”和“H”,每个文件都有x86和x64版本。
图9:下载的x86和x64版本的恶意可执行文件 “Xmrig”是一个包含预配置(采矿池、用户名、密码等)的矿工,但它并不是原始的XMRig矿工,而是一个名为“XMRigCC”的变种(XMRig的优化版本)。
图10:XMRigCC的菜单 更有趣的是“H”,它是一个旧版本的XHide进程隐藏工具,用于启动具有虚假进程名称的可执行文件。
图11:“H”的内容 “run”脚本用于执行XHide,以启动“xmrig”来进行加密货币挖掘,同时将进程名伪装成“java”。创建的的进程id将写入一个名为“pid”的文件,因此“upd”脚本能够在系统重启之后,重新启动该进程。
图12:“run”脚本使用“XMRig”来运行XHide进程隐藏工具 update.sh文件能够在PasteBin上找到F5实验室在PasteBin上发现了“update.sh”文件的源代码,不过与目前下载的恶意脚本存在一些差异。从PasteBin页面提供的信息来看,这段源代码是在2018年8月16日被上传的。
图13:“update.sh”文件的源代码 采矿作业攻击者与的门罗币(XMR)采矿池“eu.minerpool.pw”进行通信,DNS请求如下所示:
图14:用于获取的采矿池服务器IP地址的DNS查询 一旦获取到了采矿池的域名,矿工就会尝试登陆到采矿池。
图15:“XMRig”矿工尝试登录到采矿池 与其他攻击活动的关联根据恶意软件的部署模式、类似的文件命名(“run”、“upd”、文件夹命名为“32”和“64”),以及XHide进程隐藏工具的使用,F5实验室的研究人员认为这场挖矿活动背后的攻击者与利用CVE-2017-1000353漏洞攻击Jenkins服务器的攻击者极有可能是同一伙人。 在利用CVE-2017-1000353漏洞的活动中,攻击者使用了一个中文Git网站来存放恶意文件。而在这一场活动中,攻击者使用的是一个专门的web服务器,以服务于保存在美国的文件,而使用的.pw域名是通过一家俄罗斯注册机构注册的。
图16:reg.ru注册的.pw域名
图17:攻击者使用美国托管服务来提供恶意文件 结论这是CVE-2018-11776漏洞在被公开披露之后首次被用于实际攻击活动,攻击者在极短的时间内就将公布的POC代码进行了修改并应用于实践。我们强烈建议企业应该尽快为受影响的系统安装安全补丁。同时,选择使用web应用防火墙进行自动保护也可以作为一种临时解决方案。 回想一下,就在几个月以前,美国三大信用评级机构之一的Equifax公司就曾因另一个Apache Struts漏洞(CVE-2017-5638)遭遇了大规模的数据泄露。在这起事件中,共有超过1.43亿消费者的个人信息被曝光。到目前为止,该公司已为善后工作耗费了超过4.39亿美元。 |