刚入职一家公司,突然一台直接扔到公网的开发测试机,出现output流量暴增300M+,直接导致服务器负载飙高,IDC的cacti监控报告了流量异常问题,下面是排查过程:
1、vim /root/.bash_history # 查看root用户操作命令记录文件,任何信息没有,被清楚
2、vim /var/log/secure # 查看登录日志,发现好多登录失败尝试记录,估计肯定不破解了
3、ps netstat 等命令查看 无任何问题
任何信息都没有,都被掩盖,突然想到,搜索整个系统在最近的修改过的文件
1、find / -mmin -12 | egerp -v 'proc|module' >> film.txt
看看最近被修改的文件,发现两个可以启动,为什么呢?
因为selinux服务器上大多数都是被关闭,在问题时间内被启动肯定可以,还有DbSecuritySpt陌生程序启动,肯定有问题,顺着着两个问题向下查找/etc/rc.d目录。
还有重大发现就是很多查看命令如:ps ss netstat lsof等在最近都被改动过,怀疑现在所使用的命令已经被更换修改了,一会使用find命令搜索一下,系统中是否还有这些命令。
2、使用find命令去扫描/etc/rc.d目录下有多少目录包含这两个程序的启动信息
3、使用ll -rt命令先去/etc/rc.d/rc3.d目录下看一下,最近被修改的文件
4、查看一下这两个在/etc/init.d目录下的启动脚本里边的内容
在这里发现了两个可以文件unama与getty
5、上边已经提的,很多查看命令被修改过,所以现在查一下
搜索一个命令看一下,发现在/usr/bin/dpkgd下还有这个命令
6、查看一下这些命令的修改时间,说明在12月02号就被入侵,并且修改了系统参数。
初步估计这些在dpkgd下的命令才是系统原来的,而现在在/bin下的那些命令已经被修改过,估计功能就是,预防运维人员使用这些命令查看时,可以掩盖木马病毒的信息,那么解决方法就是,把dpkgd下的命令覆盖还原
7、再到/usr/bin /bin等目录下使用 ll -art命令查看一下最近被修改的文件,主要去命令所在目录查看一些伪装命令。自从我使用ll -art发现最近伪装的命令后,我不嫌其烦的去查看了 好多目录。
注:这里边有的日期对不上,是因为第一次处理删除没太在意,没想到死灰复燃了,然后第二次好好的排查了一下,发现还有很多问题。
并且注意,moni.lod等等里面存的都是pid,使用正常的ps命令按里边的pid搜一下,发现都是伪装的命令进程,如下
# cat moni.lod
11526
# ps -ef | grep 11526
root 11526 1 0 Dec17 ? 00:00:00 /usr/bin/.sshd 木马进程
root 11527 11526 0 Dec17 ? 00:00:04 /usr/bin/.sshd
root 15686 15664 0 23:27 pts/0 00:00:00 grep 11526
# cat gates.lod
15692
# ps -ef | grep 15692
root 15692 1 0 Dec21 ? 00:00:00 /bin/unama 木马进程
root 15744 15692 0 Dec21 ? 00:00:00 /bin/unama
root 16087 15777 0 00:08 pts/0 00:00:00 grep 15692
kill -9 15692 15744 11527 11526
到这里,差不多关联能找到的基本都找到了,下面做的就是删除、覆盖操作
1、先把命令替换回去,下面给出我操作的例题
which ss # 查看ss命令路径
mv /usr/sbin/ss /usr/sbin/ss.Trojans # 备份标注/usr/sbin/ss 被感染的命令
cp -rfp /usr/bin/dpkgd/ss /usr/sbin # 把备份的命令拷贝到 /usr/sbin下
chattr +i /usr/bin/ss
# lsattr /usr/bin/ss
----i---------- /usr/bin/ss
2、删除(其中rc1.d---rc5.d下的都要删除)
rm -rf /etc/rc.d/rc2.d/S97DbSecuritySpt
rm -rf /etc/rc.d/rc2.d/S99selinux
rm -rf /etc/rc.d/init.d/DbSecuritySpt
rm -rf /etc/rc.d/init.d/selinux
rm -rf /usr/bin/bsd-port
rm -rf /bin/unama
rm -rf /usr/bin/.sshd
rm -rf /tmp/gates.lod
rm -rf /tmp/moni.lod
# ps aux | grep getty
# ps aux | grep unama
重启服务器,再次查看