解决方法
1.首先检查docker容器
因为第一次被入侵,是因为docker被强制上传了两个docker未知容器,我当时是将未知的docker容器强制删除,然后通过top命令查看异常进程,kill -9 pid 杀死进程。
但是这次我将未知容器删除后,cpu占有率由100%下降到50%,仍然很高。我查看top命令,却看不到异常进程,由此猜测,应该是有异常病毒进程。
2.排查病毒
由于收到信息说,我服务器可能在挖矿,最知名的挖矿病毒pnscan,大概就是他了!!!通过,whereis pnscan查看pnscan的位置,查到说明本次病毒是pnscan这个cs。
3.上网找解决方案
借鉴了记录阿里云被挖矿病毒pnscan盯上的一次-CSDN博客
1.下载chattr.c文件
挖矿病毒会隐藏原本的chattr的操作权限,让我们无法删除他,所以需要去下载chattr.c文件,编译成a.out,然后对原来的chattr文件的权限进行修改,然后覆盖他。
chattr.c的下载地址:
https://github.com/posborne/linux-programming-interface-exercises/blob/master/15-file-attributes/chattr.c https://github.com/posborne/linux-programming-interface-exercises/blob/master/15-file-attributes/chattr.c
2.对chattr.c文件操作
依次执行下面命令:
cc chattr.c mv a.out /usr/chattr cd /usr ./chattr -i /usr/bin/chattr mv chattr ./bin/chattr lsattr /usr/bin/chattr #然后查看修改后的属性,只要没有-i -a就行了 yum install e2fsprogs #安装需要的工具 cd root ls cd .ssh # 查看公钥文件的权限属性 lsattr authorized_keys #去掉-ia属性 i不可变属性 a追加属性 chattr -ia authorized_keys chattr -e authorized_keys # 删除里面的信息 vim authorized_keys # 去掉被锁住的权限,该步骤需要到/etc目录下执行 chattr -ie ld.so.preload # 删除里面的所有信息,原文是删除关于pnscan的库,但是我删除了所有信息才有用。 vim /etc/ld.so.preload # 强制删除它们 rm -f /usr/local/bin/pnscan chattr -iea /usr/local/lib/pnscan.so rm -f /usr/local/lib/pnscan.so #恢复kill命令的权限 whereis kill lsattr /usr/bin/kill chattr -ia /usr/bin/kill #使用top命令查看病毒进程 kill -9 pid #检查定时任务 crontab -l
此时头疼的事情发现了,删除病毒进程之后,病毒仍然会生成新的pid,继续出现,查看病毒command为sshd。
3. 病毒进程重复出现
检查对应病毒进程的详细信息,就是看看他在搞什么飞机
#使用ps命令检查sshd进程的详细信息 ps -p pid -o cmd #打印结果是下面两行 CMD /var/tmp/.11/sshd #清理异常文件,正常情况下,`sshd` 进程的二进制文件通常位于系统路径,而不是 `/var/tmp` 目录下。 sudo rm -rf /var/tmp/.11 #执行杀死病毒的命令 sudo kill -9 <PID>
此时,再次查看top,病毒被删除干净!!!!耶斯!!!!!