典型挖矿样本分析 | somescript.sh

典型挖矿样本分析 | somescript.sh

样本概述

本次分析的样本是MalGeneric家族的挖矿脚本—somescript.sh。挖矿主程序Warmup是XMrig挖矿病毒的变种。somescript.sh是挖矿程序的前置程序,主要行为包括:获取恶意文件、流量代理、端口扫描、清除杀软、运行挖矿程序、持久化、清除记录等。

Somescript 

SHA1: 5955041ACFFA91F6CA86F133C8BCE73A6827D0DC



恶意IP及端口

主要涉及4个原始矿池ip和多个公网代理服务、资源服务器ip,若失陷主机不出网,则该恶意脚本还会通过内网层层代理的方式访问外部C2服务器获取相关资源。

原 始 矿池IP:5.133.65.53、5.133.65.54、5.133.65.55、5.133.65.56

代理服务器IP:77.247.243.434、45.142.212.30、185.74.222.72、45.140.146.252、5.67.229.147

公网相关端口:80、443、14444、24444

内网相关端口:703、708、757、8080、443



病毒传播方式

病毒主要的传播方式:通过SSH横向爆破后下载前置脚本运行。

使用开源的爆破工具spirit,结合资源服务器上下载的弱口令字典对内网中的其他主机进行SSH爆破。



情报&沙箱检测

以上在样本中发现的多个IP地址于微步和VT上查询时,发现已有相关情报对其进行了标记。
典型挖矿样本分析 | somescript.sh

Warmup为ELF文件,属于Linux系统的可执行文件,通过IDA中发现的多个XMrig字符串和微步沙箱的报告可以判定这个程序是XMrig挖矿病毒的变种。

典型挖矿样本分析 | somescript.sh

Acrchive.tar.gz是一个包含配置、恶意脚本、挖矿程序、爆破程序、弱口令字典的打包文件。通过在根目录下解压并强制覆盖,几乎等同于完成了运行somescript期间的所有动作。

典型挖矿样本分析 | somescript.sh



Somescript主要功能


设置关键变量

USER变量,决定要使用哪些代理IP池

典型挖矿样本分析 | somescript.sh


SKIPUPDATE变量,决定是否进行更新

典型挖矿样本分析 | somescript.sh


MY_NAME变量

用于存储当前脚本名称

FILENAME变量

一般指定FILENAME=”somescript”

FILE_TO_FETCH_URL变量

指定文件下载地址

FILE_TO_FETCH_URL=http://5.133.65.53/soft/linux/$FILENAME

EXISTING_SHELL_SCRIPT变量

准备运行的脚本的绝对地址

EXECUTABLE_SHELL_SCRIPT

当前要执行的脚本绝对地址


设置DNS服务器为8.8.8.8

读取ect/resolv.conf文件,写入8.8.8.8 DNS服务器地址。

典型挖矿样本分析 | somescript.sh


安装nc wget xinetd工具

用于网络请求和代理转发

根据不同的Liunx发行版本调用包管理工具安装NC、Wget和Xinetd

典型挖矿样本分析 | somescript.sh


检测杀软、EDR等安全软件并清除

检测360相关进程是否存在,存在则获取进程pid然后kill掉。对于其他的安全软件,如qaxsafe、clamav、深信服edr、KvEdr等则会调用这些设备自带的移除脚本移除。

典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh

左右滑动查看更多


写入文件到/etc/init.d/modules中

(持久化程序,系统自动运行)

包含设置shell串口大小、告警、成功等不同颜色的字体打印,加密文件,查询进程是否正常运行,设置环境变量等

典型挖矿样本分析 | somescript.sh


清除指定日志文件

遍历日志文件地址字符串,读取文件覆盖写入为空,删除文件夹。

典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh


关闭登录日志文件记录功能

典型挖矿样本分析 | somescript.sh


关闭历史命令记录功能

典型挖矿样本分析 | somescript.sh


指定IP端口探活

典型挖矿样本分析 | somescript.sh


下载远程服务器文件

典型挖矿样本分析 | somescript.sh


自更新

根据前面初始化的变量作为参数调用update_self_and_invoke函数

典型挖矿样本分析 | somescript.sh


创建定时任务,设置运行权限

典型挖矿样本分析 | somescript.sh


获取系统信息

典型挖矿样本分析 | somescript.sh


检查warmup服务是否正常

不正常则下载该文件(warmup是elf文件,挖矿程序)

典型挖矿样本分析 | somescript.sh


磁盘写入指定配置文件

/root/.warmup/config.json(warmup配置文件)

在本地启动一个监听0.0.0.0 999端口的http服务,以及cup、显卡、算法、原始矿池地址等配置

典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh

左右滑动查看更多


端口扫描,配置代理转发服务(703、708、757、443、8080)

配置了多种的流量转发服务,smtp、http、https

典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh
典型挖矿样本分析 | somescript.sh

左右滑动查看更多


检查防火墙配置,开启指定端口

典型挖矿样本分析 | somescript.sh


下载爆破字典和工具包

下载的压缩包中含有另一个挖矿前置脚本xbash(功能和本脚本类似)、挖矿主程序libgcc_a、开源爆破工具spirit以及其他依赖库so文件。

文件解压释放到根目录下,强制覆盖。

设置libgcc_a和xbash可执行、把/etc/cron.daily/xbash加入计划任务

典型挖矿样本分析 | somescript.sh
解压后的文件及目录
典型挖矿样本分析 | somescript.sh


总结

该脚本是挖矿程序的前置程序,主要行为有:初始化环境、创建web服务、代理转发,扫描端口、写入自启动的服务脚本、创建计划任务、检测并关闭杀软、自我更新、清除log日志、清除历史命令和相关文件、关闭日志记录和历史命令记录等。通过SSH爆破实现横移传播,利用开源的SSH爆破工具spirit以及自带的弱口令字典进行爆破,成功后进行病毒下载和运行。


样本所属家族

Warmup家族

原始矿池地址

5.133.65.53

5.133.65.54

5.133.65.55

5.133.65.56

本地相关端口

703、708、757、999、8080、443


涉及以上端口的本地文件操作如下:

Warmup相关操作(文件)

/root/.warmup/config.json

999端口开启web服务

检查warmup服务的配置文件/root/.warmup/config.json ,该配置文件中定义了api、http接口信息,cup、显卡信息以及三种的矿池地址,按使用优先级排序:

⏩ 第一种是原始矿池的5.133.65.53-56的ip,

⏩ 第二种是有外网访问能力的内网地址和端口,

⏩ 第三种是代理服务器

45.67.229.147:14444

45.67.229.147:80

45.67.229.147:443

45.142.212.30:443

45.142.212.30:14444

185.74.222.72:14444

185.74.222.72:80

185.74.222.72:443

77.247.243.43:14444

45.140.146.252:24444

45.140.146.252:80

45.140.146.252:443


脚本会遍历/root/.warmup/ip.txt(扫描到的内网ip)文件,对文件中的ip依次探测703,708,443,8080端口,能建立连接的就将ip加入/root/.warmup/config.json文件中”pools”字段的”url”键对应的值中。最多添加5个,然后把所有的pool汇总成POOLS放入config.json文件中。

创建服务/etc/systemd/system/warmup.service文件或/etc/init.d/warmup(根据系统的不同创建),开启服务。用于持久化


Xinetd相关操作(文件)

etc/xinetd.d/smtp_forward

安装xinetd,(文件更新,脚本下载可以在内网的757口下载,所以感染的每台内网主机都会开启757端口的文件下载服务)探测本地的757端口能否正常响应,不能则本地写入/etc/xinetd.d/smtp_forward文件,监听757,转发到5.133.65.53 80或45.142.212.30 80,或者内网任意一台开启了757端口的主机ip。

/etc/xinetd.d/http_forward

操作同上,探测本地703端口,开启监听,写入/etc/xinetd.d/http_forward中,转发到MINEIP的80端口

/etc/xinetd.d/timesync

特殊代理池的服务配置和本地api.json文件中的pool字段有关,监听本地708端口,转到发到pool字段中的ip和端口

/etc/xinetd.d/https_stream

探测本地443端口是否可以连通,然后查看 /etc/xinetd.d/https_stream服务中有没有配置特殊代理ip和端口,监听443,转到发到pool字段中的ip和端口

/etc/xinetd.d/http_stream

探测本地8080端口是否可以连通,然后查看 /etc/xinetd.d/https_stream服务中有没有配置特殊代理ip和端口,监听8080,转到发到pool字段中的ip和端口。


排查&清理

1、查看主机资源利用情况,是否存在libgcc_a、spirit、warmup、warmap、somescript等进程且占用高CPU资源;

2、查看/etc/xinetd.d/配置文件,是否存在重定向至恶意服务器的配置;

3、查看是否存在可疑文件夹root/gcclib,并且含有可疑文件,例如libgcc_a、xfit.sh、xfitaarch.sh等;

4、是否存在恶意路径/usr/spirit/

5、排查定时任务相关配置文件,例如/etc/cron.hourly、/etc/crontab等是否存在/etc/cron.daily/xbash等可疑项;

6、是否存在usr/local/lib/sshpkit.so、/usr/local/lib/pkitarm.so此类路径;

7、排查etc/ld.so.preload配置文件,是否存在指向usr/local/lib/sshpkit.so、/usr/local/lib/pkitarm.so等内容,

8、 排查目录/etc/lib是否存在adxintrin_b文件

9、 查看是否有可疑服务,例如crtend_b




红鲸RedOps安全协同响应平台

众智维科技通过核心自研产品“红鲸RedOps安全协同响应平台”AI协同作战室的便利性,可快速得出响应该样本的自动化剧本,并建立协同工作流。
典型挖矿样本分析 | somescript.sh


典型挖矿样本分析 | somescript.sh

我们时刻关注客户需求,为您搭建更高效的新一代智能安全运营协同作战体系。如果您想了解更详细的支持信息,可联系下方邮箱进行咨询!

[email protected]





典型挖矿样本分析 | somescript.sh

原文始发于微信公众号(众智维安):典型挖矿样本分析 | somescript.sh

版权声明:admin 发表于 2023年11月28日 上午10:00。
转载请注明:典型挖矿样本分析 | somescript.sh | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...