一次Linux服务器被入侵和删除木马程序的经历 误删centos的ps命令,恢复

转载时请务必以超连接形式标明文章 原始出处 、做者信息和本声明。不然将追究法律责任。http://wzlinux.blog.51cto.com/8021085/1740113html

1、背景

    晚上看到有台服务器流量跑的很高,明显和日常不同,流量达到了800Mbps,第一感受应该是中木马了,被人当作肉鸡了,在大量发包。linux

    咱们的服务器为了最好性能,防火墙(iptables)什么的都没有开启,可是服务器前面有物理防火墙,并且机器都是作的端口映射,也不是常见的端口,按理来讲应该是满安全的,可能最近和木马有缘吧,总是让我遇到,也趁此次机会把发现过程记录一下。nginx

注:上面是原做者的话,我本人是在处理阿里云服务器时候找到这篇文章的,经过按照文中手动清除木马的方式完成的。web

2、发现并追踪处理

一、查看流量图发现问题

    查看的时候网页很是卡,有的时候甚至没有响应。算法

wKiom1as-dyQlUCeAAFWXnyaceU258.png

二、top动态查看进程

    我立刻远程登陆出问题的服务器,远程操做很卡,网卡出去的流量很是大,经过top发现了一个异常的进程占用资源比较高,名字不仔细看还真觉得是一个Web服务进程。centos

wKioL1as-nOSab6eAACPx1Gw2qc060.png

三、ps命令查看进程的路径

     发现这个程序文件在/etc目录下面,是个二进制程序,我拷贝了下来,放到了本文附近位置,以供你们在虚拟机上面研究,哈哈。安全

wKiom1as-k-TydDMAADaZz0UV1k116.png

四、结束异常进程并继续追踪

killall -9 nginx1
rm -f /etc/nginx1

    干掉进程以后,流量马上下来了,远程也不卡顿了,难道删掉程序文件,干掉异常进程咱们就认为处理完成了么?想一想也确定没那么简单的,这个是木马啊,确定还会本身生成程序文件(果真不出我所料,在我没有搞清楚以前,后面确实又生成了)咱们得继续追查。bash

五、查看登陆记录及日志文件secure

    经过命令last查看帐户登陆记录,一切正常。查看系统文件message并无发现什么,可是当我查看secure文件的时候发现有些异常,反正是和认证有关的,应该是尝试连进来控制发包?服务器

wKioL1as_jORDywFAAFogdyG4v8317.png

六、再次ps查看进程

    其实第一次ps的时候就有这个问题,那时候没有发现,第二次是自习查看每一个进程,自习寻找不太正常的进程,发现了一个奇怪的ps进程。网络

wKiom1as_uDj_cZWAAA1rhjR00k722.png

    我找了一台正常的机器,查看了一下ps命令的大小,正常的大约是81KB,而后这台机器上面的ps却高达1.2M,命令文件确定是被替换了。

wKioL1as_52wGvNHAAASrsFyr24589.png

   而后进入另外一个ps的目录,看到有以下几个命令,而后我有查询了一下系统的这几个命令,发现都变得很大,都达到了1.2M,这些系统命令文件确定是都被替换了。

wKiom1as__TQk4K_AAAn0k9evMk278.png

七、更多异常文件的发现

   查看定时任务文件crontab并无发现什么一次,而后查看系统启动文件rc.local,也没有什么异常,而后进入/etc/init.d目录查看,发现比较奇怪的脚本文件DbSecuritySpt、selinux。

wKioL1atApfgw78ZAAB5n-v2zfM656.png

    第一个文件能够看出他就是开机启动那个异常文件的,第二个应该和登陆有关,具体我还不是很清楚,反正确定是有问题的。

wKioL1atBB_gx4vbAAAivNZ8pRs292.png

   既然和登陆有关,那就找和ssh相关的,找到了下面的一个文件,是隐藏文件,这个也是木马文件,咱们先记录下来,这样程序名字都和咱们的服务名字很相近,就是为了迷惑咱们,他们的大小都是1.2M,他们有多是一个文件。

wKiom1atBQbz_CoYAAATGOPwJ50519.png

   我有看了一下木马喜欢出现的目录/tmp,也发现了异常文件,从名字上感受好像是监控木马程序的。

wKiom1atBnyg7i6dAACRJQNJKns664.png

    想到这里,替换的命令应该不少,单靠咱们去找确定是解决不了的,个人建议最好是重装操做系统,并作好安全策略,若是不重装,我下面给一下个人方法,具体行不行有待验证。

3、木马手动清除

    如今综合总结了大概步骤以下:

一、简单判断有无木马

#有无下列文件
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

二、上传以下命令到/root下

ps netstat ss lsof

三、删除以下目录及文件

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(默认是启动/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

四、找出异常程序并杀死

wKiom1au_5bTmDcwAADhJw0_ZTE611.png

五、删除含木马命令并从新安装(或者把上传的正常程序复制过去也行)

    我本身从新安装好像不行,我是找的正常的机器复制的命令。(centos使用rpm安装也能够,参考个人文章误删centos的ps命令,恢复)

#ps
/root/chattr -i -a /bin/ps && rm /bin/ps -f
yum reinstall procps -y 或 cp /root/ps /bin
#netstat
/root/chattr -i -a /bin/netstat && rm /bin/netstat -f
yum reinstall net-tools -y 或 cp /root/netstat /bin
#lsof
/root/chattr -i -a /bin/lsof && rm /usr/sbin/lsof -f
yum reinstall lsof -y 或 cp /root/lsof /usr/sbin
#ss
/root/chattr -i -a /usr/sbin/ss && rm /usr/sbin/ss -f
yum -y reinstall iproute 或 cp /root/ss /usr/sbin
经过上面的手动删除步骤,发现木马已经不存在了

4、杀毒工具扫描

一、安装杀毒工具clamav

yum -y install clamav clamav-milter

二、启动服务

service clamd restart

三、更新病毒库

    因为ClamAV不是最新版本,因此有告警信息。能够忽略或升级最新版本。

[root@mobile ~]# freshclam 
ClamAV update process started at Sun Jan 31 03:15:52 2016
WARNING: Can't query current.cvd.clamav.net
WARNING: Invalid DNS reply. Falling back to HTTP mode.
Reading CVD header (main.cvd): WARNING: main.cvd not found on remote server
WARNING: Can't read main.cvd header from db.cn.clamav.net (IP: 185.100.64.62)
Trying again in 5 secs...
ClamAV update process started at Sun Jan 31 03:16:25 2016
WARNING: Can't query current.cvd.clamav.net
WARNING: Invalid DNS reply. Falling back to HTTP mode.
Reading CVD header (main.cvd): Trying host db.cn.clamav.net (200.236.31.1)...
OK
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
Reading CVD header (daily.cvd): OK (IMS)
daily.cvd is up to date (version: 21325, sigs: 1824133, f-level: 63, builder: neo)
Reading CVD header (bytecode.cvd): OK (IMS)
bytecode.cvd is up to date (version: 271, sigs: 47, f-level: 63, builder: anvilleg)

四、扫描方法

    可使用clamscan -h查看相应的帮助信息

clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log
clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log
clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log
clamscan -r --remove /usr/bin/bsd-port
clamscan -r --remove /usr/bin/

五、查看日志发现

   把发现的命令删掉替换正常的

wKioL1ato5WhI0v2AABTpf1Tq0I913.png

附录:Linux.BackDoor.Gates.5

    通过查询资料,这个木马应该是Linux.BackDoor.Gates.5,找到一篇文件,内容具体以下:

    某些用户有一种根深蒂固的观念,就是目前没有可以真正威胁Linux内核操做系统的恶意软件,然而这种观念正在面临愈来愈多的挑战。与4月相比,2014年5月Doctor Web公司的技术人员侦测到的Linux恶意软件数量创下了新纪录,六月份这些恶意软件名单中又增长了一系列新的Linux木马,这一新木马家族被命名为Linux.BackDoor.Gates。

    在这里描述的是恶意软件家族Linux.BackDoor.Gates中的一个木马:Linux.BackDoor.Gates.5,此恶意软件结合了传统后门程序和DDoS攻击木马的功能,用于感染32位Linux版本,根据其特征能够判定,是与Linux.DnsAmp和Linux.DDoS家族木马同出于一个病毒编写者之手。新木马由两个功能模块构成:基本模块是可以执行不法分子所发指令的后门程序,第二个模块在安装过程当中保存到硬盘,用于进行DDoS攻击。Linux.BackDoor.Gates.5在运行过程当中收集并向不法分子转发受感染电脑的如下信息:

  • CPU核数(从/proc/cpuinfo读取)。

  • CPU速度(从/proc/cpuinfo读取)。

  • CPU使用(从/proc/stat读取)。

  • Gate'a的 IP(从/proc/net/route读取)。

  • Gate'a的MAC地址(从/proc/net/arp读取)。

  • 网络接口信息(从/proc/net/dev读取)。

  • 网络设备的MAC地址。

  • 内存(使用/proc/meminfo中的MemTotal参数)。

  • 发送和接收的数据量(从/proc/net/dev读取)。

  • 操做系统名称和版本(经过调用uname命令)。

    启动后,Linux.BackDoor.Gates.5会检查其启动文件夹的路径,根据检查获得的结果实现四种行为模式。

    若是后门程序的可执行文件的路径与netstat、lsof、ps工具的路径不一致,木马会假装成守护程序在系统中启动,而后进行初始化,在初始化过程当中解压配置文件。配置文件包含木马运行所必须的各类数据,如管理服务器IP地址和端口、后门程序安装参数等。

    根据配置文件中的g_iGatsIsFx参数值,木马或主动链接管理服务器,或等待链接:成功安装后,后门程序会检测与其链接的站点的IP地址,以后将站点做为命令服务器。

    木马在安装过程当中检查文件/tmp/moni.lock,若是该文件不为空,则读取其中的数据(PID进程)并“干掉”该ID进程。而后Linux.BackDoor.Gates.5会检查系统中是否启动了DDoS模块和后门程序自有进程(若是已启动,这些进程一样会被“干掉”)。若是配置文件中设置有专门的标志g_iIsService,木马经过在文件/etc/init.d/中写入命令行#!/bin/bash\n<path_to_backdoor>将本身设为自启动,而后Linux.BackDoor.Gates.5建立下列符号连接:

1
2
3
4
ln  -s  /etc/init .d /DbSecuritySpt  /etc/rc1 .d /S97DbSecuritySpt
ln  -s  /etc/init .d /DbSecuritySpt  /etc/rc2 .d /S97DbSecuritySpt
ln  -s  /etc/init .d /DbSecuritySpt  /etc/rc3 .d /S97DbSecuritySpt
ln  -s  /etc/init .d /DbSecuritySpt  /etc/rc4 .d /S97DbSecuritySpt

    若是在配置文件中设置有标志g_bDoBackdoor,木马一样会试图打开/root/.profile文件,检查其进程是否有root权限。而后后门程序将本身复制到/usr/bin/bsd-port/getty中并启动。在安装的最后阶段,Linux.BackDoor.Gates.5在文件夹/usr/bin/再次建立一个副本,命名为配置文件中设置的相应名称,并取代下列工具:

1
2
3
4
5
6
7
8
9
/bin/netstat
/bin/lsof
/bin/ps
/usr/bin/netstat
/usr/bin/lsof
/usr/bin/ps
/usr/sbin/netstat
/usr/sbin/lsof
/usr/sbin/ps

    木马以此完成安装,并开始调用基本功能。

    执行另外两种算法时木马一样会假装成守护进程在被感染电脑启动,检查其组件是否经过读取相应的.lock文件启动(若是未启动,则启动组件),但在保存文件和注册自启动时使用不一样的名称。

    与命令服务器设置链接后,Linux.BackDoor.Gates.5接收来自服务器的配置数据和僵尸电脑需完成的命令。按照不法分子的指令,木马可以实现自动更新,对指定IP地址和端口的远程站点发起或中止DDoS攻击,执行配置数据所包含的命令或经过与指定IP地址的远程站点创建链接来执行其余命令。

    此后门程序的主要DDoS攻击目标是中国的服务器,然而不法分子攻击对象也包括其余国家。下图为利用此木马进行的DDoS攻击的地理分布:

wKiom1atDxbAPpm7AAGEMXS_d8w613.png

 

                              wKioL1jfIUSCOC-VAACmb4CVfN4535.jpg

 

 

 

本文出自 “运维点滴记录” 博客,请务必保留此出处http://wzlinux.blog.51cto.com/8021085/1740113

相关文章
相关标签/搜索