<返回更多

一次服务器沦陷为肉鸡后的排查过程

2023-01-03    互联共商
加入收藏

一、问题现象

事情起因是突然发现一台oracle服务器外网流量跑的很高,明显和平常不一样,最高达到了200M左右,这明显是不可能的,因为oracle根本不与外界交互,第一感觉是服务器被入 侵了。被人当做肉鸡了,在大量发包。

这是台centos7.5 64位的系统,已经在线上运行了70多天了。

二、排查问题

排查问题的第一步是查看此服务器的网络带宽情况,通过监控系统显示,此台服务器占满了200M的带宽,已经持续了半个多小时,接着第二步登录服务器查看情况,通过ssh登录服务器非常慢,这应该就是带宽被占满的缘故,不过最后还是登录上了服务器,下面是一个top的结果;


 

可以看到,有一个异常的进程占用资源比较高,名字不仔细看还真以为是一个Web服务进程。但是这个Nginx1确实不是正常的进程。

接着,通过pe -ef命令又发现了一些异常:


 

发现有个/etc/nginx1进程,然后查看了这个文件,是个二进制程序,基本断定这就是木 马文件。

同时又发现,/usr/bin/dpkgd/ps -ef这个进程非常异常,因为正常情况下ps命令应该在/bin目录下才对。于是进入/usr/bin/dpkgd目录查看了一下情况,又发现了一些命令,如下图所示:


 

由于无法判断,用了最笨的办法,找了一台正常的机器,查看了一下ps命令这个文件的大小,发现只有80K左右,又检查了/usr/bin/dpkgd/ps,发现文件大小不对,接着又检查了两个文件的md5,发现也不一样。

初步判断,这些文件都伪装的外壳命令,其实都是有后门的木 马.

继续查看系统可疑目录,首先查看定时任务文件crontab,并没有发现异常,然后查看系统启动文件rc.local,也没有什么异常,接着进入/etc/init.d目录查看,又发现了比较奇怪的脚本文件DbSecuritySpt、selinux,如下图所示:


 

这两个文件在正常的系统下是没有的,所以也初步断定是异常文件。

接着继续查看系统进程,通过ps -ef命令,又发现了几个异常进程,一个是/usr/bin/bsd-port,另一个是/usr/sbin/.sshd,这两个进程时隐时现,在出现的瞬间被我抓到了。

查看发现/usr/bin/bsd-port是个目录,进入目录,发行了几个文件,如下图:


 

有getty字眼,这不是终端管理程序吗,它用来开启终端,进行终端的初始化,设置终端,这里出现了终端,马上联想到是否跟登录相关,于是紧接着,又发现了/usr/sbin/.sshd,很明显,这个隐藏的二进制文件.sshd就是个后 门文件,表面像sshd进程,其实完全不是。

最后,又查看了木 马最喜欢出现的目录/tmp,也发现了异常文件,从名字上感觉好像是监控木 马程序的,如下图所示:


 

检查到这里,基本查明了系统中可能出现的异常文件,当然,不排除还有更多的,下面的排查就是查找更多可疑文件,然后删除即可。

三、查杀病毒文件

要清楚系统中的牧马病毒,第一步要做的是先清除这些可疑的文件,这里总结了下此类植入牧马各种可疑的文件,供大家参考:

检查是否有下面路径文件

cat /etc/rc.d/init.d/selinux cat /etc/rc.d/init.d/DbSecuritySpt ls /usr/bin/bsd-port ls /usr/bin/dpkgd

检查下面文件大小是否正常,可以和正常机器中的文件做比对:

ls -lh /bin.NETstat ls -lh /bin/ps ls -lh /usr/sbin/lsof ls -lh /usr/sbin/ss

如果发现有上面可疑文件,需要全部删除,可删除的文件或目录如下:

rm -rf /usr/bin/dpkgd (ps netstat lsof ss) #这是加壳命令目录 rm -rf /usr/bin/bsd-port #这是木 马程序 rm -f /usr/bin/.sshd #这是木 马后门 rm -f /tmp/gates.lod rm -f /tmp/moni.lod rm -f /etc/rc.d/init.d/DbSecuritySpt #这是启动上述描述的那些木 马后的变种程序 rm -f /etc/rc.d/rc1.d/S97DbSecuritySpt #删除自启动 rm -f /etc/rc.d/rc2.d/S97DbSecuritySpt rm -f /etc/rc.d/rc3.d/S97DbSecuritySpt rm -f /etc/rc.d/rc4.d/S97DbSecuritySpt rm -f /etc/rc.d/rc5.d/S97DbSecuritySpt rm -f /etc/rc.d/init.d/selinux #这个selinux是个假象,其实启动的是/usr/bin/bsd-port/getty程序 rm -f /etc/rc.d/rc1.d/S99selinux #删除自启动 rm -f /etc/rc.d/rc2.d/S99selinux rm -f /etc/rc.d/rc3.d/S99selinux rm -f /etc/rc.d/rc4.d/S99selinux rm -f /etc/rc.d/rc5.d/S99selinux

上面的一些命令(ps netstat lsof ss)删除后,系统中这些命令就不能使用了,怎么恢复这些命令呢,有两种方式:一个是从别的同版本机器上拷贝一个正常的文件过来,另一个是通过rpm文件重新安装这些命令。

例如,删除了ps命令后,可以通过yum安装ps命令:

[root@server ~]#yum -y reinstall procps

其中,procps包中包含了ps命令。

[root@server ~]#yum -y reinstall net-tools [root@server ~]#yum -y reinstall lsof [root@server ~]#yum -y reinstall iproute

上面三个命令是依次重新安装netstat、lsof、ss命令。

四、找出异常程序并杀死

所有可疑文件都删除后,通过top、ps等命令查看可疑进程,全部kill掉即可,这样进程kill之后,因为启动文件已经清除,所以也就不会再次启动或者生成牧马文件了。

这个案例是个典型的文件级别rootkit植入系统导致的,最后检查植入的原因是由于这台oracle服务器有外网IP,并且没设置任何防火墙策略,同时,服务器上有个oracle用户,密码和用户名一样,这样一来,黑 客通过服务器暴露在外网的22端口,然后通过暴力破解,通过这个oracle用户登录到了系统上,进而植入了这个rootkit病毒。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>