因为我在工作的时候被各种挖矿病毒搞过几次,所以在这里整理下我遇到的病毒以及大神们的解决方案。
服务器中挖矿病毒后,最基本的一个特征就是CPU使用率瞬间飙升,此时可以通过top命令进行查看,确认是否有异常进程,当然有一些挖矿病毒稍微高级一些,比如pamdicks,它的进程是隐藏的,通过unhide命令或者使用sysdig命令可以查看。
挖矿病毒的特点:
1、文件/定时任务删除失败-------------------文件只读属性保护
2、文件/定时任务删完又出现-----------------系统文件替换/下载进程残留
3、病毒进程刚刚删完又被拉起---------------恶意进程守护
4、主机严重卡顿但找不到挖矿进程-----------系统命令劫持
5、主机杀干净后一段时间又出现病毒---------ssh&漏洞再次入侵
当服务器中挖矿病毒后,很有可能系统命令被黑客替换,导致执行某系统命令时,有可能执行被黑客注入到服务器的恶意程序,所以服务器上最好提前安装个busybox。
1、 pnscan
比较有名的挖矿蠕虫病毒,攻击手段为通过redis感染服务器,如果redis的端口为默认的6379且暴露在公网上,且没有设置客户端连接密码认证,很容易感染,这个病毒是分级别的,好在我遇到的是比较简单的,解决方法如下
(1)首先通过busybox top查看pnscan的路径,
(2)删除pnscan,可能文件是只读的,不能被删除,需要通过busybox lsattr 文件名查看文件的属性,一般属性是-a或者-i,然后执行busybox chattr –a/-i 文件名更改文件属性后即可删除
(3)杀掉pnscan相关进程
2、rshim
挖矿病毒的一种,常见于以root用户启动redis服务,并且redis使用默认端口,导致6379端口被攻击。解决方法跟pnscan差不多,在查找文件和进程的时候,发现由hilde用户执行,在home目录下多了个hilde目录,里面创建了免密登录的公钥,需要hilde整个目录删除,之后执行userdel –r hilde删除该用户
图片没截全,简单看看就行
3、[scan]
这个具体不清楚是什么病毒,看网上说也是通过redis进行攻击的,本次cpu占满也是因为这个进程,解决方案跟上面相似,也是先查路径,再删文件,再杀进程。通过查看它的文件,我们可以看到如下图所示的代码。
通过它的脚本看到redis-cli –h….相关的代码,查看进程发现果然多了一个redis-cli的进程。具体是什么作用,这里不做研究,只知道要把脚本删掉,把这个进程杀掉就可以了。
然后我在查看磁盘空间的时候,发现根目录磁盘使用情况不太正常,推测应该是被脚本恶意生成了隐藏文件,我进入到根目录下ls –a查看,发现多出了很多如下图所示的文件。
都是.r.*这种格式的文件,查了一下发现这种文件有四万多个,果断删掉,把这些文件删掉后,再查看磁盘使用情况,已经正常了。
4、pamdicks
这是我之前工作就遇到过的挖矿木马,也是第一个遇到的,当时没什么经验,弄到很晚,这里有朋友圈为证
可以看出来啊,这个木马特别的猛啊,8核的cpu瞬间干满,不断启动pamdicks进程,服务器不断重启,操作起来特别卡。解决方案就是删除原文件,并创建一个顶包空文件,然后使用系统chattr对其进行锁定禁止修改。命令如下。
rm -rf /usr/bin/pamdicks /bin/pamdicks
touch /usr/bin/pamdicks /bin/pamdicks
chattr +i /usr/bin/pamdicks /bin/pamdicks
然后再杀进程就可以了。
本次服务器被入侵,被人植入了密钥文件,导致入侵者可以免密登录服务器,在redis中看到了一个很奇怪的key,它的value的意思是一个定时任务通过curl下载某个sh脚本,并执行,看到网上的一位博主,总结的很好,它总结的原因如下。
1.redis没有做任何安全措施,直接暴露在公网,任何redis客户端都可以直接连接。
2.被恶意的连接连接上后,在他的机器上生成ssh秘钥,然后set到redis中,最后使用redis的config命令,将默认RDB方式出来的dump.rdb文件修改为authorized_keys,然后把文件的目录设置到/root/.ssh下。
3.这样一来,就非常危险了,攻击者可以直接ssh到你的linux主机,接下来,root账户,为所欲为。被挖矿也就不稀奇了。
建议:redis一定要设强密码,改端口,端口尽量不要对外开放。
不要以为在外网redis的端口不通就没有事情。只要内网里有机器感染了病毒,就可以继续感染。