antiylab
- 关注
1.引言
随着近几年区块链技术和加密货币等虚拟货币的兴起,挖矿木马的开源导致获取挖矿木马的成本下降。大量黑产组织持续运营挖矿木马,也有不少其他黑产组织将目标转向虚拟货币市场,导致挖矿木马的持续活跃。2021年下半年,国家发文整治虚拟货币“挖矿”活动的通知,明确要求整治虚拟货币挖矿活动,打击挖矿活动已然势在必行。在这一年里挖矿整治活动效果显著,政企和高校等企事业单位挖矿木马数量持续降低。虽然今年加密货币行情不及往年,但挖矿木马仍有利可图。2022年还是有很多小型挖矿木马家族兴起,例如Hezb[1]、“1337[2]”和Kthmimu[3]等挖矿木马家族等。
安天CERT将近几年历史跟踪储备的典型流行挖矿木马家族组织梳理形成专题报告,在未来几个月依次发布,并持续追踪新的流行挖矿家族。专题报告将详细介绍挖矿木马家族历史演进、详细分析家族样本迭代版本、历史攻击事件梳理、感染后排查手段以及公布更多的IoCs,另外我们也会不断完善自身安全产品能力,采取有效技术方案解决挖矿木马的检测和清除,帮助政企单位有效防护和清除挖矿木马。
2.挖矿木马简介
2.1 什么是挖矿
所谓挖矿,是指透过执行工作量证明或其他类似的电脑算法来获取虚拟货币,矿代表的是虚拟货币,挖矿的工人通常称为矿工。而挖矿木马是通过各种手段将挖矿程序植入受害者的计算机中,在用户不知情的情况下,利用受害者计算机的运算力进行挖矿,从而获取非法收益。这类非法入侵用户计算机的挖矿程序被称作挖矿木马。
挖矿方式有两种:一种是solo式(直接连入中心网络工作),产出收益均归自己所有;另一种是连入矿池,收益与矿池分成。由于连入矿池的技术难度较低并且收益相对稳定,所以挖矿木马会选择这种方式。挖矿类型也有两种:一种是被动型挖矿,在用户不知情的情况下被植入挖矿程序,获取的虚拟货币归植入挖矿程序的入侵者所有;另一种是主动型挖矿,人员主动利用计算资产运行挖矿程序,获取的虚拟货币归计算资产所有者或使用者所有。挖矿的本质是计算符合条件的hash值并返回,采用的方式为暴力破解式计算,主要特征表现为消耗主机资源,浪费用户电量。
2.2 为什么挖矿活动会日益兴盛?
将其与同样很流行的勒索活动进行对比可以发现,相对于勒索软件,挖矿活动收入更加稳定。在勒索事件中,一方面很难精确定位加密到有重要内容的主机,另一方面用户交付赎金后又不能保证一定得到解锁服务,这就导致了勒索活动的规模和获得的赎金严重不成正比。
而在挖矿活动中,只要运行在计算机上就可以在矿池中获得shares(具体情况要根据矿池的分配模式)并转换成收益。挖矿的难度也比勒索活动要低,其大部分会使用开源的程序并注册一个钱包地址,挖矿过程中不需要投入其他精力便可坐享其成。
另外,虚拟货币的增值性和匿名性也是促使挖矿木马兴盛的原因之一。通过虚拟货币不仅可以逃避现实世界的金融追查手段而且还获得了具有增值潜力的货币,可谓一箭双雕,这也是挖矿木马更喜欢匿名货币(例:门罗币)的原因。
2.3 挖矿木马的危害
通常情况下,受害者会认为挖矿木马只是会让操作系统反应迟钝,并不会对自身造成太大的影响,但是挖矿木马除了会让系统卡顿之外,还会降低计算机设备性能和使用寿命,危害企业运营,浪费能源消耗,不仅如此,最重要的是现在的挖矿木马普遍会留置后门,变成攻击者的僵尸网络,以此作为跳板,攻击其他计算机等。所以现在的挖矿木马已经不单单是挖矿这么简单的操作,已经逐步开始利用挖矿木马谋取更多利益。
3.Outlaw(亡命徒)挖矿僵尸网络概述
Outlaw挖矿僵尸网络最早于2018年被发现,主要针对云服务器从事挖矿活动,持续活跃。疑似来自罗马尼亚,最早由趋势科技将其命名为Outlaw[6],中文译文为“亡命徒”。该挖矿僵尸网络首次被发现时,攻击者使用Perl语言的后门程序构建机器人,因此被命名为“Shellbot”。其主要传播途径是SSH暴力破解攻击目标系统写入SSH公钥,以达到长期控制目标系统的目的,同时下载基于Perl脚本语言编写的后门和开源门罗币挖矿木马。采用Perl语言的后门组件可以发动DDoS攻击,利用僵尸网络通过DDoS服务和挖矿程序来获利。例如,2021年7月[7],Outlaw挖矿僵尸网络对大量云主机发起攻击并植入僵尸网络程序,被感染主机中存在大量SSH暴力破解记录,且被植入挖矿程序、写入SSH公钥。
Outlaw挖矿僵尸网络在2018年时使用Shellshock漏洞和SSH暴力破解进行分发,Shellbot后门程序利用物联网(IoT)设备和Linux服务器上的常见命令注入漏洞进行感染。在2019年之后,只使用SSH暴力破解进行分发。Outlaw挖矿僵尸网络通过SSH暴力破解攻击,访问目标系统并下载带有Shell脚本、挖矿木马、后门木马的TAR压缩包文件,然后通过执行远程命令来下载和执行恶意程序。2022年监测该挖矿组织仍然持续保持活跃,主要攻击云主机。
4.Outlaw挖矿僵尸网络介绍
Outlaw挖矿僵尸网络首次被发现于2018年11月,当时其背后的攻击者只是一个通过漏洞入侵IoT设备和Linux服务器并植入恶意程序组建僵尸网络的组织,主要从事DDoS攻击活动,在暗网中提供DDoS出租服务。在后续的发展过程中,受虚拟货币升值影响,也逐步开始在僵尸网络节点中植入挖矿木马,并利用僵尸网络对外进行渗透并扩张,获得更为庞大的计算资源,旨在挖矿过程中获取更多的虚拟货币。
组织名称 | Outlaw挖矿僵尸网络 |
组织介绍 | 一个通过漏洞利用和SSH暴力破解传播基于Perl语言编写的Shellbot而组建的僵尸网络,后期开始投放挖矿木马获利 |
首次披露时间 | 2018年11月1日 |
首次披露厂商 | 趋势科技 |
归属国家 | 疑似罗马尼亚 |
命名原因 | 源自罗马尼亚语haiduc的翻译,该组织主要使用的黑客工具Haiduc |
威胁类型 | 僵尸网络、挖矿木马 |
针对目标 | Linux、IOT |
传播途径 | Shellshock(CVE-2014-7169)漏洞、Drupalgeddon2漏洞(CVE-2018-7600)漏洞和SSH暴力破解,主要采用后者,漏洞利用只在初期使用过 |
组织组件 | 隐藏进程工具(XHide)、SSH暴力破解工具(Haiduc、ps、tsm)、Shellbot程序、挖矿木马(Xmrig) |
版本迭代 | 该僵尸网络样本共有5个版本迭代,主要区别在于功能的新增,破解工具替换,破解工具功能的变化上 |
分析时发现Outlaw挖矿僵尸网络在更新攻击组件后会有显著特征,如母体文件文件名分别为“dota.tar.gz”、“dota2.tar.gz”和“dota3.tar.gz”,所以我们将其命名为第一版本、第二版本和第三版本,在第一版本之前还发现两次更新活动特征,将其命名为第零版本和第零版本变种。
Outlaw挖矿僵尸网络自2018年11月开始首次出现第零版本和后续的第零版本变种,利用Shellshock(CVE-2014-7169)漏洞、Drupalgeddon2漏洞(CVE-2018-7600)漏洞和SSH暴力破解进行传播,使用的攻击武器为自研后门程序Shellbot、扫描暴力破解工具Haiduc和隐藏进程工具XHide,主要攻击平台为Linux,还有少量IoT设备,释放挖矿程序,主要挖取以太币和门罗币。在2019年3月出现第一版本,主要使用SSH暴力破解进行传播,攻击武器有自研后门程序Shellbot和扫描暴力破解工具tsm,主要攻击平台为Linux以及IoT设备。2019年6月出现第二版本,该版本周期时间短,可用性不高,在分析时发现很多脚本均未成功执行,故猜测该版本很有可能是测试版本,除扫描暴力破解工具换成ps外,其它均与第一版本一致。2020年7月至今,均使用第三版本进行攻击,该版本功能丰富,工具齐全,经过几个版本迭代,已经非常成熟,这个版本也是至今为止存活最久的一个版本,使用工具和传播方式等与之前几个版本并无明显变化。
图4‑1 Outlaw挖矿僵尸网络(变种/发展)时间线
5.事件对应的ATT&CK映射图谱
攻击者针对目标系统投放挖矿木马,梳理本次攻击事件对应的ATT&CK映射图谱如下图所示。
图5‑1 事件对应的ATT&CK映射图谱
攻击者使用的技术点如下表所示:
表5‑1 事件对应的ATT&CK技术行为描述表
ATT&CK阶段/类别 | 具体行为 | 注释 |
侦察 | 主动扫描 | 扫描22端口 |
初始访问 | 利用外部远程访问 | 利用SSH远程访问 |
执行 | 利用命令和脚本解释器 | 使用shell脚本 |
持久化 | 利用外部远程服务 | 利用SSH公钥持久化 |
利用计划任务 | 创建计划任务 | |
防御规避 | 混淆文件或信息 | 使用base64混淆文件 |
隐藏行为 | 使用hide隐藏工具隐藏进程 | |
凭证访问 | 暴力破解 | SSH暴力破解 |
网络嗅探 | 扫描特定端口 | |
命令与控制 | 使用应用层协议 | 使用IRC协议传输 |
影响 | 端点侧拒绝服务(DoS) | Shellbot命令可发起DDoS攻击 |
资源劫持 | 占用CPU资源 |
6.防护建议
针对非法挖矿安天建议企业采取如下防护措施:
1.安装终端防护:安装反病毒软件,针对不同平台建议安装安天智甲终端防御系统Windows/Linux版本;
2.加强SSH口令强度:避免使用弱口令,建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
3.及时更新补丁:建议开启自动更新功能安装系统补丁,服务器应及时更新系统补丁;
4.及时更新第三方应用补丁:建议及时更新第三方应用如WebLogic等应用程序补丁;
5.开启日志:开启关键日志收集功能(安全日志、系统日志、错误日志、访问日志、传输日志和Cookie日志),为安全事件的追踪溯源提供基础;
6.主机加固:对系统进行渗透测试及安全加固;
7.部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。安天探海威胁检测系统(PTD)以网络流量为检测分析对象,能精准检测出已知海量恶意代码和网络攻击活动,有效发现网络可疑行为、资产和各类未知威胁;
8.安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场等待安全工程师对计算机进行排查;安天7*24小时服务热线:400-840-9234。
经验证,安天智甲终端防御系统(简称IEP)可实现对该挖矿僵尸网络的有效查杀。
图6‑1 安天智甲实现对用户的有效防护
7.样本分析
在目标系统被SSH暴力破解后,攻击者会在托管网站上下载名为“dota3.tar.gz”的压缩包文件,该文件结构内容如下,名为“a”的文件夹下存放开源门罗币挖矿程序kswapd0(xmrig)和启动脚本,名为“b”的文件夹下存放后门程序run和执行脚本,名为c的文件夹下存放SSH暴力破解和扫描工具等。
图7‑1 样本目录结构
7.1 a文件夹
7.1.1 结束竞品进程—stop文件
结束存在竞争性关系的挖矿程序cron、kswapd0等进程,并将结果保存在proc隐藏文件中,最后删除proc文件。
图7‑2 结束竞品
7.1.2 判断系统架构—run文件
执行stop脚本,睡眠10秒,列出当前工作的路径并输出到dir.dir的文件中,列出当前计算机系统架构,如果是i686,后端挂起,如果是x86_64,执行kswapd0挖矿程序,把最后运行的后台进程的PID写入到一个.pid文件中。
图7‑3 判断系统架构
7.1.3 查看CPU信息—a文件
搜索/sys/devices/system/node/下的所有关于node*的目录,之后输出$i/hugepages/hugepages-1048576kB/nr_hugepages,查看cpu信息,如果是AMD Ryzen,输出Detected Ryzen,添加注册值,输出MSR register values for Ryzen applied,如果是Inter,输出Detected Intel,添加注册值,输出MSR register values for Intel applied,否则输出No supported CPU detected。对upd赋予权限,执行upd脚本。
图7‑4 查看cpu信息
7.1.4 挖矿程序—kswapd0文件
通过查看发现该挖矿程序是开源门罗币挖矿程序xmrig,版本为6.6.2。
图7‑5 xmrig挖矿程序
由于暂未找到挖矿程序的配置文件,初步怀疑攻击者是硬编码到挖矿程序中。在查看代码时发现了配置文件信息,配置文件信息中包括矿池地址、币种和钱包地址等信息。
图7‑6 挖矿配置文件
表7‑1 挖矿程序中的矿池地址和钱包地址
矿池地址 | 钱包地址 |
45.9.148.117:80 | 483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS |
45.9.148.117:443 | |
45.9.148.129:80 | |
45.9.148.129:443 | |
45.9.148.125:80 | |
45.9.148.125:443 | |
45.9.148.58:80 | |
45.9.148.58:443 | |
45.9.148.59:80 | |
45.9.148.59:443 |
7.2 b文件夹
7.2.1 执行后续脚本—a文件
对a文件目录下的所有脚本赋予权限并执行。
图7‑7 执行脚本程序
7.2.2 IRC后门程序—run文件
输出字段是一段base64编码的Perl语言,最后添加SSH公钥达到长期控制目标系统的目的。
图7‑8 添加SSH公钥
发现Perl语言存在混淆,需要对其进行输出,即可打印出解密后的代码。
图7‑9 perl语言混淆代码
解码后,是一段标准的Perl代码,因代码量过大 ,现就其重要部分分析如下。首先是定义一系列变量信息,例如进程名为rsync,C2服务器为45.9.148.99,端口号为443等。
图7‑10 定义变量信息
端口扫描功能部分代码,如下所示。
图7‑11 端口扫描
DDoS攻击代码,如下所示。
图7‑12 DDoS攻击
7.2.3 结束竞品进程—stop文件
结束存在竞争性关系的进程rsync、sync、Perl、ps、pool、nginx、ecryptfs和xmr,将结果输出到隐藏文件out下,最后删除out。
图7‑13 结束竞品
7.2.4 暴力破解和扫描工具—c文件夹
c文件夹下包含多个脚本,功能与a、b文件夹下文件功能存在相似性,主要分析c文件夹下的lib文件,该文件夹下包含支持32位和64位的暴力破解和扫描工具tsm。
图7‑14 扫描信息
执行该工具可看到相关参数。
图7‑15 相应参数
工具中存在3个外联IP。
图7‑16 外联IP
8.各版本模块对比
8.1 母体文件
表8‑1 各版本特点对比
8.2 Shellbot
表8‑2 各版本Shellbot功能
样本名 | 功能 |
第零版本(n3) | perl脚本,僵尸网络功能清晰、未经过任何混淆,与母体文件分离 |
特殊形式bot | 第二代僵尸网络程序采用php脚本形式,分为两部分,投放至目标的php脚本,托管于相关域名的php网页(具备感染目标记录、账户密码字典更换,目标ip更换,相关脚本命令更换等功能 |
第一版本(rsync) | perl脚本,僵尸网络功能清晰、未经过任何混淆,与母体文件分离 |
第二版本(rsync) | 混淆的perl脚本 |
第三版本(run) | 混淆的perl脚本被base64编码,须解码导入perl中执行 |
8.3 挖矿模块
表8‑3 各版本挖矿程序梳理
版本 | 挖矿程序 |
第零版本 | cnrig |
第零版本变种 | Ethminer(6.4.0)、XMRigCC(2.5.2) |
第一版本 | XMRig-AMD(2.8.6)、XMRig(2.12.0)64位和32位、XMRig-NVIDIA(2.8.4) |
第二版本 | XMRig(2.14.1)32位和64位 |
第三版本 | XMRig(6.6.2) |
8.4 暴力破解模块
表8‑4 各版本暴力破解工具梳理
版本 | 暴力破解模块 |
第零版本 | 无暴力破解模块,但采用漏洞传播,如CVE-2017-1000117 |
第零版本变种 | Haiduc 具备upx壳 |
第一版本 | tsm32/tsm64 (banner:BlitzBrute-Multithreaded SSH bruteforce tool v3.1 Xport – 2019) 存在疑似C2地址:5.255.86.129 |
第二版本 | ps内置暴力破解成功后替换的ssh公钥存在疑似C2地址:5.255.86.129 |
第三版本 | tsm32/tsm64内置暴力破解成功后替换的ssh公钥、要执行base64编码的脚本,脚本内容为解压并执行dota3.tar.gz内的文件。存在疑似C2地址:5.255.86.129 |
9.自查和清除
9.1 自查方法
1.检查/root/.configrc/*中是否存在病毒样本;
2.检查/root/.ssh/中的公钥与报告中是否一致;
3.检查/tmp/.X25-unix/.rsync/*中病毒运行的缓存文件;
4.检查/tmp/.X25-unix/dota3.tar.gz中是否存在病毒母体文件;
5.检查/root/.configrc/a/kswapd0是否存在病毒主程序;
6.检查计划任务是否存在以上文件的定时执行。
9.2 清除方案
1.删除以下文件,结束相应进程
/tmp/*-unix/.rsync/a/kswapd0
*/.configrc/a/kswapd0
/tmp/*-unix/.rsync/c/tsm64
/tmp/*-unix/.rsync/c/tsm32
/tmp/*-unix/.rsync/b/run(rsync)
*/.configrc/
2.检查cron.d中是否存在包含以下内容的定时任务,如有进行删除:
/a/upd
/b/sync
/c/aptitude
附录一:参考资料
[1] 活跃的Hezb挖矿木马分析
https://www.antiy.cn/research/notice&report/research_report/20220705.html
[2] “1337”挖矿组织活动分析
https://www.antiy.cn/research/notice&report/research_report/20220321.html
[3] 活跃的Kthmimu挖矿木马分析
https://www.antiy.cn/research/notice&report/research_report/20220527.html
[4] “8220”挖矿组织活动分析
https://www.antiy.cn/research/notice&report/research_report/20220428.html
[5] 双平台传播——活跃的H2Miner组织挖矿分析
https://www.antiy.cn/research/notice&report/research_report/20211117.html
[6] Perl-Based Shellbot Targets Organizations via C&C
[7] 亡命徒(Outlaw)僵尸网络感染约2万台Linux服务器,腾讯安全提醒企业及时清除
https://mp.weixin.qq.com/s/4_E6kPuodxb3_inVCq2fqg
[8] Outlaw Group Distributes Cryptocurrency-Mining Botnet
[9] Outlaw's Botnet Spreads Miner, Perl-Based Backdoor
[10] Outlaw Updates: Kill Old Miner Versions, Target More
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)