一、难题现像
事直接原因是忽然辨认出两台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病毒。