强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan
【前言】
继上次Redis服务器被劫持风暴(高校云平台(十三):Redis服务器被劫持风波)过后十多天后,病毒对我们总是恋恋不舍,又一次的来到我们身边;有了上次的经验后,这次处理起来虽然也有些波折,但是相对来说迅速很多;下面是这次解决的整体流程,希望会对读者有所启发。
【跌宕起伏研究之路】
一、发现病毒:
1、被通知:
2017年3月07日18点左右,第三方托管服务商通知我们我们有一台机器(为了方便表示以YYY代替),这台服务器中病毒,大量发包。
2、在服务器上查看现象:
(1)利用命令ifconfig,查看网络收发包情况:
其中ipconfig查询统计的收发包是从这次开机起统计,利用man ipconfig 看说明:
(2)利用命令:uptime -s 查询246开机的时间,发现10个小时左右发送241G这么多,同时利用ifconfig命令看局域网其他服务器发现开机比246早的发包也很少基本上没上G级的
(3)不断利用ifconfig查看收发包情况,发现246大概以1s 0.1G左右速度在发送包
(4)另外通过Zabbix监控246的数据(部分)
二、寻找病毒根源:
1、并非病毒猜想:
(1)依据:
由于Maven的私服在该机器上,猜测是Jenkins部署的影响,测试把YYY服务器断网(YYY机器是托管在上的一台虚拟机)在物理机上将其断网,发现Jenkins发布项目一直不成功,确定Jenkins构建需要从YYY私服上下载相应包;
(2)验证:
向拖管商确认是大量向外网发包而不是局域网,另外私服上的包总共没有这么大的量级,这样排除了Jenkins发布影响;
2、病毒导致:
(1)依据:发包如此频繁,中病毒的迹象;
(2)验证:
A.利用命令:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 查看和YYY建立连接的情况:
B.通过上图发现除了局域网中机器外还有两个可疑外网机器(137.59.18.147 和172.247.116.109)和其进行连接
C利用命令:netstat -ntlp 查看相应的进程,发现可疑进程MXQJVVDNF
D.利用命令:ll /proc/43993 查看相应的文件,发现可疑文件dataa
E.利用命令:ls /tmp/查询可疑目录下的文件,发现可疑文件
F.根据gates.lod在网上搜索到关于病毒文章--一次Linux服务器被入侵和删除木马程序的经历
G.至此验证是中病毒
(3)追踪:
A.核查服务器发现果然大部分博客中描述的病毒文件在YYY上都能找到
B.检查病毒的行踪,利用命令:ps -ef 发现病毒一些行踪
三、采取的解决方案:
1、将两个可疑IP(137.59.18.147和172.247.116.109)拉入黑名单
(1)拉入黑名单命令:
iptables -I INPUT -s 137.59.18.147 -j DROP
iptables -I INPUT -s 172.247.116.109 -j DROP
(2)扩展命令:
A.查看黑名单中都有谁命令: iptables –L
B.将某个IP从黑名单(在此以137.59.18.147为例)中去除命令: iptables -D INPUT -s 137.59.18.147 -j DROP
2、按照博客内容进行清理病毒文件
(1)所删除病毒文件
/usr/bin/bsd-port/ getty (bsd-port目录也清除)
/etc/rc.d/init.d/DbSecuritySpt
/etc/rc.d/rc1.d/S97DbSecuritySpt
/etc/rc.d/rc2.d/S97DbSecuritySpt
/etc/rc.d/rc3.d/S97DbSecuritySpt
/etc/rc.d/rc4.d/S97DbSecuritySpt
/etc/rc.d/rc5.d/S97DbSecuritySpt
/etc/rc.d/rc6.d/S97DbSecuritySpt
/root/pyth
/tmp (dataa gates.lod moni.lod)
(2)用ps -ef 查询所有进程,并用kill -9 PID将异常进程杀死
四、总结:
1、对命令的再理解:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
(1)检查是否被攻击时用该命令查询会有两种情况
A.连接数特别多,如下图中的第1列的数字代表连接数,一般二三十以内为正常,成千上万为异常;
B.可以发现可疑IP,虽然连接数少但是可能是发送大量数据,本次遇到就是这种情况
C.遇到上述情况用命令(在此以IP为137.59.18.147为例,将其拉入进黑名单)iptables -I INPUT -s 137.59.18.147 -j DROP
(2)对该命令所查出的连接数的研究
A.出现情况:用命令将两个可疑IP拉入黑名单,用该命令查发现连接数仍然是1
B.做相关实验:用一个IP(在此用XXX来表示)远程上YYY用该命令查询发现和XXX连接数为1,用XXX机器再ping YYY再用命令查发现有2个连接数,这时停止ping后发现连接数变为1,再在YYY上用命令iptables -I INPUT -s XXX -j DROP将XXX拉入黑名单,此时XXX机器立马不能对YYY进行操作,再在YYY上用命令查发现还是1个连接数
C.说明该命令查询的是在拉入黑名单之前的连接数
2、服务器安全一些建议:
(1)服务器打开防火墙,如果有应用需要外部访问,采用开端口形式
(2)关闭服务器不必要外网映射,另外即使非得映射也不要用使用服务的默认端口
(3)服务器密码要设置复杂些,另外需要隔一段时间进行变化
(4)Linux系统上装一些杀毒软件
【总结】
1、时常保持一颗好奇心;
2、多思考多总结,每经历一次在安全意识上提升一点;
3、感谢陈总,娜姐,和浩哥一起来搞。