Windows样本---PowerShell文件
一、该家族文件1.ps1恶意样本,主要包含了以下内容:
1.设置门罗币的挖矿程序和矿机配置文件的下载路径和保存路径,并连接主机进行下载:
图:样本中文件下载地址和文件存储路径
2.设置定时,并检查矿机程序是否启动,如未启动,则重新执行脚本文件。
图:样本的定时任务
二、矿机配置文件---json文件
该文件主要是对挖矿程序进行配置,主要包含了矿池地址,挖矿的钱包等相关信息,从文件中可以看出,该家族利用了不同的挖矿地址,但是使用的是同一个门罗币钱包。
图:样本中设置的钱包地址和矿池地址
三、 Linux平台样本---Shell文件
Linux的恶意脚本wb.sh在功能上并没有特别多的变化,其主要的变化则是更新C2服务器地址。该恶意脚本的主要功能为:卸载主机的安全软件阿里云骑士和腾讯云镜;清除挖矿竞品;扫描端口,并结束占用该端口的进程;下载执行恶意木马Kinsing;将自身添加到计划任务。
在运行Kinsing脚本之前,该脚本首先会检查Kinsing程序是否存在,并校检文件的MD5,如果Kinsing不存在时或MD5不正确时,则会连接指定的URL(包括第三方代码托管网站)下载Kinsing文件:
图:shell文件中的Kinsing下载函数
今年7月份开始Kinsing家族再次开始活跃,所捕捉到的新变种与老版本之间并没有太多的变化,主要则是更改了文件中的后门地址以及相关的文件名。此外,改样本还增加了几行代码用于清除新的竞品挖矿程序。
值得注意的是,通过在VT上对相似文件的检索以及分析,可以发现,该家族的脚本命名不是固定的。其命名规则按照英文字母a-z为基础,进行命名。
四、挖矿恶意脚本---Kinsing
在所搜集到的文件中,可以发现Kinsing及其变种(Salt-store),文件的大小都保持在15-16MB之间。对样本进行IDA反编译,可以看出样本包含有关于挖矿相关的函数,并且通过main函数调用。
图:Kinsing内部的函数
同时,Kinsing和salt-store感染主机并运行后,首先也会向C2请求并确认钱包地址。此外,在对样本进行分析时,可以发现该Kinsing样本中包含大量的与Hamlet相关的数据内容。通过深入挖掘分析可以发现,该内容是由于样本所调用的函数导致的。
五、横向移动脚本---spre.sh
首先,脚本会从 /.ssh/config, .bash_history, /.ssh/known_hosts进行搜索和匹配,来发现攻击目标,并找到与其相对应的身份验证的信息。
图:横向移动脚本所搜集的身份验证信息
接着,利用收集到的信息,恶意脚本尝试通过SSH连接到每个主机,使用每个可能的用户和密钥组合进行爆破登陆,以便在网络中的其他主机或容器上下载和运行shell脚本。脚本使用以下SSH命令用于在网络中传播H2Miner:
图:横向移动脚本中的SSH命令
通过样本分析来看看Kinsing如何通过Hamlet伪装自己。
图:样本中存在大量的数据内容,在IDA反编译中的数据占比显示
经过分析,该部分内容由下列函数进行调用:
Apache
github_com_markbates_pkger_internal_takeon_github_com_markbates_hepa_filters
图:Kinsing样本调用hamlet的函数
在GitHub上搜索该项目:GitHub - markbates/pkger at v0.12.7,可以发现在相应路径下,Hamlet作为常量而被编译到整个项目,如图所示。通过文档可以知道,该项目的主要功能是,帮助代码作者将静态资源文件打包进二进制文件,如一些配置文件,图片,样式表等。
图:github项目中的Hamlet
此外,对样本的网络流量进行检测时,也同样发现了该特征:
图:PCAP包中的Hamlet
然而,值得注意的是,该github项目在0.12.8之后的版本中,已经删除了该哈姆雷特的内容。
? linux:
/etc/Kinsing
/tmp/Kinsing
/var/tmp/Kinsing
/dev/shm/Kinsing
/etc/kdevtmpfsi
/tmp/kdevtmpfsi
/var/tmp/kdevtmpfsi
/dev/shm/kdevtmpfsi
/etc/libsystem.so
? Windows:
TMP\sysupdate.exe
TMP\config.json
TMP\update.ps1
TMP\salt-store
Kinsing
kdevtmpfsi
salt-store