注意:线上当时没截图,以下截图均为解决问题后截取的。
使用top命令可看到CPU使用180%~200%。
$ top
使用free -m 查看内存使用情况,此时内存并没多少占用。
$ free -m
系统符合被挖矿特征,同时阿里云控制台也检测到疑似被挖矿程序入侵。
首先通过top命令可以查看到进程的pid:
可以通过ls -l /proc/xxx/exe命令查找到进程对应资源的位置,xxx表示进程的pid。
# xxx为pid
$ ls -l /proc/xxx/exe
查找到文件位置之后,就可以kill掉问题进程:
# pid为问题进程的pid
$ kill -9 pid
此时可以去对应的资源路径删除对应的资源,但是木马文件一般删除不掉,因为修改了属性。
扩展知识点:
chattr和lsattr
chattr和lsattr用来改变文件、目录属性和查看这种文件属性;chmod只是改变文件的读、写、执行权限,更底层的属性控制是由chattr来改变。
文件隐藏属性
- a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
- c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
- d:即no dump,设定文件不能成为dump程序的备份目标。
- i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
- j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
- s:保密性地删除文件或目录,即硬盘空间被全部收回。
- u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
此时通过lsattr命令查看文件权限:
# fileName为文件名称
$ lsattr fileName
这个是正常的文件,当时病毒文件还有a、i属性,所以不能直接使用他们rm -rf删除。
如下图:
删除文件前必须先需要去除a、i属性,所以使用chattr命令去除属性。
# fileName为文件名称
$ chattr -a fileName
$ chattr -i fileName
但此时很意外,居然提示:
刚开始还以为是真的权限不足,到处去查权限,走了不少弯路。后台才发现,这病毒作者真狗!
查看chattr位置:
$ whereis chattr
查看文件内容:
$ cat /usr/bin/chattr
!!!
知道这作者有多那啥了吧。后来找到另外一个正常系统的chattr文件,想把正常内容替换到病毒文件中。
但是!chattr文件也被设置了a、i隐藏属性!这…这不是套娃了嘛。
再后来将正常的chattr文件重命名为chattrNew,复制到问题系统的/usr/bin/中,再使用
$ chattrNew -a chattr
$ chattrNew -i chattr
就可以删除chattr文件了,
$ rm -rf /usr/bin/chattr
然后再将chattrNew文件重命名为chattr:
$ mv /usr/bin/chattrNew /usr/bin/chattr
现在,chattr命令就可以正常使用了!
再使用chattr命令去掉病毒文件的a、i属性:
$ chattr -a fileName
$ chattr -i fileName
现在就可以删除病毒文件了!大功告成!