记录一次测试环境被挖矿的坑

发现过程

浏览器访问测试服务器时cpu占用资源百分之90以上,电脑基本上什么也干不了,
关闭浏览器后一切正常。
查看网页源代码发现好多js被注入代码,中了挖矿木马。
记录一次测试环境被挖矿的坑_第1张图片

document.write('');
document.write('');
document.write('');

赶紧百度一下,查到这东西叫挖矿,自己的电脑被人当肉鸡了。
赶紧关闭测试机外网

解决过程

  1. 关闭外网,
    开外网主要是需求需要用到小程序,而小程序必须用https,需要打开外网跟域名。
  2. 查找来源
    我们开发代码一般发版时都是用 jenkins,我看一下jenkins打包之后的文件,每次都会被注入挖矿js,猜想应该是通过脚本注入,
    通过命令 根目录查找
find /  -type f -name '*.js'|xargs grep 'http://t.cn/EvlonFh'

发现好多js都被注入了此代码。想想就很恐怖,经百度查询可能是通过定时任务注入的,
赶紧查询一下定时任务

crontab -e

发现里边一大堆定时任务,好多都是乱码
查看日志

vim /var/log/cron

好多定时脚本里边发现有shz.sh
不知道是那些定时任务,并且测试服务器也没有什么定时任务果断清理

crontab -r

然后全局搜索这个shz.sh 这个文件

find / -name shz.sh

找到了文件在/etc/shz.sh
删除,但是,用 root 用户居然说我没删除权限,上网搜一下是因为有 -i 属性,验证一下。

lsattr /etc/shz.sh

确实是有-i属性。
然后修改属性

chattr -i /etc/shz.sh

然后删除文件就行了。
但是被注入的大量js需要处理打算查找并全部替换为空,由于有html标签/会被识别为特殊符号,所以分隔符#
查找内容

find / -type f -name '*.js'|xargs grep 'http://t.cn/EvlonFh'

替换内容

find -type f -name '*.js'|xargs sed -i  "s#document.write('');##g"

以上步骤做完几个小时服务器都是稳定的,大概是能解决了问题。

接下来是web项目的挖矿脚本,在浏览器打开web项目,打开控制台,发现几条神奇的访问记录,包括了:

一个短连接
一个短连接重定向之后的js脚本
若干条websocket请求
看js源码也可以发现源码中就做了websocket请求,并且指向的是一个矿池 https://xmr.omine.org/
好吧,台湾的矿池,莫非是湾湾同胞搞的鬼。
总之这只不过是web项目级别的注入脚本,重新部署就行了,web容器都不用重装。

就此解决这次挖矿木马了。

查找被注入原因

从网上找到原来是redis未设置密码,并开着外网,此处我们测试环境redis还是root用户启动,想想就可以,
赶紧把redis加密码,绑定ip
具体设置请点击

目前运行了一阵子,还未再次出现问题

你可能感兴趣的:(linux,bitcoin)