近期,多台服务器遭遇挖矿行为。先前一台项目上的服务器被“安恒MSS通报”检测到挖矿木马与矿池通信,但在查看服务器时无明显异常进程,且无高占用CPU进程。大抵是该木马还开始进一步占用CPU。

原因:猜想应该是弱密码的某个用户被破解了密码,好在root用户的密码应该没有被破解。

解决方式:启防火墙,屏蔽大部分出入端口,只留必要的。

现又有一台项目上的完全自用服务器出现挖矿问题,CPU核心被完全占用了一半,但是在使用htop查看时,无法直观的查看到具体高占用CPU的那个进程。显然该进程被隐藏了。

解决流程

1、查找确认该异常进程

由于htop是第三方指令无法显示出隐藏进程,而该木马可能是内核级的隐藏,为了能够直接查找到该进程,会用到以下两个命令。如果没有这两个命令的话,则需要额外安装。

sysdig -c topprocs_cpu # 该命令可以输出cpu占用的排行,经测试可以显示出被隐藏的进程

unhide proc # 自助搜索隐藏进程,linux系统中一切皆文件,proc目录下保存的就是所有正在运行程序的进程ID,即PID

sysdig -c topprocs_cpu (查看到高占用的隐藏进程)

进入挖矿进程的PID目录下,可看出该进程的运行信息。

cd /proc/60818后执行ls -al

2、采取措施

这里显式执行程序已被删除,这里单纯只是系统没有识别到的原因,并不是被真的删除。这里先别急直接用将进程删除掉,以免再次挂起。

# 首先用如下命令查询进行是如何被运行的

systemctl status 60818 # 60818为病毒的PID

# 这里的输出结果PID目录下environ文件内容是类似的

结果输出如下

其中bf1e7ddf为病毒进程

这里前前后后删了多次挖矿进程,所以每次挖矿进程的可执行程序的名字和PID都不一样,不过名字都是由8位的16进制数字组成。可以看出这个挖矿进程是被一个mdcheck什么服务启动的。

# 所以这里我先通过如下命令将该服务停掉

journalctl -u mdcheck-4838751a # 终止之前可以用该命令查看服务运行状态

systemctl stop mdcheck-4838751a # 终止该挖矿服务

systemctl disable mdcheck-4838751a # 终止该挖矿服务的开机自启

从上图中可看出终止之后再查看该挖矿进程状态,其中的服务已经变为失败状态。

# 挖矿病毒都会有定时的网络发送信息,所以可用如下命令查看在病毒运行期间,是否存在异常IP地址

netstat -natp

这里我没有截图留念。其中发现了一个来自美国的IP和一堆欧洲IP链接,经过分析后,这个美国IP是黑客日常发送指令的位置,欧洲IP是接收挖矿密钥的位置。

# 知道这些后,我们可以用防火墙firewalld或iptables对这些IP进行封禁

iptables -I INPUT -s IP -j DROP

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP" reject'

# 其中IP字段替换为真实的黑客IP

但是发现系统提示说是没有iptables指令,我用whereis命令进行查询发现,系统中存在iptables的源文件,但是可执行文件缺失,我就从相同系统环境的另一台机器上把iptables复制过来,并通过如下命令启动防火墙服务。

systemctl enable iptables # 开机自启

systemctl start iptables # 打开服务

然后通过之前的命令把黑客IP进行封禁。

但是重启电脑之后,被关闭的病毒服务又回来了,iptables也被第一时间删除。看来简单关闭挖矿服务是不行的,需要完整的删除。

在上图中,我们可以看到挖矿服务在/etc/dns/mdcheck-的目录下。但是一通操作后,发现目录下是空的。甚至在/etc/dns/下也查询不到mdcheck-文件下,除非输入完整路径信息。

挖矿服务目录

这里我想复制一份挖矿服务程序出来,系统提示如下报错

Operation not permitter

root都没权限进行操作。一通检索后才知,linux怕用户误删一些系统必要指令和文件进行的保护,可通过如下命令进行解除。

chattr -iR /etc/dns # 解除改目录的误删保护,R为递归执行,但是文件夹下的病毒都被隐藏,所以这里的R其实没有起作用

这里需要分别用chattr对该目录下的文件逐一全名的进行解除。然后通过rm -rf对dns目录进行删除。最后再利用kill -9命令将挖矿进程删掉,再次重启之后,挖矿服务没有再次被启动。

通常的病毒只会在crontab中写入定时自启病毒,所以直接删掉即可,这次的病毒在linux系统中注入了服务,让人难以搜索到,尤其是对病毒进程和文件夹进行了隐藏操作,防不胜防。

有条件的可以将服务器中ssh登录都设置为rsa免密登录,这样可以避免绝大多数问题。一般黑客是通过尝试用户名和密码对服务器进行攻击,但是每台服务器中用户名都不同,所以很难攻击,但是root名称一般不会变,所以黑客一般是先攻击这个名称。

----------------------

---------------------

该文章参考修改自知乎专栏,原文地址记录一次服务器被挖矿经历... - 知乎前一段时间,导师服务器计算机无故空转,找我来帮忙处理一下,第一反应,机器应该是被挖矿了,前前后后处理了两周左右才完全删干净,这次的挖矿病毒和往常的不太一样,比较会隐藏,这里简单记录一下。 用ssh远程链…https://zhuanlan.zhihu.com/p/677622575

其他可供参考文章挖矿病毒处置(Linux篇) ——从入门到放弃-网络安全专题网​小伙伴们,有没有碰到过服务器莫名其妙突然卡顿、风扇狂转、4路E7加4路泰坦扫雷卡成10帧的情况?恭喜你,电脑被“挖矿”了!本期我们就来谈谈处理Linux服务器(工作站)感染挖矿病毒的方法。TLDR: 根据攻击者和攻击手段的不同,普通人没有办法可以100%确定地清除系统感染的恶意软件,建议备份重要数据后直接重装系统,重装完成后按照我们之前文章的办法进行加固。确定防护加固完成后,恢复用户数据时,需甄别并剔除可执行文件...https://wlaq.xjtu.edu.cn/info/1006/1946.htm 

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: