一、问题产生
1.服务器内存异常
Top面板查看服务器内存情况时,发现有不知去向的内存。一部分内存空间观测不到程序的占用。
二、问题发现
1.Top面板上展示异常
Top面板展示刚才输入的top命令异常:
2.Top命令被篡改
进入目录/usr/bin中查找top可执行文件:
ll /usr/bin/top*
展示:
通过文件大小判断,top命令被篡改,看看里面内容:
由内容可知,top命令被篡改桥接,原top文件已被命名为:top.lanigiro。并且,在top面板上隐藏了名为ddns、httpd的程序
三、病毒排查
1.恢复top面板
1.1.思路
恢复top面板的步骤是将原top文件恢复。现在,原top文件名为top.lanigiro,只要将现在的top文件删除,再将top.lanigiro文件重命名为top即可。
1.2.操作
1)在此之前,先做好文件的备份:
cp top top.bak
cp top.lanigiro.bak
2)将top命名为top.rm
mv top top.rm
3)系统提示:
推测文件被加修改锁,lsattr命令查看:
证实了猜测,接下来解锁:
chattr -i top
系统提示:chattr命令不存在。
这是由于病毒入侵时,将文件加锁后,删除了解锁文件的命令,也就是在文件目录/usr/bin下将chattr可执行文件删除了,以达阻止运维人员恢复top面板的目的。
4)恢复chattr命令。好在有同型号的阿里云ECS服务器,从这台上面拷贝进去,再赋予执行权限。输入chattr后提示:
chattr命令恢复成功!紧接着恢复top面板。
5)恢复top面板。将这两个被篡改的文件解锁:
Top面板成功恢复!可以删除刚才的备份文件
mv top top.rm
mv top.lanigiro top
2.排查病毒入侵目录及文件
上述步骤将top面板恢复,接下来可以查看病毒想在top面板上隐藏的内容:
top进入面板输入C(展示运行命令)、输入P(展示按CPU排序),可得到上图。
发现在/var/tmp/.crypto/…目录下运行着名为ddns的隐藏可执行程序,占用100%的CPU空间,并且启动用户居然为root!
接下来进入到上述目录:
cd /var/tmp/.crypto/...
考虑到该病毒隐藏文件惯用手法,使用ll -a命令查看,发现:
这就是挖矿程序的运行目录!此目录下,ddns的用户为lsb,先记着稍后再处理。同时有ddns.log文件,看一下日志内容:
通过上图可以很清楚看到它的操作。
回到刚才发现ddns的用户为lsb这个问题点,将此用户标记为可以用户,推测为病毒创建的用户角色,前往验证。
cd /etc时间倒序查看最近修改的文件发现这些文件均被加锁,使用chattr:
前几个均为近期统一时间进行的修改,注意查看sudoers发现有为此用户分配权限痕迹:为这个可以用户分配了所有权限
为此用户创建的影子:
为此用户分配的密码:
定时任务获取升级脚本:
四、病毒清理
注意:以下操作涉及修改、删除文件记得备份!备份方式 cp重命名.bak
1.切断免认证后门
1.1删除可疑用户lsb的登录key,目录:/home/lsb/.ssh解锁后删除。
1.2删除root用户ssh登录key,目录:/root/.ssh
注意/root/.ssh/目录下保留authorized_keys空文件
2.删除入侵文件
2.1删除用户lsb在home中的目录:rm -rf /home/lsb
2.2删除crypto执行目录:rm -rf /var/tmp/.crypto
2.3清理/etc/cron.d/zzh文件
2.4清理/etc/crontab里面内容,可以从其他服务器上参照原始数据
3.杀进程
杀进程
- 清理入侵用户及用户组
清理入侵用户及用户组,将/etc下入侵时篡改的用户组、用户及相关影子文件恢复(以-结尾的几个文件)。
五、后续处理
该病毒入侵可由Redis端口扫描入侵,因此Redis密码切记设置复杂些,禁止应用无密码‘裸奔’。
内存无法释放时,使用reboot进行服务器重启。