转http://blog.sina.com.cn/s/blog_8b79cd290102w7k9.html
http://www.cnblogs.com/IPYQ/p/6791256.html
问题原因
数字校园应用的REDIS缓存系统存在BUG,致使服务器被注入了入侵者自己生成的公匙,并上传到了Redis的DATA目录,最终获取了服务器的root权限
影响范围
数字校园采用的Redis版本存在bug,影响所有部署的数字校园服务器,需全部更新
处理过程-修复REDIS
1、更新REDIS版本
2、修改配置文件,使用"bind 127.0.0.1"指令将REDIS限制侦听本地接口
3、启用REDIS访问密码,增加"requirepass=bluefin_redis_secret"参数,"bluefin_redis_secret"为数字校园连接redis的密码
处理过程-删除病毒:
1、使用clamav进行扫描,确定感染的文件目录
添加EPEL源,通过yum安装clamav并更新病毒库
yum install clamav && freshclam
clamav是一个开源的病毒库查杀工具,能识别病毒,但查杀能力极为有限,只能在扫描期删除病毒文件,对拥有进程监控和自我复制的病毒无能为力。
根目录扫描,确定受影响的文件和文件夹
clamscan -r --infected /
clamav扫描显示/usr/bin目录及/lib目录出现病毒文件,最终发现了一个/lib/libudev.so文件,及/usr/bin/目录下出现一些奇怪的可执行文件,确定为病毒。
2、尝试过使用clamav删除病毒,结果无效,clamav扫描结束后病毒进程更换程序名称重新出现。病毒可执行文件位于/usr/bin/目录,文件名为10个任意
字母组成,类似于“/usr/bin/kesabalwnw”,/etc/init.d目录有个同名的启动脚本/etc/init.d/kesabalwnw,用于开机自动启动病毒程序。
物理删除病毒或结束病毒进程无效,病毒会更换文件名,反复出现
3、经过分析发现/etc/cron.hourly多添加了一个gcc.sh脚本
脚本内容如下
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {‘print $1‘}`; do ifconfig $i up& done
cp /lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6
5、通过netstat -tulnp指令,发现多了一个deamon服务,服务名称使用常见的"who,watch,id,ifconfig“等关键字代替,强行结束后会自动重启。linux上一般不存在
对应的系统服务,可怀疑跟病毒有关。可使用strace指令进行pid追踪,比如追踪pid为8572的进程,可查看该进程调用了哪些文件,对哪些文件进行了操作。
strace -tt -p 8572
在日志中发现了"/libudev.so"的身影,证实多出来的daemon服务是病毒运行的。
6、病毒会在/etc/init.d目录建立一个到多个10个字母组成的init脚本,脚本内容几乎一模一样,手动rm删除
7、病毒会在/etc/rc.d/{rc0.d,rc1.d,rc2,d,rc3,d,rc4,d,rc5.d}下建立非常多的以S90和K90开头的软连接,链接/etc/init.d目录下的病毒init脚本,可通过以下指令删除
清理/etc/rc.d目录,增加写保护
find . -type l -name "K90*" -o -name "S90*" |grep -v crond|xargs rm -f && chattr -R +i /etc/rc.d/
8、删除/lib/libudev.so /lib/libudev.so.6并封锁/lib目录,禁止写入操作
rm -f /lib/libudev.so&&chattr +i /lib
9、禁止其它高风险目录的写权限
chattr -i /lib64 /bin /sbin /usr/sbin /usr/local
10、查找运行病毒进程名称,病毒为了防止被删除,通常用父进程在检测到病毒文件被物理删除后,自动生成新的病毒文件。可通过下列指令找出病毒父进程
[[email protected] etc]# lsof -R |grep "/usr/bin"
python 2197 1 root txt REG 253,0 4864 2099101 /usr/bin/python
hiiszdvzd 2354 1 root txt REG 253,0 625729 2100934 /usr/bin/hiiszdvzdv
11、去除父进程执行权限并缩短/usr/bin目录,防止病毒在/usr/bin生成新病毒文件
chmod 000 /usr/bin/hiiszdvzdv && chattr +i /usr/bin
12、去除后病毒主进程
ps aux|grep -i hiiszdvzdv|awk ‘{print $2}‘|xargs kill -9
病毒捕获到kill指令的SIGAL TERM结束指令后会尝试在/usr/bin生成新病毒,但由于上一步骤禁止/usr/bin目录写入,这一过程会失败
重新检测/usr/bin目录启动的父进程可发现病毒进程已消失
[[email protected] etc]# lsof -R |grep "/usr/bin"
python 2197 1 root txt REG 253,0 4864 2099101 /usr/bin/python
[[email protected] etc]#
13、关闭服务器,用于flush内存,将驻留在内存中的病毒进程清除掉,注意此处必须为关闭,不能重启。重启服务器只会清空服务器引导阶段所需的部分内存,不能保证彻底清除病毒。
14、开启服务器,将关闭写权限的目录解禁
chattr -i -R /usr/bin /lib /lib64 /etc/init.d /etc/rc.d /usr/sbin /usr/local
15、使用clamav重新扫描,看是否有未清理干净的病毒文件残留
clamscan -r --infected /