“漏洞利用之王”HolesWarm挖矿木马强势来袭

概述

近日,捕获到HolesWarm挖矿家族的最新变种,HolesWarm也被称为AutoUpdate,首次披露于今年6月,是一个更新迭代十分快速的挖矿家族,其使用Golang编写,攻击目标同时覆盖Windowslinux双平台,除挖矿外还会窃取主机账户的登陆凭证等信息。本次更新,新增19种漏洞利用手法,横向攻击模块更是达到了31个,无愧于“漏洞利用王者”的称号。

首次披露该家族分析文章:支持双系统挖矿,警惕新型AutoUpdate挖矿病毒入侵

漏洞利用模块更新

本次更新漏洞利用模块新增19种,算上之前版本的漏洞利用模块一共31种,漏洞利用模块更新情况如下:

历史版本漏洞 本次新增漏洞
Docker未授权命令执行攻击 泛微OA代码执行漏洞
Jenkins 未授权命令执行攻击 致远OA未授权漏洞
Shiro 反序列化 RCE weblogic (CVE-2017-10271)
Spring boot actuator RCE mongo-express RCE漏洞(CVE-2019-10758)
Struts2全系列(s008-s057)漏洞 Jupyter Notebook 未授权访问漏洞
Tomcat 爆破攻击 Apache Flink任意文件读写(CVE-2020-17518/19)
Weblogic RCE( CVE-2020-14882) Nexus Repository Manager 3远程命令执行(CVE-2019-7238)
XXL-JOB Apache ActiveMQ远程代码执行漏洞 (CVE-2016-3088)
泛微OA E-cology Bsh 命令执行 Apache Spark 未授权访问漏洞
用友bsh.servlet.BshServlet 命令执行 Hadoop Yarn REST API未授权漏洞
用友GRP-U8注入-命令执行 万户网络-ezOFFICE 漏洞
致远OA htmlofficeservlet任意文件写入 JBoss HttpInvoker反序列化漏洞(CVE-2017-12149)
致远OA-ajax.do文件上传 Confluence注入漏洞(CVE-2021-26084)
YAPI接口管理平台RCE
ShowDoc前台文件上传漏洞
Fastjson 反序列化(CVE-2017-18349)
ThinPHP代码执行漏洞

病毒攻击流程

流程图

样本详细分析

前置Loader

Windows:

当远程漏洞利用入侵成功后,植入名为loader.ps1/loader.bat脚本文件,脚本文件再下载主体控制模块services.exeC:/Windows/Temp/.git/目录下,并对该目录进行隐藏。

Linux:

当远程漏洞利用入侵成功后,植入名为loader.sh/loader.py脚本文件,脚本文件再下载主体控制模块kworkers~/.git目录下,并对该目录进行隐藏。

主体控制模块

Services.exe和kwokers分别是WindowsLinux的主体控制模块,其功能是一致的都是根据配置文件windowsupdatev1.json下载、执行更新其他功能模块,如挖矿模块dbus/update.exe、横向传播模块autoupdate等。

windowsupdate.json

windowsupdatev1.json配置文件如下图:

  • filename字段为要下载的模块名称;
  • handle字段为要执行的动作(如下载、下载执行、更新等);
  • url字段为下载的uri;
  • ver字段为对应的版本信息。

windowsupdate_json

横向传播模块

Autoupdate

横向传播模块autoupdate,先对内网网段进行端口扫描,并识别内网的http/https对应的服务是否存在漏洞,端口扫描如图:

nat

扫描识别对应的服务,如图:

扫描服务

然后再用对应的漏洞利用模块进行攻击,如图:

漏洞利用

sshkey.sh

针对Linux平台,除了autoupdate外,还会下载sshkey.sh,通过该脚本遍历目录搜索失陷主机曾经登陆过的主机列表、曾使用的用户名以及ssh key,并尝试使用这些用户名和密钥登陆其他主机,进一步进行横向传播,当登陆成功便下载执行前置loader。

sshkey

进程隐藏模块

针对Windows平台

Service.exe下载inj.exe和runtime.dll,来实现对挖矿模块updater.exe、横向传播模块autoupdate.exe以及主体控制模块service.exe进程进行隐藏。其中runtime.dll是开源的进程隐藏框架,通过inj.exe将runtime.dll注入到任务管理器进程,该dll再通过Hook Native API NtQuerySystemInformation,来实现进程隐藏。

runtime_dll

针对Linux平台

Kworkers下载hideproc.sh进程隐藏脚本,该脚本下载processhide.c隐藏进程源文件,再将源文件编译成libc2.28.so,最后将libc2.28.so添加到系统的ld.so.preload文件,即实现启动进程时自动载入该链接库实现进程隐藏。

libc

隐藏的进程为:主体控制模块kworkers,挖矿模块dbus以及横向传播模块autoupdate。如图:

linux隐藏进程列表

登陆凭证窃取

针对Windows平台

主体控制模块service.exe会下载procdump文件,将系统进程lsass.exe进行内存dump,然后将dump下来的文件上传至C2服务器,服务器最终返回用户名密码信息,通信流量如图:

上传dump内存文件如图:

dump

返回用户名密码如图:

password

针对Linux平台

横向传播模块autoupdate通过遍历文件,查找云服务器的访问密钥Access key和Secret key(当获取AK后便能够调用云账号下的所有资源和功能),当找到AK/Sk便会将数据上传至C2服务器,如图:

AK_SK

挖矿模块

Windows端下载update.exe挖矿模块进行挖矿,Linux端下载dbus挖矿模块进行挖矿。两文件本质都是开源矿机XMRig,该病毒应该使用的是代理矿场,矿场地址便是其C2服务器:m.windowsupdatesupport[.]org:443,配置信息如图:

XMIRGconfig

IOCs

MD5:

33ae688e5e0ca5116666209be3c7ab2b(.linuxhash.txt.gz)

24a46fbf1ebbfde1fcb26b4f9268e6ff(autoupdate)

956142206f9c8e8ac54b0d337e4fbbc8(autoupdate.exe)

f0fb00512f97ba62d5c11d166d7df31e(check_lin.data)

d108043e12850b9a08f39f0dc4d6779b(check_win.data)

423d3ade2f14572c5bd5f546973eb493(download)

d96579fff7159cc5fb77ccfcf66c88d3(dubbo.jar)

0c79a32f44ce28d2e6017b0f2e7dc76e(filehash.py)

fbf00713d1257f176fc1e08de8c7e72a(hideproc.sh)

9d294620989e33bb3ed4b3ca7e381cc0(kworkers)

9f26ca80453eca0a47480ede35b72915(loader.ps1)

9118b07f39774b0d42dc3d2fe22e2748(loader.py)

d1e6782be9c399dc6fcf591bf6330e9b(loader.sh)

6ed4109ad0694958942a64ff27c918bd(sshkey.sh)

0cb875e4506eef89498bdf2e22c8f49f(uninstall.sh)

e1976a2e8d8e0bd4bf5a31ee71488780([kmsgds])

2c27915a1ac396a6d573dadf58ded310([scsi_mas_948])

2139d19485e5cf5bf883b44ccb066eb0([scsi_mas_948]_el6)

Domain:

m.windowsupdatesupport.org

URL:

http://m.windowsupdatesupport.org/d/processhider.c

http://m.windowsupdatesupport.org/d/windowsupdatev1.json

http://m.windowsupdatesupport.org/d/.linuxhash.txt.gz

http://m.windowsupdatesupport.org/d/[kmsgds]

http://m.windowsupdatesupport.org/d/[scsi_mas_948]

http://m.windowsupdatesupport.org/d/[scsi_mas_948]_el6

http://m.windowsupdatesupport.org/d/autoupdate

http://m.windowsupdatesupport.org/d/download

http://m.windowsupdatesupport.org/d/sshkey.sh

http://m.windowsupdatesupport.org/d/loader.ps1

http://m.windowsupdatesupport.org/d/loader.py

http://m.windowsupdatesupport.org/d/loader.sh

矿池地址:

m.windowsupdatesupport.org:443