我们在学校客户机房的一台机器近期出现流量异常,表现为只要此服务器插上网线就会干废校园网。经过排查是因服务器被挂木马导致,入侵者在/tmp下放置可执行程序yundun,其连接到一个国外IP 142.0.136.211:22000。根据控制指令发送大量流出流量进行DDOS攻击,同时还替换了系统关键可执行程序 ps、netstat为木马程序,在/etc/init.d,/etc/rc.d(系统启动时加载),/usr/bin等目录下创建木马文件。
解决思路:
由于服务器接入网络就会导致外网不可用,给我们远程调试带来很大麻烦,最后用笔记本无线连接外网。笔记本有线口直连服务器,ssh登录服务器,执行了以下操作。
1 恢复原始的ps、netstat、ss、lsof命令
2 干掉后门进程
3 查找近期被修改或生成的文件,逐个检查,找出可疑文件,删除
4 升级ssh登录验证
最后我写了个自动查杀脚本:
# vi /home/tqj/mybin/bingdurm.sh # first prepare the origin ps & netstat file, you can copy from other centos # restore the bin files rm -f /bin/ps rm -f /bin/netstat cp /home/tqj/mybin/binbak/ps /bin/ps chmod 755 /bin/ps cp /home/tqj/mybin/binbak/netstat /bin/netstat chmod 755 /bin/netstat # kill backdoor processes ps -aux | grep /usr/bin/bsd-port/getty | grep -v 'grep' | awk '{print $2}' | xargs kill -9 ps -aux | grep /usr/bin/.sshd | grep -v 'grep' | awk '{print $2}' | xargs kill -9 ps -aux | grep /tmp/yundun | grep -v 'grep' | awk '{print $2}' | xargs kill -9 ps -aux | grep /usr/bin/dpkgd/ps | awk '{print $2}' | xargs kill -9 ps -aux | grep explorer.exe | awk '{print $2}' | xargs kill -9 ps -aux | grep services.exe | awk '{print $2}' | xargs kill -9 # delete backdoor executable files rm -f /tmp/yundun rm -f /usr/bin/.sshd rm -rf /usr/bin/dpkgd/ rm -rf /usr/bin/bsd-port rm -f /etc/init.d/selinux rm -f /etc/init.d/DbSecuritySpt rm -f /etc/rc.d/rc2.d/S99selinux rm -f /etc/rc.d/rc2.d/S97DbSecuritySpt rm -f /etc/rc.d/rc1.d/S99selinux rm -f /etc/rc.d/rc1.d/S97DbSecuritySpt rm -f /etc/rc.d/rc4.d/S99selinux rm -f /etc/rc.d/rc4.d/S97DbSecuritySpt rm -f /etc/rc.d/rc5.d/S99selinux rm -f /etc/rc.d/rc5.d/S97DbSecuritySpt rm -f /etc/rc.d/rc3.d/S99selinux rm -f /etc/rc.d/rc3.d/S97DbSecuritySpt rm -f /home/local/web/apache-tomcat-8.5.16/bin/fjcok.dat rm -f /home/local/web/apache-tomcat-8.5.16/bin/obob.dat rm -f /usr/sbin/lsof cp /home/tqj/mybin/binbak/lsof /usr/sbin/lsof chmod 755 /usr/sbin/lsof rm -f /usr/sbin/ss cp /home/tqj/mybin/binbak/ss /usr/sbin/ss chmod 755 /usr/sbin/ss rm -rf /tmp/* echo 'finish'
我更好奇木马是怎么挂上去的呢?
我查了日志没有明显的异常,很有可能是Struts2的漏洞引起的。