zoukankan      html  css  js  c++  java
  • 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/clamav/clamav/0.97.6/clamav-0.97.6.tar.gz
    --2015-08-21 21:58:36--  http://nchc.dl.sourceforge.net/project/clamav/clamav/0.97.6/clamav-0.97.6.tar.gz
    Resolving nchc.dl.sourceforge.net... 211.79.60.17, 2001:e10:ffff:1f02::17
    Connecting to nchc.dl.sourceforge.net|211.79.60.17|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 14765896 (14M) [application/x-gzip]
    Saving to: “clamav-0.97.6.tar.gz”
     
    100%[==============================================================>] 14,765,896   652K/s   in 71s     
     
    2015-08-21 21:59:48 (204 KB/s) - “clamav-0.97.6.tar.gz” saved [14765896/14765896]
     
    [root@LNX17 tmp]# wget http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.gz
    --2015-08-21 22:00:24--  http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.7/zlib-1.2.7.tar.gz
    Resolving nchc.dl.sourceforge.net... 211.79.60.17, 2001:e10:ffff:1f02::17
    Connecting to nchc.dl.sourceforge.net|211.79.60.17|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 560351 (547K) [application/x-gzip]
    Saving to: “zlib-1.2.7.tar.gz”
     
    100%[=============================================================>] 560,351      287K/s   in 1.9s    
     
    2015-08-21 22:00:26 (287 KB/s) - “zlib-1.2.7.tar.gz” saved [560351/560351]

    1、zlib-1.2.7.tar.gz安装

    [root@LNX17 tmp]# tar xvzf zlib-1.2.7.tar.gz
    [root@LNX17 tmp]# cd zlib-1.2.7
    [root@LNX17 zlib-1.2.7]# ./configure 
    Checking for gcc...
    Checking for shared library support...
    Building shared library libz.so.1.2.7 with gcc.
    Checking for off64_t... Yes.
    Checking for fseeko... Yes.
    Checking for strerror... Yes.
    Checking for unistd.h... Yes.
    Checking for stdarg.h... Yes.
    Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
    Checking for vsnprintf() in stdio.h... Yes.
    Checking for return value of vsnprintf()... Yes.
    Checking for attribute(visibility) support... Yes.
    Looking for a four-byte integer type... Found.
    [root@LNX17 zlib-1.2.7]# make && make install
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o adler32.o adler32.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o crc32.o crc32.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o deflate.o deflate.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o infback.o infback.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o inffast.o inffast.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o inflate.o inflate.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o inftrees.o inftrees.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o trees.o trees.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o zutil.o zutil.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o compress.o compress.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o uncompr.o uncompr.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o gzclose.o gzclose.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o gzlib.o gzlib.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o gzread.o gzread.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN   -c -o gzwrite.o gzwrite.c
    ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o 
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example example.o -L. libz.a
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/adler32.o adler32.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/crc32.o crc32.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/deflate.o deflate.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/infback.o infback.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inffast.o inffast.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inflate.o inflate.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inftrees.o inftrees.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/trees.o trees.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/zutil.o zutil.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/compress.o compress.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c
    gcc -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c
    gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -O3  -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.7 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo  -lc 
    rm -f libz.so libz.so.1
    ln -s libz.so.1.2.7 libz.so
    ln -s libz.so.1.2.7 libz.so.1
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o examplesh example.o -L. libz.so.1.2.7
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so.1.2.7
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o example64.o test/example.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example64 example64.o -L. libz.a
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o minigzip64.o test/minigzip.c
    gcc -O3  -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a
    cp libz.a /usr/local/lib
    chmod 644 /usr/local/lib/libz.a
    cp libz.so.1.2.7 /usr/local/lib
    chmod 755 /usr/local/lib/libz.so.1.2.7
    cp zlib.3 /usr/local/share/man/man3
    chmod 644 /usr/local/share/man/man3/zlib.3
    cp zlib.pc /usr/local/lib/pkgconfig
    chmod 644 /usr/local/lib/pkgconfig/zlib.pc
    cp zlib.h zconf.h /usr/local/include
    chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h

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

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

    参考资料:

    http://blog.csdn.net/liukeforever/article/details/38560363

    http://vekergu.blog.51cto.com/9966832/1619266

    http://blog.csdn.net/liukeforever/article/details/38560363

    http://bbs.appstar.com.cn/thread-10205-1-1.html

    http://yangrong083.blog.163.com/blog/static/113406097201371235159424/

    http://www.cnblogs.com/kerrycode/p/4754820.html

  • 相关阅读:
    [MacOS]Sublime text3 安装(一)
    [RHEL8]开启BBR
    PAT Advanced 1136 A Delayed Palindrome (20分)
    PAT Advanced 1144 The Missing Number (20分)
    PAT Advanced 1041 Be Unique (20分)
    PAT Advanced 1025 PAT Ranking (25分)
    PAT Advanced 1022 Digital Library (30分)
    PAT Advanced 1019 General Palindromic Number (20分)
    PAT Advanced 1011 World Cup Betting (20分)
    PAT Advanced 1102 Invert a Binary Tree (25分)
  • 原文地址:https://www.cnblogs.com/softidea/p/4756056.html
Copyright © 2011-2022 走看看