双平台传播——活跃的H2Miner组织挖矿分析
今年11月以来,安天CERT陆续捕获到多批次H2Miner挖矿组织攻击事件,该挖矿组织自2019年出现,持续活跃,同时向Linux与Windows双平台传播恶意脚本,最终下载门罗币挖矿程序以及其他后门、端口扫描工具等。安天智甲终端防御系统Windows与Linux版本可实现对该挖矿木马的查杀与有效防护。本篇文章3543字,预计9分钟读完。
该组织在Linux平台上传播Kinsing僵尸网络,起名原因是其守护进程名为“kinsing”。该恶意软件具有挖矿功能,同时在失陷主机上开放后门,具有masscan端口扫描的功能,连接C2服务器上传基础信息,还具有下载脚本进行横向移动等功能。
该组织在Windows平台上传播挖门罗币的程序,该程序使用开源挖矿程序xmrig.exe进行挖矿,版本号为6.4.0,目前配置文件中的钱包地址已被各大矿池封禁。
经验证,安天智甲终端防御系统(简称IEP)Windows与Linux版本可实现对该挖矿木马的查杀与有效防护。
攻击者使用的技术点如下表所示:
ATT&CK阶段/类别 | 具体行为 | 注释 |
侦察 | 主动扫描 | 主动扫描带有RCE漏洞的服务器 |
初始访问 | 利用面向公众的应用程序 | 利用Weblogic漏洞 |
执行 | 利用命令和脚本解释器 | 使用PowerShell和bash脚本 |
持久化 | 利用计划任务/工作 | 设置计划任务 |
防御规避 | 执行范围保护 | 守护进程kinsing |
使用Rootkit | 下载libsystem.so执行Rootkit | |
凭证访问 | 从存储密码的位置获取凭证 | 读取SSH凭证信息 |
发现 | 扫描网络服务 | 使用masscan扫描器扫描服务 |
横向移动 | 横向传输工具或文件 | 横向传输脚本文件 |
收集 | 收集本地系统数据 | 收集本地系统信息 |
命令与控制 | 使用应用层协议 | 使用应用层协议下发指令 |
数据渗出 | 使用C2信道回传 | 使用与C2相同的信道回传 |
3.1 攻击流程
攻击者利用漏洞入侵Windows平台和Linux平台。在Windows平台中,失陷主机下载并执行wbw.xml的XML文件,在XML文件中执行一段PowerShell命令,下载名为1.ps1的脚本,该脚本下载挖矿程序以及挖矿的配置文件并重命名执行,创建计划任务每30分钟执行一次1.ps1脚本,实现持久化长期驻留失陷主机;在Linux平台中,失陷主机下载并执行名为wb.xml的XML文件,该XML文件使用同样的手法内嵌了一段bash脚本,执行后下载挖矿脚本,主要功能包括清除竞品挖矿程序和计划任务、MD5校验、卸载安全软件和下载Kinsing恶意软件并执行等。Kinsing恶意软件不仅具有挖矿功能,还会在失陷主机上开放后门以及masscan端口扫描等功能,连接C2服务器上传版本号、内核数量、内存信息、操作系统信息、是否获得Root 权限和Uuid等信息,并会下载后续脚本进行横向移动等。
图3-1 整体攻击流程
3.2 Windows平台传播途径
在Windows平台中,攻击者向受害主机发送一个构造好的数据包,将该数据包中的可执行代码部分架设在远程服务器的XML文件中,当漏洞利用成功后,受害主机就会访问攻击者架设远程服务器的XML文件,并解析执行。
3.3 Linux平台传播途径
Linux平台传播与Windows平台传播途径一样,同样向受害主机上发送构造好的数据包,将该数据包中的可执行代码部分架设在远程服务器的XML文件中,当漏洞利用成功后,受害主机就会访问攻击者架设远程服务器的XML文件,并解析执行。
3.4 攻击事件样本整理
根据攻击事件对样本进行梳理得到如下信息:
样本下载地址 | 详细说明 |
hxxp[:]//194.38.20.199/1.ps1 | Windows恶意PowerShell |
hxxp[:]//194.38.20.199/xmrig.exe | Windows门罗币挖矿程序 |
hxxp[:]//194.38.20.199/config.json | Windows挖矿配置文件 |
hxxp[:]//194.38.20.199/md.sh | Linux恶意shell |
hxxp[:]//194.38.20.199/kinsing | Linux挖矿程序 |
hxxp[:]//194.38.20.199/spre.sh | 横向移动脚本 |
hxxp[:]//194.38.20.199/wb.xml | Weblogic RCE payload(Linux) |
hxxp[:]//194.38.20.199/wbw.xml | Weblogic RCE payload (Windows) |
矿池地址 | 钱包地址 |
45.136.244.146:3333 | 4ASk4RhUyLL7sxE9cPyBiXb82ofekJg2SKiv4MKtCbzwHHLQx VVfVr4D4xhQHyyMTieSM5VUFGR9jZVR5gp6sa1Q2p8SahC |
37.59.44.193:3333 | |
94.23.23.52:3333 | |
pool.minexmr.com:3333 | |
pool.supportxmr.com:3333 |
1. 安装终端防护:安装反病毒软件,针对不同平台建议安装安天智甲终端防御系统Windows/Linux版本;
2. 加强SSH口令强度:避免使用弱口令,建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
3. 及时更新补丁:建议开启自动更新功能安装系统补丁,服务器应及时更新系统补丁;
4. 及时更新第三方应用补丁:建议及时更新第三方应用如Weblogic等应用程序补丁;
5. 开启日志:开启关键日志收集功能(安全日志、系统日志、错误日志、访问日志、传输日志和Cookie日志),为安全事件的追踪溯源提供基础;
6. 主机加固:对系统进行渗透测试及安全加固;
7. 部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。安天探海威胁检测系统(PTD)以网络流量为检测分析对象,能精准检测出已知海量恶意代码和网络攻击活动,有效发现网络可疑行为、资产和各类未知威胁;
8. 安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场等待安全工程师对计算机进行排查;安天7*24小时服务热线:400-840-9234
经验证,安天智甲终端防御系统(简称IEP)Windows版和Linux版均可实现对该挖矿木马和恶意软件的查杀与有效防护。
图4-1 安天智甲有效防护
5.1 Windows样本分析
5.1.1 1.ps1
病毒名称 | Trojan/Win32.Ymacco |
原始文件名 | 1.ps1 |
MD5 | 17342E104A7F14278A4236A4AAE2E967 |
文件大小 | 2.15KB (2,202 字节) |
解释语言 | PowerShell |
VT首次上传时间 | 2021-02-17 10:06:02 |
VT检测结果 | 29/59 |
定义门罗币挖矿程序地址和配置文件的下载路径以及保存路径和挖矿程序名等信息:
图5-1 下载挖矿程序
下载挖矿程序,并将挖矿程序保存在TMP目录下,并重命名为sysupdate.exe。
下载挖矿配置文件,并将配置文件保存在TMP目录下,并重命名为config.json。
更新程序和创建计划任务,创建名为Update service for Windows Service的计划任务,无限期地每隔30分钟重复一次。该计划任务使用PowerShell执行1.ps1脚本。
图5-4 创建计划任务
5.1.2 配置文件config.json
配置文件中有5个矿池地址,钱包地址均为4ASk4RhUyLL7sxE9cPyBiXb82ofekJg2SKiv4MKtCbzwHHLQxVVfVr4D4xhQHyyMTieSM5VUFGR9jZVR5gp6sa1Q2p8SahC,以下为配置文件中部分内容:
"url": "45.136.244.146:3333", "user": "4ASk4RhUyLL7sxE9cPyBiXb82ofekJg2SKiv4MKtCbzwHHLQxVVfVr4D4xhQHyyMTieSM5VUFGR9jZVR5gp6sa1Q2p8SahC", "url": "37.59.44.193:3333", "user": "4ASk4RhUyLL7sxE9cPyBiXb82ofekJg2SKiv4MKtCbzwHHLQxVVfVr4D4xhQHyyMTieSM5VUFGR9jZVR5gp6sa1Q2p8SahC", "url": "94.23.23.52:3333", "user": "4ASk4RhUyLL7sxE9cPyBiXb82ofekJg2SKiv4MKtCbzwHHLQxVVfVr4D4xhQHyyMTieSM5VUFGR9jZVR5gp6sa1Q2p8SahC", "url": "pool.minexmr.com:3333", "user": "4ASk4RhUyLL7sxE9cPyBiXb82ofekJg2SKiv4MKtCbzwHHLQxVVfVr4D4xhQHyyMTieSM5VUFGR9jZVR5gp6sa1Q2p8SahC", "url": "pool.supportxmr.com:3333", "user": "4ASk4RhUyLL7sxE9cPyBiXb82ofekJg2SKiv4MKtCbzwHHLQxVVfVr4D4xhQHyyMTieSM5VUFGR9jZVR5gp6sa1Q2p8SahC", |
5.2 Linux样本分析
5.2.1 md.sh
病毒名称 | Trojan[Downloader]/Shell.Miner |
原始文件名 | md.sh |
MD5 | 5604AE3E3E5248BB2242B1EE211D654D |
文件大小 | 31.3 KB (32,110 字节) |
解释语言 | Shell |
VT首次上传时间 | 2021-09-16 19:52:35 |
VT检测结果 | 32/58 |
下载两个脚本文件,两个脚本文件的作用是卸载被感染主机上的安全软件。
清除竞品的挖矿程序。
清除竞品的计划任务。
图5-7 清除竞品计划任务
5.2.2 kinsing恶意软件
病毒名称 | Trojan/Linux.Kinsing |
原始文件名 | kinsing |
MD5 | 648EFFA354B3CBAAD87B45F48D59C616 |
文件大小 | 13.9 MB (14,643,200 字节) |
文件格式 | BinExecute/Linux.ELF |
加壳类型 | 无 |
VT首次上传时间 | 2020-12-18 11:34:58 |
VT检测结果 | 34/62 |
5.2.2.1 挖矿
样本执行后,会在tmp目录下创建名为kdevtmpfsi的挖矿程序并执行。
5.2.2.2 后门功能
该后门代码可以实现在主机上执行任意命令。
图5-9 执行任意命令
5.2.2.3 masscan扫描
创建名为firewire.sh的脚本文件,该脚本文件中内置了一个MD5哈希值,该哈希值经验证,为masscan扫描器。masscan 是一个高性能的端口扫描器,它的功能类似于nmap工具。
5.2.2.4 C2通信
恶意软件通过 HTTP 与 C2 服务器进行通信,失陷主机会请求发送系统状态和系统资源信息,例如内核数量、内存信息、操作系统信息、是否获得Root 权限和UUID等。所有这些参数都使用自定义 HTTP 头发送给 C2 服务器。
失陷主机不断通过get请求C2服务器,Sign字段为服务器响应后传递的恶意 Shell 脚本。
图5-12 传递恶意Shell脚本
失陷主机会使用/mg对C2服务器进行请求,C2服务器会响应几个字符,失陷主机使用 JSON-RPC 的形式通过 HTTP 发送主机信息。
下载cron.sh脚本,功能是结束竞品挖矿程序。
下载spre.sh脚本,脚本会从 /.ssh/config, .bash_history, /.ssh/known_hosts进行搜索和匹配,来发现攻击目标,并找到与其相对应的身份验证的信息,检查 ~/.ssh/config、~/.bash_history和 .ssh/known_hosts尝试进行横向移动等操作。
图5-15 横向移动
5.2.2.5 关联分析
通过关联分析,我们找到该组织的资产上另一个脚本文件xx.sh,xx.sh的功能是从 194.38.20.199/libsystem.so处下载名为 libsystem.so的Rootkit以及其他恶意软件。然后其他脚本将该 Rootkit预加载到/etc/ld.so.preload。
图5-16 下载Rootkit
该脚本还注册一个定期重新感染主机的系统服务来持久化。
图5-17 系统服务持久化
针对Linux用户
进程:
排查路径:
计划任务: 185.191.32.198相关计划任务 预加载配置: 排查清理/etc/ld.so.preload内恶意预加载配置项 |
针对Windows用户
进程: sysupdate.exe 排查路径:
计划任务: Update service for Windows Service |
表7-1 IoCs
IoCs |
hxxp[:]//194.38.20.199/1.ps1 |
hxxp[:]//194.38.20.199/xmrig.exe |
hxxp[:]//194.38.20.199/config.json |
hxxp[:]//194.38.20.199/md.sh |
hxxp[:]//194.38.20.199/kinsing |
hxxp[:]//194.38.20.199/spre.sh |
hxxp[:]//194.38.20.199/wb.xml |
hxxp[:]//194.38.20.199/wbw.xml |
hxxp[:]//194.38.20.199/spr.sh |
hxxp[:]//194.38.20.199/t.sh |
hxxp[:]//194.38.20.199/pg.sh |
hxxp[:]//194.38.20.199/pg2.sh |
hxxp[:]//194.38.20.199/cron.sh |
hxxp[:]//194.38.20.199/unk.sh |
hxxp[:]//194.38.20.199/for |
hxxp[:]//194.38.20.199/tf.sh |
hxxp[:]//194.38.20.199/wb.sh |
hxxp[:]//194.38.20.199/libsystem.so |
hxxp[:]//194.38.20.199/tr2.sh |
hxxp[:]//194.38.20.199/h2.sh |
hxxp[:]//194.38.20.199/k.xml |
hxxp[:]//194.38.20.199/sm.sh |
hxxp[:]//194.38.20.199/xx.sh |
hxxp[:]//194.38.20.199/curl-amd64 |
194.38.20.199 |
185.191.32.198 |
185.154.53.140 |
17342E104A7F14278A4236A4AAE2E967 |
F6B680A061793A0979710CD96F494E2F |
57F0FDEC4D919DB0BD4576DC84AEC752 |
5604AE3E3E5248BB2242B1EE211D654D |
402E7B55810C024C2FDEAD907068A692 |
648EFFA354B3CBAAD87B45F48D59C616 |
[1] 挖矿木马简要技术分析
https://www.antiy.cn/research/notice&report/research_report/20211015.html