1 概述
近期,安天CERT监测到一起挖矿木马攻击事件,该挖矿木马从2024年3月开始出现,并持续更新攻击脚本。该挖矿木马的典型特点是针对操作系统类型下载对应的挖矿程序、检查系统环境是否有curl、Python、Perl等工具,如果有则使用这些工具下载挖矿程序,如果没有会进行下载适配、根据CPU算力动态调整运行参数,不会饱和使用CPU资源,避免因消耗过多资源被用户感知发现。该挖矿木马因其在脚本中多次出现“app”字符串,故安天CERT将该挖矿木马命名为“app Miner”。
2 攻击流程
app Miner挖矿木马首先会执行一系列功能模块中的功能,如根据CPU线程数估算门罗币(Monero)挖矿的哈希率、根据CPU算力动态调整运行参数、遍历指定目录尝试找到一个足够空间投放挖矿木马的目录、根据受害主机操作系统类型和架构等,生成一个格式化的文件名、查找感染系统中正在运行的竞品挖矿进程等等。之后会从指定的URL上下载挖矿程序、设置挖矿配置文件进行挖矿。该挖矿木马还有很多函数具有多种功能,但默认状态下脚本未开启这些功能或待开发中,其中主要包括计划任务函数、服务函数、进程检查函数等等。
图 2‑1 攻击流程图
3 脚本功能分析
根据CPU线程数估算Monero挖矿的哈希率,然后基于这个哈希率动态计算并选择一个端口号。用于配置一个挖矿程序以选择适当的端口进行通信。这样的设计可能是为了在不同机器上运行时根据机器的不同性能选择合适的设置。
图 3‑1 估算Monero挖矿的哈希率
根据CPU核数的70%,按指定公式调用mathlib计算结果。比如,对于16核CPU,这一结果为4096。通过控制线程数量的方式,让CPU的资源占用不饱和。
图 3‑2 动态调整CPU功率
遍历一系列目录(如$HOME,$PWD,/var/tmp,/dev/shm,/var/run,/tmp),尝试在这些目录中找到一个可写的目录,并检查其是否有足够的可用空间。
图 3‑3 遍历指定目录并查看目录可用空间大小
根据操作系统类型、架构以及是否需要压缩和加密,来生成一个格式化的文件名。该功能通常用于生成特定平台和配置的可执行文件或包的名称,以便在不同环境中识别和使用。
图 3‑4 格式化文件名
查找系统中正在运行的竞品挖矿进程,支持精确匹配和模式匹配。它根据系统上可用的工具(如pgrep、ps、pidof)选择最佳方式进行查找,并在这些工具不可用时,通过手动遍历/proc文件系统进行查找,当查找到竞品挖矿进程后,使用pkill、killall、kill等命令进行结束进程。
图 3‑5 查找正在运行的竞品挖矿进程
更改挖矿程序落地目录的权限。
图 3‑6 更改挖矿程序落地目录的权限
从指定的URL下载挖矿程序,并根据受害者机器上的工具进行下载操作。如wget、curl、perl、Python 2.x和Python 3.x等。
图 3‑7 下载挖矿程序
设置挖矿配置文件,矿池地址为207.180.217.230:80。
图 3‑8 设置挖矿配置文件
4 事件对应的ATT&CK映射图谱
针对攻击者投放挖矿木马的完整过程,安天梳理本次攻击事件对应的ATT&CK映射图谱如下图所示。
图 4‑1 事件对应的ATT&CK映射图谱
攻击者使用的技术点如下表所示:
表 4‑1 事件对应的ATT&CK技术行为描述表
ATT&CK阶段/类别 | 具体行为 | 注释 |
执行 | 利用命令和脚本解释器 | 使用bash脚本命令 |
持久化 | 利用外部远程服务 | 创建服务 |
利用计划任务/工作 | 创建计划任务 | |
提权 | 滥用提升控制权限机制 | 修改文件权限 |
防御规避 | 修改文件和目录权限 | 修改文件权限和目录权限 |
发现 | 发现系统信息 | 发现系统架构等信息 |
影响 | 资源劫持 | 占用CPU资源 |
5 IoCs
IoCs |
157.230.106[.]100 |
111.48.208[.]225 |
207.180.217[.]230 |
185.213.26[.]27 |
199B790D05724170F3E6583500799DB1 |
C0ED4F906576C06D861302E8CF924309 |