Linux服务器中木马(肉鸡)手工清除方法(转)
首先剧透一下后门木马如下:
(当然这是事后平静下来后慢慢搜出来的,那个时候喝着咖啡感觉像个自由人)
木马名称
Linux.BackDoor.Gates.5
http://forum.antichat.ru/threads/413337/
首先是下午14点左右有几台服务器出现流量超高,平时只有几百M的流量,那时候发现流量上G了,达到这个量第一感觉就是遭受了DDOS流量攻击,那时候手上的服务器比较多,出现几台并没
有放在眼里,觉得查查就可以出来结果。随便说一句为了达到最好的性能,我们这些服务器都没有开防火墙(包括硬件及iptables),也就是服务器一直处于裸奔的状态。这些服务器裸奔了
几年一直没有出现问题,看来linux服务器安全这块还是挺让人满意的。
开始也没有什么头绪,就是ps查进程啊,netstat查端口号,iftop查流量,估计大家一开始出现这种情况都是这样操作,又得剧透下(这样做估计也是黑客希望的,显然他们对我等非常了解
哈),一时也没发现什么异常,只是iftop发现我们的服务器一直向外大量发包,对某个IP的流量能到达600多M,这时我们意识到服务器被黑了,但是只是当成了肉鸡,去攻击别的服务器,当
然攻击的IP也是一直在变化的,就好像有人在远程控制一样。
转眼都快到下班时间了,这时大概有3台服务器有这种的情况,此时大家把各自了解的情况汇总了一下:
a、/bin/ps,/bin/netsta程序都是1.2M的大小,显然是被人掉包了
b、/usr/bin/.dbus-daemon--system 进程还带了一个点,跟哪个不带点的很像,但终归是假的,你咋不给真的删掉替换呢,看来写这种程序的人法律意识很强,要不然程序推广起来了,死了
一大片CIA会放过他吗
c、/etc/rc.local权限改了,而且添加了一个开机启动项
d、lsattr、chattr命令删除了
e 、进程杀掉了立即又起来了这点很让人头痛
f、找到了一些最近修改的文件,显然这些都是黑客留下的
g、开机自动启动文件增加2个启动项
刚开始进程杀了又起来,文件删了又自动生成,线上环境又没有防火墙配置,无奈之下只好想了一个怪招,把/bin/bash重命名一下,果然流量下来了,这种杀敌1万自损8千的招果然有用。
其实这时候还没有找到真正的木马,但是已经有时间去分析查找病毒源了,这3台其中两台修改了bash名字,突然断开了,这样就登陆不了,只好重装系统了。后来这台我就慢慢查找了,差不
多都找到了,然后删除。这时心情大好,准备写博文记录一下,毕竟这是线上环境第一次遭遇木马。
大概22点的时候,博文写了一半,突然又接到故障,这次一下子又7台服务器出故障了,好心情一下子没了,原来那3台只是个开场白,真正的战斗还没有开始。所以后面的博客是续上的,调
调要是有些不一样将就的看吧。
由于这段时间网上查了些资料,慢慢的对这个木马熟悉起来了。这时我上传了一些正常的二进制程序如:ls,netstat,chattr,lsattr这样用自动的程序一下子就查到了木马程序,我分析了一
下,这些木马程序名字变着花样来,但万变不离其宗,名字都写在/etc/rc.d/init.d/DbSecuritySpt和/etc/rc.d/init.d/selinux里面,而且名字和正常的服务很像。
有/usr/local/zabbix/sbin/zabbix_AgentD、/usr/bin/bsd-port/getty、/usr/bin/dpkgd/ps、/usr/bin/.dbus-daemon--system、/usr/bin/.sshd、/usr/bin/sshd反正你系统有什么类似的
进程在运行,他就改成差不多的来迷惑你,其实他们都是一个程序大小也一样。
现在就是删除这些文件,杀死这些进程,说个小插曲由于某台服务器漏掉了一些没有删,第二天有激活了,这些东西当你用上面的命令时就可以激活,所以要千万小心仔细。在大概凌晨4点多
的时候这7台服务器的木马清理了差不多了,现在综合总结了大概步骤如下:
0,简单判断有无木马
有无下列文件
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
1,上传如下命令到/root下
lsattr chattr ps netstat ss lsof
2,删除如下目录及文件
rm -rf /usr/bin/dpkgd (ps netstat lsof ss)
rm -rf /usr/bin/bsd-port (木马程序)
rm -f /usr/local/zabbix/sbin/zabbix_AgentD (木马程序)
rm -f /usr/local/zabbix/sbin/conf.n
rm -f /usr/bin/.sshd
rm -f /usr/bin/sshd
rm -f /root/cmd.n
rm -f /root/conf.n
rm -f /root/IP
rm -f /tmp/gates.lod
rm -f /tmp/moni.lod
rm -f /tmp/notify.file 程序
rm -f /tmp/gates.lock 进程号
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
3,找出下列程序进程号并杀死
top 一眼就看到那个木马cpu利用率特高
/root/ps aux |grep -i jul29(主要是最近开启的进程)
/root/ps aux |grep -i jul30
/root/ps aux |grep -i jul31
/root/ps aux |grep sshd
/root/ps aux |grep ps
/root/ps aux |grep getty
/root/ps aux |grep netstat
/root/ps aux |grep lsof
/root/ps aux |grep ss
/root/ps aux |grep zabbix_Agetntd
/root/ps aux |grep .dbus
举例如下:
/root/ps aux |grep getty
root 6215 0.0 0.0 93636 868 ? Ssl 20:54 0:05 /usr/bin/bsd-port/getty
kill 6215
/root/ps aux |grep zabbix_AgentD
root 2558 71.0 0.0 106052 1048 ? Ssl 20:54 117:29 ./zabbix_AgentD
kill 2558
/root/ps aux |grep "/dpkgd/ps"
root 11173 67.8 0.0 105924 1020 ? Ssl 01:39 8:00 /usr/bin/dpkgd/ps -p 11148 -o comm=
kill 11173
注意如果kill后删除后还会再出现就这样操作(破坏木马程序)
>/usr/bin/dpkgd/ps && /root/chattr +i /usr/bin/dpkgd/ps
>/usr/bin/bsd-port/getty && /root/chattr +i /usr/bin/bsd-port/getty
4,删除含木马命令并重新安装(或者把上传的正常程序复制过去也行)
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
chattr && lsattr
yum -y reinstall e2fsprogs
ss
/root/chattr -i -a /usr/sbin/ss && rm /usr/sbin/ss -f
yum -y reinstall iproute
或
cp /root/ss /usr/sbin
修改下面两个程序的权限,这个是意外发现有的改了这两个程序的权限,让你发现了木马既不能下载正常程序也不能杀进程
/usr/bin/killall
/usr/bin/wget
另外他们还修改了DNS怕我们识别不了有的域名吧,想得很周到哈
cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
5,工具扫描
安装杀毒工具
安装
yum -y install clamav*
启动
service clamd restart
更新病毒库
freshclam
扫描方法
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/
clamscan -r --remove /usr/local/zabbix/sbin
查看日志发现
/bin/netstat: Linux.Trojan.Agent FOUND为病毒
grep FOUND /root/usrclamav.log
/usr/bin/.sshd: Linux.Trojan.Agent FOUND
/usr/sbin/ss: Linux.Trojan.Agent FOUND
/usr/sbin/lsof: Linux.Trojan.Agent FOUND
6,加强自身安全
但是此时还不知道系统入侵的原因,只能从两个方面考虑:暴力破解和系统及服务漏洞
a、yum update 更新系统(特别是bash、openssh和openssl)
b、关闭一些不必要的服务
c、设置ssh普通用户登陆并用hosts.all、hosts.deny限制登陆的网段
d、记录登陆系统后操作的命令
发现有如下操作
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/messages
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/httpd/access_log
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/httpd/error_log
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/xferlog
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/secure
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/auth.log
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/user.log
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/wtmp
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/lastlog
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/log/btmp
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/run/utmp
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > /var/spool/mail/root
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]echo > ./.bash_history
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]rm -rf /root/.bash_history
Jul 31 00:26:37 CHN-LZ-131 logger: [euid=root]::[/root]
7,木马分析
后续,我把木马程序转换成了16进制的,大概看了一眼, 发现只是一个木马并能DDOS攻击,确实没有删除服务器配置,对服务器没有造成太大的危害。
Linux服务器中木马(肉鸡)手工清除方法(转)的更多相关文章
- Linux服务器中木马(肉鸡)手工清除方法
由于自己也碰到过这种情况,刚好看到这篇文章,先转载过来.的确蛮有用的哦. 首先剧透一下后门木马如下: (当然这是事后平静下来后慢慢搜出来的,那个时候喝着咖啡感觉像个自由人) 木马名称 Linux.Ba ...
- Linux 服务器中木马及木马清除
1.查看流量图发现问题 查看的时候网页非常卡,有的时候甚至没有响应 2.top动态查看进程 我马上远程登录出问题的服务器,远程操作很卡,网卡出去的流量非常大,通过top发现了一个异常的进程占用资源比较 ...
- 如何在Linux服务器中隐藏PHP版本
通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP.PHP 是如今流行的服务端html嵌入式语言(之一?).在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞.因此, ...
- 【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大 ...
- linux服务器中Jenkins集成git、Gradle持续构建Springboot项目
Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...
- Windows连接Linux服务器中MySQL数据库-权限配置
问题描述 在Windows系统中安装了监控MySQL数据库服务器性能的工具Spotlight on MySQL,利用Spotlight连接Linux服务器中的MySQL,进行相关配置如下: 点击& ...
- 如何发布二次开发后的openfire源码到linux服务器中
这篇文章是在你已经down了openfire的源码,然后在本地跑起来了,再然后开发了一个自己的插件,想要发布到服务器上.ok这时候出现了一个问题,怎么才能发布到服务器上呢?别急往下看: 1.运行ant ...
- Linux服务器中OpenSSH的源码编译与升级
Linux服务器中OpenSSH的源码编译与升级 https://www.oschina.net/question/12_7383
- Linux服务器中创建Oracle数据库实例
紧接上篇,在Linux服务器已经完成对Oracle数据库软件的安装后,接下来要创建Oracle实例,看图说话: [su – oracle echo $DISPLAY export DISPLAY=10 ...
随机推荐
- php.ini优化,,,php-fpm
无论是apache还是nginx,php.ini都是合适的.而php-fpm.conf适合nginx+fcgi的配置. 1)打开PHP的安全模式 PHP的安全模式是个非常重要的PHP内嵌的安全机制,能 ...
- rabbitmq报错type
TypeError: exchange_declare() got an unexpected keyword argument 'type' 原因应该为pika版本不同导致的用法不同,解决方法为把t ...
- npm使用淘宝镜像
淘宝 npm 地址: http://npm.taobao.org/ 如何使用 有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法.以淘宝npm镜像举例: 1.临时使用 ...
- JVM内存结构 JVM的类加载机制
JVM内存结构: 1.java虚拟机栈:存放的是对象的引用(指针)和局部变量 2.程序计数器:每个线程都有一个程序计数器,跟踪代码运行到哪个位置了 3.堆:对象.数组 4.方法区:字节流(字节码文件) ...
- Linux Swap交换分区介绍
Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中, ...
- 清除list或者map集合,减少内存的占用率
1.在编写程序对数据处理的时候我们经常会使用到list和map集合,有些时候我们存到集合里的数据只是暂时性的,在验证完或者使用完之后尽量对list或者map清空,及list.clear()后者map. ...
- 为什么iterator,foreach遍历时不能进行remove操作?除了一种情况可以这样(特殊情况)?
Exception in thread "main" java.util.ConcurrentModificationException 并发修改异常引发的思考! 1 foreac ...
- Web服务器对比介绍
1.Apache Apache是非常强大的老牌Web服务器,具有模块化结构,拥有众多非常成熟稳定的模块,目前仍是使用非常广泛的服务器,但它是基于多进程HTTPServer,需要对每个用户请求创建一个子 ...
- obtainBuffer timed out (is the CPU pegged?)
https://stackoverflow.com/questions/5293025/audiotrack-lag-obtainbuffer-timed-out [典] 03-13 14:55:57 ...
- 浅析ProcessBuilder
概述 ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法.在J2SE 1.5之前,都是由 ...