Linux系统被入侵后处理实战

事件背景

操作系统:Ubuntu12.04_x64

运行业务:公司业务系统,爬虫程序,数据队列。

服务器托管在外地机房。

突然,频繁收到一组服务器ping监控不可达邮件,赶紧登陆zabbix监控系统查看流量状况。

 

可见流量已经达到了800M左右,肯定不正常!

马上尝试SSH登陆系统,不幸的是,这种情况是很难登录系统的。

该怎么办?

1、排查问题

当时我的第一反应是想马上切断外部网络,通过内网连接查看。

可是这样一来流量就会消失,也就很难查找攻击源了。

于是联系机房协助解决,授权机房技术登录到系统:

首先通过w命令查看是否有异常用户在登录;

再查看登录日志/var/log/auth.log,预料之中,日志已经清空;

最后使用iftop工具找出占用大量流量的连接。

下图是机房技术给我拍的照:

可以看到本地一直通过http方式向104.31.225.6这个ip发送数据包,而且持续不断。

那好,先把这个ip给屏蔽了试试:


  1. iptables –A OUTPUT –d 104.31.225.6 –j DROP 

哇塞!奇迹出现了,流量下去了,能正常连接了。

过一会儿,不幸的事情发生了,流量又上来了!

什么情况!我的心情顿时紧张起来。

又赶紧联系机房技术,执行上次的操作。

下图是当时的情况:

傻眼了,目的ip变了,这可咋搞,不可能一个个封吧!

静下心来,仔细想了下,本地向外发包,那本地肯定会有程序来发!

找到本地程序就能解决了!

2、查找攻击源

首先我使用了netstat工具过滤端口,查看运行的进程ID:


  1. netstat –atup |grep 15773 

没有任何结果,更换端口尝试后仍然没有结果。

拜托机房技术大哥观察了下连接状态,原来是短连接,会很快的释放端口,所以才看不到端口的连接状态。

正常长连接来说,可以使用lsof –i :15773这样方式找到PID,再lsof –p PID找到打开的相关文件。

好吧!只好先切断外部网络,内网SSH进入系统,然后找到这个发包的程序。

第一步:通过netstat –antup 查看有无开放可疑的端口或者连接。

第二步:通过ps –ef查看有无可疑的进程。

结果是~

都没有!

难道是植入了rootkit木马程序?!

想要判断系统有没有植入了rootkit可以使用md5sum校验执行文件判断:

先找个同版本操作系统,获取到这个工具执行文件的md5值,再获取可疑的工具执行文件md5值,比较两个值是否相同。

如果相同说明这个工具是可信任的,如果不相同很有可能是被替换的。

另外,一般工具可执行文件大小都在几十K到几百K。

但我没有选择用md5方式来判断工具是否可信任,因为完全相同版本的操作系统并不好找。

我直接使用du –sh /bin/lsof查看,发现大小1.2M,明显有问题。

所以直接下载正常系统里的netstat、ps等工具上传到被黑的系统里使用,再将不可用的替换掉。

3、清理木马程序

完成第二步的操作后,奇迹出现了,执行ps –ef后,发下最下面有几行可疑程序。

本想截图的,可惜SSH客户端给关了,没留下截图。

记忆中,大概是这样的:


  1. pid /sbin/java.log 
  2.  
  3. pid /usr/bin/dpkgd/ps –ef 
  4.  
  5. pid /usr/bin/bsd-port/getty 
  6.  
  7. 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趁搞的鬼,同样清除,不再自动生成了。

好了,可以开启外网了,观察了一会网络流量不再飙升了,心情有如看到美女一样的愉快!

4、事件总结


  1. ls /usr/bin/dpkgd/ #替换的工具,系统自带的工具正常不会在这个目录下,并且也不可用 
  2.  
  3. netstat lsof ps ss 
  4.  
  5. /sbin/java.log #判断是发包程序,删除后会自动生成 
  6.  
  7. /usr/bin/bsd-port #判断是自动生成java.log或着后门程序 
  8.  
  9. /usr/sbin/.sshd #判断是后门程序  

如果还有其他木马程序怎么办?如果是XSS攻击,应用层漏洞入侵怎么办?

针对这些问题,从我们公司角度来说,尽量不重装系统,业务太复杂。找出入侵点,跑的程序多,攻击面多,很棘手。

就先这样吧!兵来将挡,水来土掩。~

被黑客趁机入侵的原因:

1. 运维对网络安全实施落实力度低

2. 没有相关安全测试人员,不能及时发现应用层漏洞

等等...

针对这次攻击,总结了下防护思路:

1. linux系统安装后,启用防火墙,只允许信任源访问指定服务,删除不必要的用户,关闭不必要的服务等。

2. 收集日志,包括系统日志,登录日志,程序日志等,及时发现潜在风险。

3. 针对用户登录实时收集,包括登录时间,密码重试次数以及用户执行命令记录等。

4. 对敏感文件或目录变化进行事件监控,如/etc/passwd、/etc/shadow、/web、/tmp(一般上传文件提权用)等。

5. 进程状态监控,对新增或可疑进程做好记录并通知。

6. 对上线的服务器系统、Web程序进程安全漏洞扫描。

最后,没有绝对的安全,只有尽可能减少攻击面,提供系统防护能力。

网络安全,从我做起!

作者:糖豆

来源:51CTO

时间: 2024-09-20 08:08:03

Linux系统被入侵后处理实战的相关文章

linux系统被入侵后处理经历

背景 操作系统:Ubuntu12.04_x64 运行业务:公司业务系统,爬虫程序,数据队列. 服务器托管在外地机房. 突然,频繁收到一组服务器ping监控不可达邮件,赶紧登陆zabbix监控系统查看流量状况. 可见流量已经达到了800M左右,肯定不正常,马上尝试SSH登陆系统,不幸的事,这种情况是很难登录系统操作的.该怎么办? 1.排查问题 第一反应是想马上切断外部网络,通过内网连接查看.可是这样一来流量就会消失,但也很难查找攻击源了. 于是联系机房协助解决,授权机房技术登录到系统,先通过w命令

Linux系统被入侵后使用lsof命令恢复被删除日志的方法

  Linux系统是服务器最常见的操作系统,当然也面临着非常多的安全事件,相较Windows操作系统,Linux采用了明确的访问权限控制和全面的管理工具,具有非常高的安全性和稳定性.Linux系统被入侵后,攻击者为了掩盖踪迹,经常会清除系统中的各种日志,包括Web的access和error日志.last日志.message日志.secure日志等,给我们后期应急响应和取证分析带来了非常大的阻力.所以,恢复被清除的日志是非常重要的取证和分析环节,一下是使用lsof命令恢复日志文件的案例,适用于常见

如何在 Linux 系统上安装 Suricata 入侵检测系统

如何在 Linux 系统上安装 Suricata 入侵检测系统 随着安全威胁的不断发生,入侵检测系统(IDS)在如今的数据中心环境中显得尤为必要.然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB以太网,对如此线路上的硬件进行计算密集型的入侵检测越来越困难.其中一种提升入侵检测系统性能的途径是多线程入侵检测系统,它将 CPU 密集型的深度包检测工作并行的分配给多个并发任务来完成.这样的并行检测可以充分利用多核硬件的优势来轻松提升入侵检测系统的吞吐量.在这方面有两个知名的开源项目,分别

Linux系统shell脚本编程――生产实战案例

Linux系统shell脚本编程――生产实战案例 在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [root@centos6 scripts]# ping 17

【下载】维基解密第14批 法外之地“OutlawCountry”项目 用于远程入侵Linux系统

维基解密近日又发布了一批新的文档,其中详细介绍了CIA入侵Linux系统的工具,法外之地"OutlawCountry".相关文档称,"OutlowCountry"工具的原理是将目标Linux计算机上的全部出站网络流量,重新定向至CIA控制下的系统当中,从而获取 exfiltrate 及 infiltrate数据 该工具包含一个面向Linux 2.6的内核模块,CIA黑客通过shell访问目标系统从而完成该模块的加载,但该工具的局限在于只适用于部分特定Linux内核,

Linux系统服务器防病毒实战

  一.Linux病毒简介 随着Linux应用的日益广泛,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络.在服务器端大多使用Linux和Unix的,桌面端使用Windows XP.Vista.Linux操作系统一直被认为是Windows系统的劲敌,因为它不仅安全.稳定.成本低,而且很少发现有病毒传播.但是,随着越来越多的服务器.工作站和个人电脑使用Linux软件,电脑病

LINUX系统安全日志分析案例

当我们用上面的方法进行了 Linux 服务器的安装和一些基本的设置后,我们的服务器应该说来是比较安全的.但是总是还会有黑客可以通过各种方法利用系统管理员的疏忽侵入我们的系统.他们的一举一动都会记录到系统的日志之中,尽管他们可能可以改变这些日志信息,甚至用自己的程序替换掉我们系统本身的命令程序,但是通过日志我们总还是能找到一些蛛丝马迹.下面我们主要讲一下 Linux 环境中的系统记帐和系统日志管理以及怎么用一些工具更加方便有效的管理日志信息. 1 系统记帐 最初开发的系统记帐用于跟踪用户资源消费情

Linux系统安全配置详细解析

  1.为LILO增加开机口令 在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性.具体设置如下: boot=/dev/hdamap=/boot/mapinstall=/boot/boot.btime-out=60 #等待1分钟promptdefault=linuxpassword=#口令设置image=/boot/vmlinuz-2.2.14-12label=linuxinitrd=/boot/initrd-2.2.14-12.img root=

加强企业Linux系统安全的若干方法

世界上没有绝对安全的系统,即使是普遍认为稳定的Linux系统,在管理和安全方面也存在不足之处.我们期望让系统尽量在承担低风险的情况下工作,这就要加强对系统安全的管理.为了帮助企业了解和掌握如何加强Linux系统在安全方面的管理,除了把预防工作提前做好外,还需要了解黑客常用手法. 下面,分别从黑客对Linux的入侵攻击和Linux系统的安全防护两个方面来介绍如何加强Linux系统在安全方面的管理. 防止黑客的入侵 在谈黑客入侵方面的安全管理之前,简单介绍一些黑客攻击Linux主机的主要途径和惯用手