记录一次开发环境被注入挖矿木马的解决过程

我是一个计算机安全知识基本为0的新手。

前天23:52,开发环境 centOS 7 服务器出现了一个占用cpu188%的进程,杀掉进程之后会自动重启,并且服务器上所有web应用,浏览器访问时浏览器的cpu占用率也达到了100%。这种现象一看就怀疑是服务器被攻击,中了挖矿木马。

很遗憾没有在当时截下图来,在此我记录一下我是怎么应对的。

进程是root用户打开的,因此可以判断是root用户被黑了。

首先为了防止进一步被攻击,打开原先关闭的防火墙,删除ssh所有已经认证的key,修改ssh端口,禁止root远程登录。

# 打开服务器防火墙
systemctl start firewalld

# 删除ssh认证
rm -rf ~/.ssh/*

修改ssh端口是运维同事帮忙弄的,没仔细研究怎么弄。

而禁止root远程登录,需要修改/etc/ssh/sshd_config

vim /etc/ssh/sshd_config

修改 PermitRootLogin将yes改为no
然后重启sshd服务

service sshd restart

到这一步,基本上就防止了被进一步攻击了,接下来解决服务器上的木马。

首先查看定时任务

crontab -e

发现一大堆定时任务,还是乱码。没法看,那就看日志吧

vim /var/log/cron

看到了罪恶的根源


cron日志

既然定时任务有问题,那就清掉吧,反正我们服务器没有自己写的定时任务。

crontab -r

然后搜一下shz.sh这个文件

find / -name shz.sh

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

lsattr /etc/shz.sh

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

chattr -i /etc/shz.sh

然后删除文件就行了。

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

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

  • 一个短连接
  • 一个短连接重定向之后的js脚本
  • 若干条websocket请求

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

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


2018.10.29 更新
在服务器正常运行8到9小时后,再度沦陷了。由于已经开启了防火墙,因此接下来锁定到防火墙开放的端口。但是。。开发环境服务器的防火墙好像有点扯。

防火墙白名单

不知道是谁添加了这么多端口,首先一个个删掉吧。。

把防火墙清理了一下,然后这次认真观察了定时任务

crontab -e

然后发现定时任务中的数据非常奇怪,都是应用中用 Redis 做缓存存放的一些数据,然后搜了一下有没有 shz.sh这个文件,还真有。

也就是说,服务器被黑很有可能跟 Redis 有关。

上网找到了这篇文章,基本上就是这个原因了 Redis 未授权访问缺陷可轻易导致系统被黑

想了一下我们 Redis 的 auth 也确实够简单的。。

那么首先把 Redis 端口也从防火墙白名单去掉,因为开发环境 Redis 无需暴露到公网。然后把 Redis 的 keys 全清了。

然后,以前因为开发人员的偷懒,所有应用都是用 root 用户部署的。。为了安全性,重新创建了一个 deploy 用户,然后重新安装部署应用。

暂时解决问题了,再观察两天看看吧。

你可能感兴趣的:(记录一次开发环境被注入挖矿木马的解决过程)