针对某云平台服务器的“云铲”挖矿木马事件分析
时间 : 2021年02月01日 来源: 安天CERT
1、概述
近日,安天CERT联合哈尔滨工业大学联合实验室通过网络安全监测发现了一起Linux系统挖矿木马事件。该挖矿木马以硬编码了一个隶属于某云平台网段的IP地址作为起始地址的扫描策略,分析人员判定该挖矿木马对某云平台服务器存在一定的针对性,安天CERT基于此特点将该事件中的挖矿木马命名为“云铲”。
该挖矿木马运行后通过服务器下载三个文件(主模块、恶意链接库、开源挖矿程序)。主模块功能为对扫描到目标进行SSH暴力破解,进而传播该挖矿木马;运行下载的挖矿程序进行挖矿;将恶意链接库路径写入预加载文件中,实现屏蔽相关命令对恶意文件实体和恶意进程的查找;将SSH公钥写入目标系统root用户.ssh目录中,实现以root用户对该系统的长期访问。主模块初始阶段扫描以其硬编码的某云平台服务器IP地址作为起始地址,包括该IP地址的同网段和相邻网段IP地址,后续随机扫描外网段IP地址及样本所在网络的外网IP地址,同时对内网相关IP进行扫描。
安天CERT通过对该起事件的详细分析,在报告中给出了相应的检测、处置和加固方案。
特别致谢:中国科学技术大学网络信息中心针对本篇报告提供的相关帮助。
目前,安天智甲终端防御系统(Linux版本)可实现对该挖矿木马的查杀与有效防护。
安天探海威胁检测系统(PTD) 可以在流量中检测该木马的传播,对横向移动过程中的主机发现行为和端口扫描行为进行检测。同时支持对各类具有控制能力的协议如SSH、TELNET、RDP等协议的暴力密码猜解方式进行检测,有效发现此类横向移动传播方式。
2、样本分析
经分析研判,文件bioset为该挖矿木马的主模块,其在目标主机运行后首先针对相关目标进行SSH暴力破解,同时在/root/.ssh/目录下创建authorized_keys文件,并将SSH公钥信息写入其中,以便后续对该目标主机的访问。其次下载并运行挖矿程序(kthreadd)和新的主模块(bioset),同时下载了恶意链接库文件(libcurl.so.2.17.0),将该文件写入/etc/ld.so.preload中,实现针对相关命令的预加载,进而屏蔽这些命令对该挖矿木马相关文件、进程的查看。
表 2-1挖矿木马相关文件
|
文件名 |
hash |
备注 |
|
bioset |
1EB3662AB4D710EF72450DAC9087A96C |
主模块 |
|
kthreadd |
7275D8B380E6FACC7C5420603F2672CC |
开源xmrig(挖矿程序) |
|
F8F745BC28CF24170B422F9B209BEACB |
恶意链接库文件 |
|
|
authorized_keys |
A4BCD006B681D3EF99C3C28BE376116E |
攻击者SSH公钥 |
2.1 主模块分析
2.1.1 下载恶意文件bioset ,kthread,libcurl.so.2.17.0
表 2-2主模块样本标签
|
病毒名称 |
Trojan/Linux.BitCoinMiner |
|
原始文件名 |
bioset |
|
MD5 |
1EB3662AB4D710EF72450DAC9087A96C |
|
文件格式 |
BinExecute/Linux.ELF |
|
文件大小 |
1.42 MB (1,490,328 字节) |
|
数字签名 |
无 |
|
加壳类型 |
upx |
|
VT首次上传时间 |
无 |
该模块连接到远程服务器http://www.fullskystar.top,该域名注册时间为2020年10月14日,通过POST请求指定参数,下载文件。
表 2-3提交参数
|
参数 |
所下载文件 |
|
{ "key": "0FC2C00124A496A2D8EC43F60CDA466026E646214A2ACAF6E0C9BF43D44C388A93CA18CDAD5B13D190F084EE023A318CD3842279CEE44616F173F04F4EFBC2DF", "info": "2FB42DEF495B310F" } |
kthreadd |
|
{ "key": "0FC2C00124A496A2D8EC43F60CDA466026E646214A2ACAF6E0C9BF43D44C388A93CA18CDAD5B13D190F084EE023A318CD3842279CEE44616F173F04F4EFBC2DF", "info": "2D1468E16B0C19D6" } |
bioset |
|
{ "key": "0FC2C00124A496A2D8EC43F60CDA466026E646214A2ACAF6E0C9BF43D44C388A93CA18CDAD5B13D190F084EE023A318CD3842279CEE44616F173F04F4EFBC2DF", "info": "002A04B9C955C4F1" } |
libcurl.so.2.17.0 |
2.1.2 添加攻击者的SSH公钥,达到长期控制该系统的目的

图 2-1将密钥信息写入文件
攻击者公钥:
