linux系统被入侵后处理经历【转】
背景
操作系统:Ubuntu12.04_x64
运行业务:公司业务系统,爬虫程序,数据队列。
服务器托管在外地机房。
突然,频繁收到一组服务器ping监控不可达邮件,赶紧登陆zabbix监控系统查看流量状况。
可见流量已经达到了800M左右,肯定不正常,马上尝试SSH登陆系统,不幸的事,这种情况是很难登录系统操作的。该怎么办?
1、排查问题
第一反应是想马上切断外部网络,通过内网连接查看。可是这样一来流量就会消失,但也很难查找攻击源了。
于是联系机房协助解决,授权机房技术登录到系统,先通过w命令查看是否有异常用户在登录,再看看登录日志/var/log/auth.log,预料之中,日志已经清空;最后使用工具找出那个连接占用流量大,我使用了iftop工具。
机房技术给我拍了照,看到本地一直通过http方式向104.31.225.6这个ip发送数据包,而且持续不断。
那好,先把这个ip给屏蔽了试试:
iptables –A OUTPUT –d 104.31.225.6 –j DROP
哇塞!奇迹出现了,流量下去了,能正常连接了,面部逐渐露出笑容。
过一会儿,不幸的事情发生了,流量又上来了,擦!什么情况!心情顿时紧张起来。
又赶紧联系机房技术,执行上次的操作。
傻眼了,目的ip变了,这可咋搞,不可能一个个封吧!
静下心来,仔细想了下,本地向外发包,那本地肯定会有程序来发!这可咋找啊?
2、查找攻击源
先通过netstat工具过滤端口,查看运行的进程ID:
netstat –atup |grep 15773
什么都没有啊,再换个端口试试,同样的效果!
让机房技术观察了下连接状态,原来是短连接,会很快的释放端口,所以才看不到端口的连接状态。
正常长连接来说,可以使用lsof –i :15773这样方式找到PID,再lsof –p PID找到打开的相关文件。
我想静静~。
好吧!决定先切断外部网络,内网SSH进入系统,先找到这个发包的程序,走起!
先通过netstat –antup 查看有无开放可疑的端口或者连接。
再通过ps –ef查看有无可疑的进程。
仔细看了看,都没有发现可疑的。
难道是植入了rootkit木马程序,说不好,试试看吧!
想要判断系统有没有植入了rootkit可以使用md5sum校验执行文件判断,先找个同版本操作系统,获取到这个工具执行文件的md5值,再获取可疑的工具执行文件md5值,比较两个值是否相同,如果相同说明这个工具是可信任的,如果不相同很有可能是被替换的。另外,一般工具可执行文件大小都在几十K到几百K。
其实我没有用md5方式来判断工具是否可信任,因为完全相同版本操作系统不好找,稍微有点差别,工具就有可能已被更新,md5值不同。我直接使用du –sh /bin/lsof查看,发现大小1.2M,明显有问题。
所以直接下载正常系统里的netstat、ps等工具上传到被黑的系统里使用,再将不可用的替换掉。
3、清理木马程序
果然,奇迹出现了,执行ps –ef后,发下最下面有几行可疑程序。在这里,本想截图的,可惜SSH客户端给关了,没留下截图。
记忆中,大概是这样的:
pid /sbin/java.log
pid /usr/bin/dpkgd/ps –ef
pid /usr/bin/bsd-port/getty
pid /usr/bin/.sshd
看到这几个,感觉很奇怪,怎么会有个java.log的执行文件在运行呢,经过找同事核实有没有运行这样的,他们说没有,那好先杀掉并删除再说。
紧接着怎么会有我执行的命令呢,ps –ef,命令的路径不是/bin/ps,引起了我的怀疑,马上进入此目录下查看。
擦,还有几个,初步判断是工具被替换了。
还有一个怎么叫getty呢,再正常系统里面对比进程,发现没有这个。估计又是黑客留下的,劳资怒了,宁可错杀一百,也不放过一个!
杀掉进程,删除目录。
.sshd进程?明显很可疑,难道是ssh后门,先杀掉删除再说!
再执行ps –ef命令看下,奇怪,java.log进程又起来了,难道有自启动设置?于是到了/etc/init.d下查看,有个异常脚本,在正常系统的也没有,打开看了下,果然是启动木马程序的脚本。把脚本删除,再删除一次java.log,不再出现了。
删除了/sbin/java.log文件过一会又出现了,怎么回事?估计是getty趁搞的鬼,同样清除,不再自动生成了。
好了,可以开启外网了,观察了一会网络流量不再飙升了,心情有如看到美女一样的愉快!
博客地址:http://lizhenliang.blog.51cto.com
4、事件总结
ls /usr/bin/dpkgd/ #替换的工具,系统自带的工具正常不会在这个目录下,并且也不可用
netstat lsof ps ss
/sbin/java.log #判断是发包程序,删除后会自动生成
/usr/bin/bsd-port #判断是自动生成java.log或着后门程序
/usr/sbin/.sshd #判断是后门程序
木马代码程序下载地址:http://pan.baidu.com/s/1b3yOVW
小心,直接执行java.log可能会导致linux瞬间基本上无法连接~!
如果还有其他木马程序怎么办?如果是XSS攻击,应用层漏洞入侵怎么办?
针对这些问题,从我们公司角度来说,尽量不重装系统,业务太复杂。找出入侵点,跑的程序多,攻击面多,很棘手。先这样吧!兵来将挡,水来土掩。~
让黑客趁机入侵的原因:
1. 运维对网络安全实施落实力度低
2. 没有相关安全测试人员,不能及时发现应用层漏洞
等等...
针对这次攻击,总结了下防护思路:
1. linux系统安装后,启用防火墙,只允许信任源访问指定服务,删除不必要的用户,关闭不必要的服务等。
2. 收集日志,包括系统日志,登录日志,程序日志等,及时发现潜在风险。
3. 针对用户登录实时收集,包括登录时间,密码重试次数以及用户执行命令记录等。
4. 对敏感文件或目录变化进行事件监控,如/etc/passwd、/etc/shadow、/web、/tmp(一般上传文件提权用)等。
5. 进程状态监控,对新增或可疑进程做好记录并通知。
6. 对上线的服务器系统、Web程序进程安全漏洞扫描。
还是那句话,没有绝对的安全,只有尽可能减少攻击面,提供系统防护能力。
转载:
linux系统被入侵后处理经历 - 李振良的技术博客 - 51CTO技术博客
http://lizhenliang.blog.51cto.com/7876557/1769028
linux系统被入侵后处理经历【转】的更多相关文章
- Linux系统被入侵后处理经历
服务器托管在外地机房. 突然,频繁收到一组服务器ping监控不可达邮件,赶紧登陆zabbix监控系统查看流量状况. 可见流量已经达到了800M左右,肯定不正常,马上尝试SSH登陆系统,不幸的事,这种情 ...
- 记一次Linux系统被入侵的过程
记一次Linux系统被入侵的过程 1. 前期现象 前期现象,宋组那边反应开发环境192.161.14.98这台机器通过公网下载文件,很慢,ping百度丢包严重.因为这台机器是通过楼下adsl拨号上网, ...
- 一次linux服务器黑客入侵后处理
场景: 周一上班centos服务器ssh不可用,web和数据库等应用不响应.好在vnc可以登录 使用last命令查询,2号之前的登录信息已被清空,并且sshd文件在周六晚上被修改,周日晚上2点服务器 ...
- 排查linux系统是否被入侵
在日常繁琐的运维工作中,对linux服务器进行安全检查是一个非常重要的环节.今天,分享一下如何检查linux系统是否遭受了入侵? 一.是否入侵检查 1)检查系统日志 检查系统错误登陆日志,统计IP重试 ...
- Linux 系统之Sysvinit
子贡问为仁.子曰:“工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者.”——孔子(春秋)<论语·卫灵公> [工欲善其事,必先利其器] 掌握一门技术,知道其发展历程是非常重要的 ...
- LInux系统木马植入排查分析 及 应用漏洞修复配置(隐藏bannner版本等)
在日常繁琐的运维工作中,对linux服务器进行安全检查是一个非常重要的环节.今天,分享一下如何检查linux系统是否遭受了入侵? 一.是否入侵检查 1)检查系统日志 检查系统错误登陆日志,统计IP重试 ...
- Linux系统是否被植入木马的排查流程梳理
在日常繁琐的运维工作中,对linux服务器进行安全检查是一个非常重要的环节.今天,分享一下如何检查linux系统是否遭受了入侵? 一.是否入侵检查 1)检查系统日志 1 2 检查系统错误登陆日志,统计 ...
- 真实记录我入门学习Linux系统的经历
我本身来说并不是计算机专业的学生,因此今天来谈及这个话题,对大家来说,有了更多的客观公正性.对我而言,linux给我最大的财富,并不是编程能力提高了多少,而是视野的开阔.心态的转变和自学能力的提高.我 ...
- LINUX系统入侵排查
当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措施,为 ...
随机推荐
- linux 网络编程:客户端与服务器通过TCP协议相互通信 + UDP
1.TCP编程的客户端一般步骤: 1.创建一个socket,用函数socket(): 2.设置socket属性,用函数setsockopt():* 可选: 3.绑定IP地址.端口等信息到socket上 ...
- .Net程序员学用Oracle系列(4):四个基本概念
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.概念说明 1.1.表空间 1.2.SCHEMA 1.3.用户 1.4.权限 2.表空间管理 2.1.创建表空间 2.2.监控 ...
- Springboot 入门之Hello World
首先使用maven进行包加载和配置,但是你maven一定要配置好,maven的setting.xml文件一定要配置好,不然jar包加载不了的. <project xmlns="http ...
- 程序集和反射(C#)
这里我又唠叨几句,大家在学习的时候,如看书或者看视频时觉得非常爽,因为感觉基本都看得懂也都挺容易的,其实看懂是一回事,你自己会动手做出来是一回事,自己能够说出来又是另一回事了.应该把学到的东西变成自己 ...
- HTML5 智能表单
HTML5 智能表单 1.表单新增属性 ☀ autofocus 属性 <input type="text" autofocus/>设置 autofocus 属性,使文 ...
- (七)第一个python程序!
这是对我自己来说比较有仪式的一篇随笔记录,说了那么多,开始第一个pyhton小程序吧! 首先找一个版本比较新的Linux系统, 执行Python –V 查看一下你的Python版本: # python ...
- WebService一、数据交互
调用webservice总结: 1.加入第三方的jar包 Ksoap2-android-XXX 2.访问响应的webservice的网站,查看响应的信息,得到nameSpace,methodN ...
- Ubuntu14.04安装wineqq国际版出现无法输入中文的解决方法
执行命令:sudo vim /usr/bin/wine-qqintl 将"export LANG=zh_CN.utf8"改为"export LANG=en_US.utf8 ...
- 【锋利的Jquery】读书笔记十一
项目进度太赶,天天公司加班12小时,没时间看书充电.2016年再更新一篇吧.现在凌晨2点36分. 2017加油哦 jquery合适的选择器 $("#id") 无疑是最佳提高性能的方 ...
- nyoj 79 拦截导弹 (动态规划)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=79 题意即求最长单调递减子序列 #include<iostream> #inc ...