• clamav完整查杀linux病毒实战(转)


    开篇前言

         Linux服务器一直给我们的印象是安全、稳定、可靠,性能卓越。由于一来Linux本身的安全机制,Linux上的病毒、木马较少,二则由于宣称Linux是最安全的操作系统,导致很多人对Linux的安全性有个误解:以为它永远不会感染病毒、木马;以为它没有安全漏洞。所以很多Linux服务器都是裸奔的。其实在这次事件之前,我对Linux的安全性方面的认识、重视程度也是有所不足的。系统的安全性是相对而言的,没有绝对的安全,风险无处不在。

    案例描述

    我们在云端(中信国际电讯CPC)的一台Linux 应用服务器时不时出现网络中断情况,最开始反馈到系统管理员和网络管理员哪里,以为是网络方面的问题。在监控系统后,发现在一些时间段出现高流量的情况,分析发现这台Linux服务器只安装了Tomcat应用程序,没有任何其它应用程序。产生如此大的流量很不正常,而且出现网络中断的时刻,就是系统产生高流量的时刻。当然这些都是我后来才了解到的一些情况,我没有这台服务器的权限,系统管理员找我看看能分析出啥问题,所以将root账号权限给了我。

    案例分析

    我连接到服务器后,运行ifconfig命令,检查网卡的发送、接收数据情况,如下所示,网卡eth0累计发送了12.3TB的数据。这明显不太正常,显然有应用程序一直在往外发包。我特意对比了另外一台正常的服务器后,验证了这个事实。

    clip_image001

    那么是那个应用程序在一直往外发送包呢? 我首先检查了Linux系统日志,发现了一些错误、告警信息。但是作用不大。于是在服务器上安装了NetHogs应用程序,实时监控Linux进程的网络带宽占用情况。

    clip_image002

    监控过程确实发现了一些异常情况的进程:

    1:/home/WDPM/Development/WebServer/apache-tomcat-7.0.61/cmys 一直在往外发包

    2:/usr/bin/bsd-port/agent 一直在往外发包。

    3:./cmys一直在往外发包

    4:不时出现下面大量异常进程

    image

    [root@LNX17 /]# ps -ef | grep getty
    root      2012     1  0 May22 tty2     00:00:00 /sbin/mingetty /dev/tty2
    root      2014     1  0 May22 tty3     00:00:00 /sbin/mingetty /dev/tty3
    root      2018     1  0 May22 tty4     00:00:00 /sbin/mingetty /dev/tty4
    root      2020     1  0 May22 tty5     00:00:00 /sbin/mingetty /dev/tty5
    root      2022     1  0 May22 tty6     00:00:00 /sbin/mingetty /dev/tty6
    root     13835 32735  0 01:02 pts/0    00:00:00 grep getty
    [root@LNX17 tmp]# ll /usr/bin/bsd-port/
    total 2324
    -rwxr-xr-x. 1 root root 1135000 Jul 17 08:28 agent
    -rwxr-xr-x. 1 root root       4 Jul 17 08:28 agent.conf
    -rw-r--r--. 1 root root      27 Jul 21 12:42 cmd.n
    -rw-r--r--. 1 root root      73 Aug 21 21:30 conf.n
    -rwxr-xr-x. 1 root root 1223123 Aug 21 04:08 getty
    -rwxr-xr-x. 1 root root       5 Aug 21 04:08 getty.lock

    搜索/usr/bin/bsd-port/agent等进程相关资料,发现很多关于木马、后门方面的文章,严重怀疑服务器被挂马了。手工杀进程或手工删除/home/WDPM/Development/WebServer/apache-tomcat-7.0.61/cmys文件,发现不过一会儿,又会出现相同的进程和文件。于是下载安装了AVG ANTIVIRUS FREE - FOR LINUX这款杀毒软件,但是启动服务失败,不想折腾,于是安装了ClamAV 杀毒软件

    clip_image004

    ClamAV介绍

      ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是无法清除,至多删除文件。ClamAV可以工作很多的平台上,但是有少数无法支持,这就要取决您所使用的平台的流行程度了。另外它主要是来防护一些WINDOWS病毒和木马程序。另外,这是一个面向服务端的软件。

    下载ClamAV安装包

        ClamAV的官方下载地址为http://www.clamav.net/download.html 我直接使用wget下载源码安装文件。

    
    
     
    [root@LNX17 tmp]# wget http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.gz
    
    

    1、zlib-1.2.7.tar.gz安装

    [root@LNX17 tmp]# tar xvzf zlib-1.2.7.tar.gz
    安装一下gcc编译环境: yum install gc
    [root@LNX17 tmp]# cd zlib-1.2.7
    [root@LNX17 zlib-1.2.7]#  CFLAGS="-O3 -fPIC" ./configure --prefix=
    /usr/local/zlib/
    [root@LNX17 zlib-1.2.7]# make && make install
    2:添加用户组clamav和组成员clamav
    [root@LNX17 zlib-1.2.7]# groupadd clamav
    [root@LNX17 zlib-1.2.7]# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
    [root@LNX17 zlib-1.2.7]#

    3:安装Clamav-0.97.6

    [root@LNX17 tmp]# tar xvzf clamav-0.97.6.tar.gz
    [root@LNX17 tmp]# cd clamav-0.97.6
    [root@LNX17 clamav-0.97.6]# ./configure --prefix=/opt/clamav
      --disable-clamav -with-zlib=/usr/local/zlib
    [root@LNX17 clamav-0.97.6]# make
    [root@LNX17 clamav-0.97.6]# make install

     配置Clamav

     1:创建目录

    [root@LNX17 clamav-0.97.6]# mkdir /opt/clamav/logs
     
    [root@LNX17 clamav-0.97.6]# mkdir /opt/clamav/updata

     2:创建文件

    [root@LNX17 clamav-0.97.6]# touch /opt/clamav/logs/freshclam.log
    [root@LNX17 clamav-0.97.6]# touch /opt/clamav/logs/clamd.log
    [root@LNX17 clamav-0.97.6]#
     
    [root@LNX17 clamav-0.97.6]# cd /opt/clamav/logs
    [root@LNX17 clamav]# cd logs
    [root@LNX17 logs]# ls
    clamd.log  freshclam.log
    [root@LNX17 logs]# ls -lrt
    total 0
    -rw-r--r--. 1 root root 0 Aug 21 22:10 freshclam.log
    -rw-r--r--. 1 root root 0 Aug 21 22:10 clamd.log

     3:修改属主

    [root@LNX17 logs]# chown clamav:clamav clamd.log
    [root@LNX17 logs]# chown clamav:clamav freshclam.log
    [root@LNX17 logs]# ls -lrt
    total 0
    -rw-r--r--. 1 clamav clamav 0 Aug 21 22:10 freshclam.log
    -rw-r--r--. 1 clamav clamav 0 Aug 21 22:10 clamd.log
    [root@LNX17 logs]#

     4:修改配置文件

    #vi /opt/clamav

    /etc/clam.conf

     # Example 注释掉这一行. 第8 行  

            LogFile /opt/clamav/logs/clamd.log   删掉前面的注释目录改为/opt/clamav/logs/clamd.log  

         PidFile /opt/clamav/updata/clamd.pid 删掉前面的注释路径改为/opt/clamav/updata/clamd.pid

         DatabaseDirectory /opt/clamav/updata 同上

    #vi /opt/clamav

    /etc/clamfreshclam.conf , 将Example 这一行注释掉。否则在更新反病毒数据库是就有可能出现下面错误

     [root@LNX17 clamav]# /opt/clamav/bin/freshclam

    ERROR: Please edit the example config file /opt/clamav/etc/freshclam.conf

    ERROR: Can't open/parse the config file /opt/clamav/etc/freshclam.conf

    clip_image005

    5:升级病毒库

    [root@LNX17 etc]# /opt/clamav/bin/freshclam

    ERROR: Can't change dir to /opt/clamav/share/clamav

    出现上面错误,直接创建一个文件夹并授权给clamav用户即可。

    [root@LNX17 etc]# mkdir -p /opt/clamav/share/clamav
    [root@LNX17 etc]# chown clamav:clamav /opt/clamav/share/clamav
    [root@LNX17 etc]#
     
    [root@LNX17 etc]# /opt/clamav/bin/freshclam
    ClamAV update process started at Fri Aug 21 22:42:18 2015
    WARNING: Your ClamAV installation is OUTDATED!
    WARNING: Local version: 0.97.6 Recommended version: 0.98.7
    DON'T PANIC! Read http://www.clamav.net/support/faq
    nonblock_connect: connect timing out (30 secs)
    Can't connect to port 80 of host database.clamav.net (IP: 211.239.150.206)
    Trying host database.clamav.net (120.29.176.126)...
    nonblock_recv: recv timing out (30 secs)
    WARNING: getfile: Download interrupted: Operation now in progress (IP: 120.29.176.126)
    WARNING: Can't download main.cvd from database.clamav.net
    Trying again in 5 secs...
    ClamAV update process started at Fri Aug 21 23:03:32 2015
    WARNING: Your ClamAV installation is OUTDATED!
    WARNING: Local version: 0.97.6 Recommended version: 0.98.7
    DON'T PANIC! Read http://www.clamav.net/support/faq
    Downloading main.cvd [100%]
    main.cvd updated (version: 55, sigs: 2424225, f-level: 60, builder: neo)
    Downloading daily.cvd [100%]
    daily.cvd updated (version: 20817, sigs: 1537382, f-level: 63, builder: neo)
    Downloading bytecode.cvd [100%]
    bytecode.cvd updated (version: 268, sigs: 47, f-level: 63, builder: anvilleg)
    Database updated (3961654 signatures) from database.clamav.net (IP: 219.94.128.99)

    clip_image006

    由于ClamAV不是最新版本,所以有告警信息。可以忽略或升级最新版本。病毒库需要定期升级,例如我第二天升级病毒库

    [root@LNX17 ~]# /opt/clamav/bin/freshclam
    ClamAV update process started at Mon Aug 24 10:10:25 2015
    WARNING: Your ClamAV installation is OUTDATED!
    WARNING: Local version: 0.97.6 Recommended version: 0.98.7
    DON'T PANIC! Read http://www.clamav.net/support/faq
    main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
    Downloading daily-20818.cdiff [100%]
    Downloading daily-20819.cdiff [100%]
    Downloading daily-20820.cdiff [100%]
    Downloading daily-20821.cdiff [100%]
    Downloading daily-20822.cdiff [100%]
    Downloading daily-20823.cdiff [100%]
    Downloading daily-20824.cdiff [100%]
    Downloading daily-20825.cdiff [100%]
    Downloading daily-20826.cdiff [100%]
    Downloading daily-20827.cdiff [100%]
    Downloading daily-20828.cdiff [100%]
    Downloading daily-20829.cdiff [100%]
    daily.cld updated (version: 20829, sigs: 1541624, f-level: 63, builder: neo)
    bytecode.cvd is up to date (version: 268, sigs: 47, f-level: 63, builder: anvilleg)
    Database updated (3965896 signatures) from database.clamav.net (IP: 203.178.137.175)

    6:ClamAV 使用

    可以使用/opt/clamav/bin/clamscan -h查看相应的帮助信息

    image

    · 扫描所有用户的主目录就使用 clamscan -r /home

    · 扫描您计算机上的所有文件并且显示所有的文件的扫描结果,就使用 clamscan -r /

    · 扫描您计算机上的所有文件并且显示有问题的文件的扫描结果,就使用 clamscan -r --bell -i /

    执行下面命令扫描根目录下面的所有文件。如下所示:56个文件被感染了。基本上都是Linux.Trojan.Agent和Linux.Backdoor.Gates等。

    /opt/clamav/bin/clamscan -r --bell -i

    clip_image007

    clip_image008

    clip_image009

    clip_image010

    手工删除这些文件。然后重新扫描一下,发现木马已经被清理完成。但是按照网上资料进一步查找发现木马启动程序

    [root@LNX17 ~]# cd /etc/init.d/
    [root@LNX17 init.d]# ls Db*
    DbSecurityMdt  DbSecuritySpt
    [root@LNX17 init.d]# ls sel*
    selinux
    [root@LNX17 init.d]# more selinux
    #!/bin/bash
    /usr/bin/bsd-port/getty
    [root@LNX17 init.d]# more DbSecuritySpt
    #!/bin/bash
    /home/WDPM/Development/WebServer/apache-tomcat-7.0.61/cmys
    [root@LNX17 init.d]# more DbSecurityMdt
    #!/bin/bash
    /root/cmy6
    [root@LNX17 init.d]# more DbSecurityMdt
    #!/bin/bash
    /root/cmy6
    [root@LNX17 bin]# ls bsd*
     
    agent.conf cmd.n conf.n getty.lock
     
    [root@LNX17 bin]# cd bsd-port/
     
    [root@GETLNX17 bsd-port]# ls
     
    agent.conf cmd.n conf.n getty.lock
     
    [root@LNX17 bsd-port]# more agent.conf
     
    3341
     
    [root@LNX17 bsd-port]# more getty.lock
     
    1013
     
    [root@LNX17 bsd-port]# cd ..
     
    [root@LNX17 bin]# rm -rf bsd-port

    此时在用nethogs监控进程的网络流量,发现已经没有异常进程了,应该算是彻底清除了。

    关于Linux.Backdoor.Gates,看到一篇介绍资料了相关内容:Linux.BackDoor.Gates.5——又一针对Linux的木马, 具体内容如下所示:

    ------------------------------------------------------------------------------------------------------------------------------ 

    某些用户有一种根深蒂固的观念,就是目前没有能够真正威胁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 <path_to_backdoor>将自己设为自启动,然后Linux.BackDoor.Gates.5创建下列符号链接:

    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/再次创建一个副本,命名为配置文件中设置的相应名称,并取代下列工具:

    /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地址的远程站点建立连接来执行其他命令。

    另外一种简单的安装方法是:

    chattr -i /etc/group

    chattr -i /etc/passwd

    chattr -i /etc/services 

    chattr -i /etc/gshadow

    yum install clamav clamav-milter

    service clamav start

    freshclam

    chattr +i /etc/shadow
    chattr +i /etc/gshadow
    chattr +i /etc/services
    chattr +i /etc/group
    chattr +i /etc/passwd

    chkconfig --level 3 clamd on

    chkconfig --level 3 clamav-milter on

    service clamd start

    · 扫描所有用户的主目录就使用 clamscan -r /home

    · 扫描您计算机上的所有文件并且显示所有的文件的扫描结果,就使用 clamscan -r /

    · 扫描您计算机上的所有文件并且显示有问题的文件的扫描结果,就使用 clamscan -r --bell -i /

    执行下面命令扫描根目录下面的所有文件。如下所示:56个文件被感染了。基本上都是Linux.Trojan.Agent和Linux.Backdoor.Gates等。

    /opt/clamav/bin/clamscan -r --bell -i

    接下来就上面的就是一样了 

  • 相关阅读:
    Promise前期准备---区别实例对象与函数对象
    es6之函数参数默认值、字符串方法、for of
    es6之剩余和扩展参数
    es6之解构赋值
    es6之set和map
    前端知识点总结
    jQuery的12种选择器
    前端面试总结
    Closure
    PHP 中 16 个魔术方法详解
  • 原文地址:https://www.cnblogs.com/IPYQ/p/6791256.html
Copyright © 2020-2023  润新知