2016年11月17日 15:52:33 UpUpUpUpUpUpUp 阅读数 3359linux
版权声明:本文为博主原创文章,未经博主容许不得转载。 https://blog.csdn.net/u012599988/article/details/53201212redis
记录一次查询清除木马过程
木马名称:安全
Linux.BackDoor.Gates.5
连接:https://forum.antichat.ru/threads/413337/bash
前两天服务器被扫描后,出现莫名进程,清理后重启,也把原来的SSH密码登录改成公钥,仅仅过去两天,一早登录服务器发现一个进程直接懵了,清掉我ROOT全部文件。服务器
这是/etc/profile文件,发现!!!运维
这明显是前天我没有清理干净,又被攻击了。ssh
那就开始排查,战斗!工具
先清理可疑程序,如:
spa
明显不认识呐,个人服务器跑了什么我还不知道?.net
干掉!咦,干掉本身起来。明显是自启!!! 查,/etc/rc.local
进程杀了又起来,文件删了又自动生成,无奈之下只好想了一个怪招,把/bin/bash重命名一下
再查询基础命令是否被掉包:
对比下其余在正常服务器的显示以下:
怒了有没有!明显换了。换成程序大小为1.2M的了。
那就删掉被更改的,从其余同配置服务器拷贝一份。
记的拷贝过来要给予755 权限。
分析了一下,这些木马程序名字变着花样来,但万变不离其宗,名字都写
在/etc/rc.d/init.d/DbSecuritySpt和/etc/rc.d/init.d/selinux里面,并且名字和正常的服务很像。
注意rm命令也被掉包了,须要更换!
有:
/usr/bin/bsd-port/getty、/usr/bin/dpkgd/ps /usr/bin/.sshd
哈哈,清理了这些服务器CPU立马从100%下来了。
简单判断有无木马 有无下列文件 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
删除以下目录及文件 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
如:
而后找出下列程序进程号并杀死:
/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
如:
注意若是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
删除含木马命令并从新安装(或者把上传的正常程序复制过去也行)
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
——————————————————————
工具扫描
安装杀毒工具
安装
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 /bin/
clamscan -r –remove /usr/bin/
查看日志发现
/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 如: “`
增强自身安全
可是此时还不知道系统入侵的缘由,只能从两个方面考虑:暴力破解和系统及服务漏洞
a、yum update 更新系统(特别是bash、openssh和openssl)
b、关闭一些没必要要的服务
c、设置ssh普通用户登录并用hosts.all、hosts.deny限制登录的网段
d、记录登录系统后操做的命令
在平常运维中,咱们须要清楚服务器上每一个用户登陆后都作了哪些操做,咱们须要记录下每一个用户的操做命令。
下面的内容设置能够实如今Linux下全部用户,无论是远程仍是本地登录,在本机的全部操做都会记录下来,并生成包含“用户/IP/时间”的文件存放在指定位置。
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]" USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` HISTDIR=/var/log/.hist if [ -z $USER_IP ] then USER_IP=`hostname` fi if [ ! -d $HISTDIR ] then mkdir -p $HISTDIR chmod 777 $HISTDIR fi if [ ! -d $HISTDIR/${LOGNAME} ] then mkdir -p $HISTDIR/${LOGNAME} chmod 300 $HISTDIR/${LOGNAME} fi export HISTSIZE=4096 DT=`date +%Y%m%d_%H%M%S` export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT" chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null
获得的结果,永久保存,每一个用户的命令记录分目录保存
ls -l /var/log/.hist/root/
-rw——- 1 root root 546 2006-05-26 10:00 218.82.245.54.hist.20060526_092458
-rw——- 1 root root 243 2006-05-28 13:28 218.82.245.54.hist.20060528_114822
-rw——- 1 root root 10 2006-05-28 12:18 218.82.245.54.hist.20060528_121605查看命令记录
export HISTFILE=/var/log/.hist/root/xx04.hist.208_152551[root@demoredis_171 root]# history 1 2016-11-17 15:41:40 ll 2 2016-11-17 15:41:42 cd /data/ 3 2016-11-17 15:41:42 ll 4 2016-11-17 15:41:47 cd /var/log/.hist/ 5 2016-11-17 15:41:47 ll 6 2016-11-17 15:41:48 cd root/ 7 2016-11-17 15:41:48 ll 10 2016-11-17 15:42:18 export HISTFILE=18—.hist.20161117_154054 11 2016-11-17 15:42:21 history