“匿铲”挖矿木马活动分析

admin 2024年5月10日23:21:15评论11 views字数 5547阅读18分29秒阅读模式
点击上方"蓝字"
关注我们吧!
01
概述

近期,安天CERT通过网络安全监测发现了一起新的挖矿木马攻击事件,该挖矿木马从2023年11月开始出现,期间多次升级组件,目前版本为3.0。截止到发稿前,该挖矿木马攻击事件持续活跃,感染量呈上升态势。主要特点是隐蔽性强、反分析、DLL劫持后门和shellcode注入等,因此安天CERT将该挖矿木马命名为“匿铲”。

在此次攻击活动中,攻击者利用了两个比较新颖的技术以对抗反病毒软件,第一个技术是滥用反病毒软件的旧版本内核驱动程序中的功能来结束反病毒软件和EDR,这个技术通过一个主体的PowerShell脚本、一个独立的PowerShell脚本和一个控制器(内存加载的小型可执行文件)来完成,主体的PowerShell脚本用于下载并安装反病毒软件的旧版本内核驱动程序,独立的PowerShell脚本用于解密并内存加载控制器,控制器用来控制内核驱动程序。虽然被滥用的旧版本内核驱动程序早已更新,但目前仍能被非法利用并有效结束大多数反病毒软件。第二个技术是利用MSDTC服务加载后门DLL,实现自启动后门,达到持久化的目的。这个技术利用了MSDTC服务中MTxOCI组件的机制,在开启MSDTC服务后,该组件会搜索oci.dll,默认情况下Windows系统不包含oci.dll。攻击者会下载后门DLL重命名为oci.dll并放在指定目录下,通过PowerShell脚本中的命令创建MSDTC服务,这样该服务会加载oci.dll后门,形成持久化操作。

经验证,安天智甲终端防御系统不会被反病毒软件的旧版本内核驱动程序所阻断,也能够对该后门DLL的有效查杀。


02
攻击流程

“匿铲”挖矿木马首先会从放马服务器上下载名为“get.png”的PowerShell脚本,解码后执行哈希验证、创建计划任务、禁用系统自带杀毒软件和创建服务等操作。之后会下载“kill.png”脚本和“delete.png”、“kill(1).png”两个压缩文件,脚本解码出shellcode代码,shellcode代码经过解密得到控制器(一个可执行文件)并注入到powershell.exe进程中,两个压缩文件经过解压缩得到反病毒厂商的旧版本内核驱动程序“aswArPots.sys”和“IObitUnlockers.sys”,由控制器调用,终止杀毒软件和EDR程序等。还会根据受害主机自身系统型号下载对应的“86/64.png”的压缩文件,解压缩后会得到oci.dll文件,通过MSDTC服务调用实现DLL劫持后门。在“get.png”脚本中还看到了下载“backup.png”脚本的地址,但下载函数还未实现,可能后续版本会加,该脚本主要功能是发送心跳接收命令等。最后“get.png”脚本会下载“smartsscreen.exe”程序,该程序会下载挖矿程序及其组件进行挖矿。

“匿铲”挖矿木马活动分析

图2‑1 攻击流程图

03

样本梳理与功能分析

3.1 样本梳理

针对该挖矿木马攻击,对其样本及功能进行梳理,如下表所示:

样本名

落地名

样本路径

功能

get.png

不落地

内存中

初始投放载荷,下载后续样本,持久化

backup.png

初始投放载荷没有定义下载该样本,推测后续增加

run.bat

run.bat

C:UsersPublic

powershell命令下载get.png

kill.png

不落地

powershell.exe内存中

终止杀毒软件和EDR等进程

kill.png(1)

aswArPots.sys

C:WindowsSystem32drivers

delete.png

IObitUnlockers.sys

C:WindowsSystem32drivers

强制删除文件和进程

86.png/64.png

oci.dll

C:WindowsSystem32

DLL劫持后门

smartsscreen.png

smartsscreen.exe

C:WindowsFonts

下载挖矿程序等

curl.png

curl.exe

C:WindowsFonts

curl官方文件

config.json

config.json

C:WindowsFonts

挖矿配置文件

taskhostw.png

taskhostw.exe

C:WindowsFonts

XMRig挖矿程序

WinRing0x64/32.png

WinRing0x64/32.sys

C:WindowsFonts

挖矿驱动程序

config.txt

不落地

包含版本信息及样本哈希

表3‑2 挖矿程序中的矿池地址和钱包地址

矿池地址

钱包地址

111.90.143.130:80

ZEPHYR2ty7pYE3wUdjLn1QKsFLiatXdMZHZzQSJToaoFM1LvWPzuqsvdtLzXRRk2hhFTxLCvLnAr4XJBCvrVfUeP8F6XC7QLgza47

93.95.228.47:80

zephyr.herominers.com:1123

3.2 样本功能分析

3.2.1 核心脚本模块分析(get.png)


利用系统自带的工具删除指定计划任务、结束指定进程和停止指定服务,疑似清理与其存在竞争关系的挖矿木马持久化操作。

“匿铲”挖矿木马活动分析图3‑1 删除计划任务等

遍历所有可能的驱动器字母(从A到Z),检查每个驱动器是否有足够的可用空间。如果找到符合条件的驱动器,则返回该驱动器的名称,如果遍历完所有驱动器都没有找到,则返回空。

“匿铲”挖矿木马活动分析3‑2 遍历驱动器

清理C:WindowsInstaller目录中的空间,查找该目录中最大的文件。搜索C:驱动器根目录和除了一些系统目录之外的所有子目录中具有特定扩展名(.exe、.msi、.iso、.7z、.rar、.zip)的最大文件。如果找到了最大的文件,将其删除,以便释放空间。

“匿铲”挖矿木马活动分析

3‑3 释放空间

定义了所需的空间量为10MB,如果找到了一个合适的驱动器,函数将尝试创建一个隐藏的目录$RECYCLE.BINFonts来保存文件。

“匿铲”挖矿木马活动分析图3‑4 下载文件存放位置
尝试通过DoH服务获取域名对应的IP地址,如果失败,则尝试使用传统的DNS查询方法。如果两种方法都失败,则使用备份的IP地址。目的是确保可以获取到用于HTTP和FTP下载的域名的IP地址。

“匿铲”挖矿木马活动分析
图3‑5 获取域名对应IP地址

通过字符串替换操作来更新配置信息,以确保配置文件中的下载地址与实际的下载服务器地址一致。添加一个时间戳参数,通常用于确保每次请求都会加载最新的内容,而不是从缓存中加载。将HTTP地址转换为FTP地址,并移除了可能存在的时间戳参数。

“匿铲”挖矿木马活动分析
图3‑6 更新配置信息

创建多个计划任务,分别执行后续下载到的载荷。计划任务名分别为“OneDriveCloudSync”、“DefaultBrowserUpdate”、“OneDriveCloudBackup”,分别对应执行更新程序、自身文件、smartsscrren.exe。

“匿铲”挖矿木马活动分析图3‑7 创建计划任务
清理自身旧的进程。

“匿铲”挖矿木马活动分析
图3‑8 清理自身旧的进程
从远程服务器获取配置信息,并确保配置信息中的某些字符串哈希值存在。如果这些字符串存在,函数将停止循环,并继续执行后续的脚本操作。如果字符串不存在,尝试使用FTP协议再次下载配置信息。

“匿铲”挖矿木马活动分析
图3‑9 验证配置信息是否一致
配置信息如下,其中包括curl、xm、xmc、xms、smart、scan、ms86、ms64、dkill和ddelete字符串。

“匿铲”挖矿木马活动分析

图3‑10 配置信息

禁用Windows Defender的实时监控,关闭rpc服务,清理系统的垃圾文件和日志等。

“匿铲”挖矿木马活动分析
图3‑11 禁用系统自带杀毒软件
从指定的URL下载文件并保存到C:WindowsSystem32drivers,创建并启动名为aswArPots和IObitUnlockers的服务。

“匿铲”挖矿木马活动分析
图3‑12 创建服务
停止并重启MSDTC服务,将下载的适用于主机系统的x86.png或x64.png重命名为oci.dll并保存在C:WindowsSystem32中,通过MSDTC服务实现DLL劫持后门。

“匿铲”挖矿木马活动分析
图3‑13 DLL劫持后门
最后下载并运行多个后续组件,具体如图所示。

“匿铲”挖矿木马活动分析
图3‑14 下载后续组件

3.2.2 远控模块分析(backup.png)


该脚本用于将日期时间、受害者主机名进行2次BASE编码并回传至攻击者服务器,不断地向服务器发送心跳信号,接收命令,执行这些命令,并将命令的输出结果发送回服务器。

“匿铲”挖矿木马活动分析
图3‑15 发送心跳包等至服务器

3.2.3 对抗模块分析(kill.png)


该脚本实际为压缩和BASE64编码后的PowerShell脚本,该脚本会解密多层载荷,并在最后将一段shellcode代码注入到powershell.exe进程中。

“匿铲”挖矿木马活动分析
图3‑16 进程注
shellcode会解密内嵌的一段PE再次实现内存加载。最终加载的PE数据为白名单驱动利用模块,该模块会伪装白名单通信的驱动协议,操纵底层驱动利用系统权限删除、终止指定的进程或文件,大部分进程为杀毒软件、防火墙、沙箱等安全软件的核心进程。该可执行文件旨在整理正在运行的进程列表,然后将它们与Anti-Virus和EDR进程名称的CRC64校验和值的混淆硬编码列表进行比较。如果任何进程名称与硬编码列表中的条目直接关联,则会将I/O控制(IOCTL)代码发送到Avast驱动程序,从而导致进程终止。部分被列入攻击者处理名单的进程名如下:

“匿铲”挖矿木马活动分析
图3‑17 反杀毒软件驱动

3.2.4 自我更新模块分析(86/64.png)


msdtc目录下具有两个文件:“86.png”、“64.png”。分别对应32位环境与64位环境,两个样本在代码结构方面完全一致,仅在编译时选择的目标系统位数不同。该文件仅负责从攻击者服务器重新下载“get.png”并执行,用于自我更新。

“匿铲”挖矿木马活动分析

图3‑18 自我更新下载get.png

3.2.5 挖矿组件下载器模块分析(smartsscreen.exe)


该文件为挖矿组件的下载模块,由Golang语言开发,运行后会访问攻击者服务器下载挖矿各个组件等。

“匿铲”挖矿木马活动分析
图3‑19 下载后续挖矿组件
该组件运行后会访问攻击者服务器下载“config.txt”、“curl.png”用于校验挖矿组件HASH与下载挖矿组件。随后分别访问下载XMRig官方开源挖矿组件。其中“taskhostw.png”为挖矿程序,“config.json”为挖矿配置文件,“WinRing0x64.png”为XMRig运行所需驱动。

“匿铲”挖矿木马活动分析
图3‑20 下载挖矿组件网络数据
04

挖矿木马落地排查与清除方案

4.1 挖矿木马落地识别


  1. 计划任务

计划任务名

对应样本路径

DefaultBrowserUpdate

C:UsersPublicrun.bat

OneDriveCloudBackup

cmd.exe /c start C:WindowsFontssmartsscreen.exe

OneDriveCloudSync

cmd.exe /c C:WindowsSystem32sc.exe start msdtc


2. 文件

文件名

路径

smartsscreen.exe

C:WindowsFonts

taskhostw.exe

WinRing0x64/32.sys

curl.exe

config.json

run.bat

C:UsersPublicrun.bat

oci.dll

C:WindowsSystem32

aswArPots.sys

C:WindowsSystem32drivers

IObitUnlockers.sys


3. 服务

服务名

对应注册表

MSDTC

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSDTC


4. 进程

进程名

路径

powershell.exe

内存执行

smartsscreen.exe

C:WindowsFonts

taskhostw.exe


5. 网络

IP

功能

111.90.158.40

挂马服务器

111.90.143.130:80

矿池地址

93.95.228.47:80

4.2 清除方

建议采用安天系统安全内核分析工具(ATool)*免费版(下载地址:https://vs2.antiy.cn/)进行检测查杀,首先删除三个计划任务,计划任务名为DefaultBrowserUpdate、OneDriveCloudBackup和OneDriveCloudSync。

“匿铲”挖矿木马活动分析
图4‑1 删除计划任务

结束相应进程,smartsscreen.exe、taskhostw.exe和powershell.exe。

“匿铲”挖矿木马活动分析

图4‑2 结束相应进程

删除挖矿程序等对应目录中的样本。

“匿铲”挖矿木马活动分析

图4‑3 删除对应目录样本

删除对应的驱动文件,aswArPots.sys和IObitUnlockers.sys。重启MSDTC服务,如不是自身创建,可对应删除该服务。

“匿铲”挖矿木马活动分析

图4‑4 删除对应驱动文件

05

事件对应的ATT&CK映射图谱

针对攻击者投放挖矿木马的完整过程,安天梳理本次攻击事件对应的ATT&CK映射图谱如下图所示。

“匿铲”挖矿木马活动分析

图5‑1 事件对应的ATT&CK映射图谱

攻击者使用的技术点如下表所示:

表5‑1 事件对应的ATT&CK技术行为描述表

ATT&CK阶段/类别

具体行为

注释

执行

利用命令和脚本解释器

使用PowerShell脚本命令

持久化

执行流程劫持

利用oci.dll劫持

利用计划任务/工作

创建计划任务

防御规避

进程注入

shellcode注入到powershell.exe中

修改注册表

修改注册表

反混淆/解码文件或信息

反混淆PowerShell命令

使用Rootkit

aswArPots.sysRootkit监控

削弱防御机制

禁用Windows Defender

发现

发现文件和目录

查找指定目录最大文件

发现系统时间

获取系统时间

命令与控制

编码数据

回传编码数据

影响

资源劫持

占用CPU资源

原文始发于微信公众号(安天集团):“匿铲”挖矿木马活动分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月10日23:21:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   “匿铲”挖矿木马活动分析https://cn-sec.com/archives/2727001.html

发表评论

匿名网友 填写信息