Linux系统被入侵后处理实战
事件背景:
操作系统:centos6.5
运行业务:公司业务系统,爬虫程序,数据队列
服务器托管在外地机房
事件起因:
突然频繁收到一组服务器ping监控不可达邮件,通过zabbix监控系统中,发现流量超高,达到了800M,发现不正常,马上尝试ssh登录系统,不幸的是,这种情况是很难登录系统的。
处理过程:
当时第一反应是想马上切断外部网络,通过内网连接查看
可是这样一来流量就会消失,也就很难查找攻击源了,于是联系机房协助解决,授权机房技术登录到系统;
1、检测系统有无异常状态
首先使用w命令查看是否有无异常用户登录;再查看用户登录日志:/var/log/auth.log,日志被清空了。
使用iftop工具找出占用大量流量的连接
从显示中看到本地一直通过http方式向某个IP地址发送数据包,而且持续不断
采取办法:
使用iptables防火墙将此ip给屏蔽
Iptables -A OUTPUT -d “ip地址” -j DROP
当时查看流量下去了,可以正常连接了。
过了一会,流量又飙升了
再次联系机房技术,执行上次的操作,使用iftop工具,查看大流量的连接
此时发现一个又是同样的方式再发包,但是目的ip已经发生了变化,联想到本地向外发包,那本地肯定会有程序来发包,找到本地程序应该就可以解决!
2、查找攻击源:
使用netstat工具过滤端口,查看运行的进程ID
Netstat -anpt | grep 15773
返回无结果,更换端口后仍然没有结果
拜托机房技术大哥观察了下链接状态,原来是短连接,会很快的屏蔽端口,所以才看不到端口的连接状态
正常长连接来说,可以使用lsof -i:15773这样方式找到PID号,再lsof -p pid号找到打开的相关文件
此时,只有先切断外部网络,内网ssh进入系统,然后找到这个发包的程序。
第一步:通过netstat -anpt 查看有无开放可以的端口或者链接
第二步:通过ps -ef查看有无可疑的进程
结果,都没有发现可疑现象。
怀疑是植入了rootkit木马程序!
Rootkit木马程序:rootkit是攻击者用来隐藏自己的踪迹和保留root访问权限的工具
使用MD5sum校验执行文件判断:
先找个同版本操作系统,获取这个工具执行文件的md5值,再获取可疑的工具执行文件md5值,进行对比
或者直接使用du命令du -sh /bin/lsof查看,发现此工具大小为1.2M 明显有问题
采取方法:
直接下载正常系统里的netstat ps等工具上传到被黑的系统里使用,再将不可用的替换掉
3、清理木马程序
当完成第二步操作后,使用 ps -ef 命令后,发现可疑程序,有一个java.log程序,杀掉此进程,并删除, 第二个发现ps的执行命令不是/bin/ps ,进入此目录查看,多了好几个程序,初步判断是工具被替换了,将所有的工具都删除掉,突然发现又有了java.log这个可疑程序,判断是有脚本在控制此进程启动,进入/etc/init.d/目录下查看,有一个异常脚本,把脚本删除,再删除一次java.log,此程序不再出现,流量此时已经稳定。
事件总结:
发现问题源:(1)、工具被替换了
(2)、java.log发现是发包程序,删除后自动生成
(3)、判断是后门程序,查找脚本目录下可疑脚本,删除脚本解决此问题
针对此次攻击,总结防范思路:
(1)、linux系统安装后,启用防火墙,只允许信任源访问指定服务,删除不必要的用户,关闭不必要的服务等。
(2)收集日志,包括系统日志,登录日志,程序日志等,及时发现潜在风险
(3)针对用户登录实时收集,包括登录时间,密码重试次数以及用户执行命令记录等。
(4)对敏感文件或目录变化进行事件监控,如/etc/passwd /etc/shadow /web /tmp
(5)进程状态监控,对新增或可疑进程做好记录并通知
(6)对上线的服务器系统,web程序进程安全漏洞扫描