针对某云平台服务器的“云铲”挖矿木马事件分析

2021-02-03 8,265

近日,安天CERT联合哈尔滨工业大学联合实验室通过网络安全监测发现了一起Linux系统挖矿木马事件。该起事件对某云平台服务器部分网段以及样本所在内网和其他外网段大量扫描,利用SSH暴力破解传播挖矿程序。该木马对某云平台服务器存在一定的针对性,安天CERT基于此特点将该事件中的挖矿木马命名为“云铲”,并在报告中给出了相应的检测、处置和加固方案。安天智甲终端防御系统(Linux版本)可实现对该起事件样本的查杀与有效防护。

01
 概述

安天CERT联合哈尔滨工业大学联合实验室通过网络安全监测发现了一起Linux系统挖矿木马事件。在该挖矿木马的扫描策略中,以硬编码的某云平台网段IP地址作为起始地址。分析人员判定该挖矿木马对某云平台服务器存在一定的针对性,安天CERT基于此特点将该事件中的挖矿木马命名为“云铲”。

该挖矿木马运行后通过服务器下载三个文件(主模块、恶意链接库、开源挖矿程序)。主模块功能为对扫描到目标进行SSH暴力破解,进而传播该挖矿木马;运行下载的挖矿程序进行挖矿;将恶意链接库路径写入预加载文件中,实现屏蔽相关命令对恶意文件实体和恶意进程的查找;将SSH公钥写入目标系统root用户.ssh目录中,实现以root用户对该系统的长期访问。主模块初始阶段扫描以其硬编码的某云平台服务器IP地址作为起始地址,包括该IP地址的同网段和相邻网段IP地址,后续随机扫描外网段IP地址及样本所在网络的外网IP地址,同时对内网相关IP进行扫描。

安天CERT通过对该起事件的详细分析,在报告中给出了相应的检测、处置和加固方案。

特别致谢:中国科学技术大学网络信息中心针对本篇报告提供的相关帮助。

目前,安天智甲终端防御系统(Linux版本)可实现对该挖矿木马的查杀与有效防护。

安天探海威胁检测系统(PTD)可以在流量中检测该木马的传播,对横向移动过程中的主机发现行为和端口扫描行为进行检测。同时支持对各类具有控制能力的协议如SSH、TELNET、RDP等协议的暴力密码猜解方式进行检测,有效发现此类横向移动传播方式。


02
 样本分析

经分析研判,文件bioset为该挖矿木马的主模块,其在目标主机运行后首先针对相关目标进行SSH暴力破解,同时在/root/.ssh/目录下创建authorized_keys文件,并将SSH公钥信息写入其中,以便后续对该目标主机的访问。其次下载并运行挖矿程序(kthreadd)和新的主模块(bioset),同时下载了恶意链接库文件(libcurl.so.2.17.0),将该文件写入/etc/ld.so.preload中,实现针对相关命令的预加载,进而屏蔽这些命令对该挖矿木马相关文件、进程的查看。

表 2-1挖矿木马相关文件

针对某云平台服务器的“云铲”挖矿木马事件分析


2.1
主模块分析

2.1.1 下载恶意文件bioset ,kthreadd,libcurl.so.2.17.0

表 2-2主模块样本标签

针对某云平台服务器的“云铲”挖矿木马事件分析

该模块连接到远程服务器http://www.fullskystar.top,该域名注册时间为2020年10月14日,通过POST请求指定参数,下载文件

表 2-3提交参数

针对某云平台服务器的“云铲”挖矿木马事件分析

2.1.2 添加攻击者的SSH公钥,达到长期控制该系统的目的

图 2-1将密钥信息写入文件

攻击者公钥:

SSH-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEAv54nAGwGwm626zrsUeI0bnVYgjgS/ux7V5phklbZYFHEm+3Aa0gfu5EQyQdnhTpo1adaKxWJ97mrM5a2VAfTN+n6KUwNYRZpaDKiUwmHNUSW7E1S18ClTCBtRsC0rRDTnIrslTRSHlM3cNN+MskKTW/vWz/oE3ll4MMQqexZlsLvMpVVlGq6t3XjFXz0ABBI8GJ0RaBS81FS2R1DNSCb+zORNb6SP6g9hHk1i9V5PjWNqNGXyzWIrCxLc88dGaTttUYEoxCl4z9YOiTw8F5S4svbcqTTVIu/zt/7OIQixDREGbddAaXZXidu+ijFeeOul/lJXEXQK8eR1DX1k2VL+w== rsa 2048-040119

2.1.3 使用内置的密码表对其它IP进行SSH暴力破解,用户名为root,传播挖矿木马。

图 2-2利用密码表进行SSH暴力破解

该挖矿木马使用密码表对相关网段IP进行SSH暴力破解,密码数量共计2000多个,部分如下:

图 2-3 部分密码表


2.1.4 主要针对某云平台相关主机进行SSH暴力破解

在挖矿木马母体中存在一个硬编码的IP地址:8.129.*.*,该IP地址隶属于广东省深圳市某云平台。其SSH暴力破解对象主要以该IP地址作为起始地址,包括其同网段和相邻网段的IP。而IP地址8.129.0.0-8.129.255.255的范围隶属于某云平台。

图 2-4某云平台服务器网段扫描

其中还针对内网、样本所在的外网IP以及部分境外网段进行IP扫描。

图 2-5  境外网段扫描

2.2
挖矿程序分析

表 2-4挖矿程序

针对某云平台服务器的“云铲”挖矿木马事件分析

挖矿程序(kthreadd)运行后连接矿池地址www.fullskystar.top:443进行挖矿。挖矿程序使用upx壳进行了压缩,由开源挖矿程序xmrig修改而来,在此不做详细分析。配置信息如下:

图 2-6 挖矿程序配置信息

2.3
恶意链接库分析

表 2-5恶意链接库

针对某云平台服务器的“云铲”挖矿木马事件分析

该恶意程序为动态链接库文件,通过LD_PRELOAD方式被加载。主要功能是将恶意文件实体和相关的网络链接进行隐藏,当用户使用ls和netstat等命令进行查看时,无法发现恶意文件的存在。对4个字符串ld.so.preload、bioset、kthreadd和libcurl.so.2.17.0进行过滤。

图 2-7 恶意链接库屏蔽的相关信息

当使用命令top,htop命令查看进程,使用命令w查看登录用户,使用uptime查看使用时间,使用ss,netstat查看网络操作时,如果存在上面4个字符串,则不进行显示,隐藏恶意文件相关信息。

图 2-8 恶意链接库注入的相关命令文件


03
检测、处置与加固方案

3.1
检测


网络手动检测方法:

网关或流量镜像处Linux系统上执行如下命令进行检测,短时间内观察是否有异常的SYN数据包来发现类似的对外扫描:

tcpdump -i < interface> -nn "tcp port 22 and ((tcp[tcpflags]&(tcp-syn)!=0)&&(tcp[tcpflags]&(tcp-ack)==0))"

图 3-4流量检测

3.2
处置

由于该挖矿木马通过预加载恶意链接库,给处置带来一定阻碍,清除过程复杂。具体方法如下:

首先,安装busybox,利用该命令结合ps、kill命令结束路径为“/usr/bin/bioset”、“/usr/bio/kthreadd”的进程;其次,将下列文件只读属性去除。并将/etc/ld.so.preload文件内容置空;最后删除下列文件中除/etc/ld.so.preload文件之外的四个文件,以上操作完成后,可在此确认相关文件是否正常删除,若删除完毕,则完成该挖矿木马的清除。

/etc/ld.so.preload

/lib/libcurl.so.2.17.0

/usr/bin/kthreadd

/usr/bin/bioset

/root/.ssh/authorized_keys

以下代码为清除该挖矿木马的shell脚本代码,该代码仅在Centos7中测试,未在其他系统上测试,请参考使用。(若删除root用户的authorized_keys文件会影响实际业务,可手工删除木马写入的攻击者公钥。)

#!/usr/bin/bash

wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 && mv busybox-x86_64 busybox && chmod +x busybox && mv busybox /usr/bin/

busybox ps -ef |grep /usr/bin/kthreadd |grep -v color |awk '{print $1}'| xargs busybox kill

busybox ps -ef |grep /usr/bin/bioset |grep -v color |awk '{print $1}'| xargs busybox kill

busybox chattr -i /etc/ld.so.preload

busybox echo "" >> /etc/ld.so.preload

busybox chattr -i /usr/bin/kthreadd

busybox rm -rf /usr/bin/kthreadd

busybox chattr -i /usr/bin/bioset

busybox rm -rf /usr/bin/bioset

busybox chattr -i /root/.ssh/authorized_keys

busybox rm -rf /root/.ssh/authorized_keys

busybox chattr -i /lib/libcurl.so.2.17.0

busybox rm -rf /lib/libcurl.so.2.17.0

3.3
加固

1. 建议更换root用户密码,密码位数至少为15位,密码元素至少包含三种元素(大小写字母,数字,符号)。

2. 建议在不影响业务的情况下,root用户尽量不对外提供远程访问,可使用其他自定义用户对服务器进行远程维护和管理。

本文作者:AntiyLabs

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/153070.html

Tags:
评论  (0)
快来写下你的想法吧!

AntiyLabs

文章数:35 积分: 205

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号