IT行业发展到现在,安全问题已经变得至关重要,从最近的“棱镜门”事件中,折射出了很多安全问题,信息安全问题已变得刻不容缓,而做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,修补任何潜在的威胁和漏洞。
一次Linux被入侵后的分析
下面通过一个案例介绍下当一个服务器被rootkit入侵后的处理思路和处理过程,rootkit
攻击是Linux系统下最常见的攻击手段和攻击方式。
1、受攻击现象
这是一台客户的门户网站服务器,托管在电信机房,客户接到电信的通知:由于此服务器持续对外发送数据包,导致100M带宽耗尽,于是电信就切断了此服务器的网络。此服务器是Centos5.5版本,对外开放了80、22端口。
从客户那里了解到,网站的访问量并不大,所以带宽占用也不会太高,而耗尽100M的带宽是绝对不可能的,那么极有可能是服务器遭受了流量攻击,于是登录服务器做详细的检测。
2、初步分析
在电信人员的配合下通过交换机对该服务器的网络流量进行了检测,发现该主机确实存在对外80端口的扫描流量,于是登录系统通过“netstat –an”命令对系统开启的端口进行检查,可奇怪的是,没有发现任何与80端口相关的网络连接。接着使用“ps –ef”、“top”等命令也没有发现任何可疑的进程。于是怀疑系统是否被植入了rootkit。
为了证明系统是否被植入了rootkit,我们将网站服务器下的ps、top等命令与之前备份的同版本可信操作系统命令做了md5sum校验,结果发现网站服务器下的这两个命令确实被修改过,由此断定,此服务器已经被入侵并且安装了rootkit级别的后门程序。
3、断网分析系统
由于服务器不停向外发包,因此,首先要做的就是将此服务器断开网络,然后分析系统日志,寻找攻击源。但是系统命令已经被替换掉了,如果继续在该系统 上执行操作将变得不可信,这里可以通过两种方法来避免这种情况,第一种方法是将此服务器的硬盘取下来挂载到另外一台安全的主机上进行分析,另一种方式就是 从一个同版本可信操作系统下拷贝所有命令到这个入侵服务器下某个路径,然后在执行命令的时候指定此命令的完整路径即可,这里采用第二种方法。
我们首先查看了系统的登录日志,查看是否有可疑登录信息,执行如下命令:
通过对命令输出的查看,有一条日志引起了我们的怀疑:
这条日志显示在10月3号的凌晨3点10分,有个mail帐号从62.17.163.186这个IP成功登录了系统,mail是系统的内置帐号,默 认情况下是无法执行登录操作的,而62.17.163.186这个IP,经过查证,是来自爱尔兰的一个地址。从mail帐号登录的时间来看,早于此网站服 务器遭受攻击的时间。
接着查看一下系统密码文件/etc/shadow,又发现可疑信息:
很明显,mail帐号已经被设置了密码,并且被修改为可远程登录,之所以使用mail帐号,猜想可能是因为入侵者想留下一个隐蔽的帐号,以方便日后再次登录系统。
然后继续查看其他系统日志,如/var/log/messages、/var/log/wtmp均为空文件,可见,入侵者已经清理了系统日志文件,至于为何没有清空/var/log/secure文件,就不得而知了。
4、寻找攻击源
到目前为止,我们所知道的情况是,有个mail帐号曾经登录过系统,但是为何会导致此网站服务器持续对外发送数据包呢?必须要找到对应的攻击源,通过替换到此服务器上的ps命令查看系统目前运行的进程,又发现了新的可疑:
这个.t程序是什么呢,继续执行top命令,结果如下:
从输出可知,这个t程序已经运行了4天左右,运行这个程序的是nobody用户,并且这个t程序消耗了大量的内存和cpu,这也是之前客户反映的网 站服务器异常缓慢的原因,从这个输出,我们得到了t程序的进程PID为22765,接下来根据PID查找下执行程序的路径在哪里:
进入内存目录,查看对应PID目录下exe文件的信息:
这样就找到了进程对应的完整程序执行路径,这个路径很隐蔽,由于/var/tmp目录默认情况下任何用户可读性,而入侵者就是利用这个漏洞在/var /tmp目录下创建了一个“…”的目录,而在这个目录下隐藏着攻击的程序源,进入/var/tmp/…/目录,发现了一些列入侵者放置的rootkit文 件,列表如下:
通过对这些文件的分析,基本判断这就是我们要找的程序攻击源,其中:
1)、z程序是用来清除系统日志等相关信息的,例如执行:
这条命令执行后,系统中所有与62.17.163.186有关的日志将全部被清除掉。
2)、在apa目录下有个后门程序t,这个就是之前在系统中看到的,运行此程序后,此程序会自动去读apa目录下的ip这个文件,而ip这个文件记 录了各种ip地址信息,猜想这个t程序应该是去扫描ip文件中记录的所有ip信息,进而获取远程主机的权限,可见这个网站服务器已经是入侵者的一个肉鸡 了。
3)、haha目录里面放置的就是用来替换系统相关命令的程序,也就是这个目录下的程序使我们无法看到操作系统的异常情况。
4)、login程序就是用来替换系统登录程序的木马程序,此程序还可以记录登录帐号和密码。
5、查找攻击原因
到这里为止,服务器上遭受的攻击已经基本清晰了,但是入侵者是如何侵入这台服务器的呢?这个问题很重要,一定要找到入侵的根源,才能从根本上封堵漏洞。
为了弄清楚入侵者是如何进入服务器的,需要了解下此服务器的软件环境,这台服务器是一个基于java的web服务器,安装的软件有 apache2.0.63、tomcat5.5,apache和tomcat之间通过mod_jk模块进行集成,apache对外开放80端口,由于 tomcat没有对外开放端口,所以将问题集中到apache上面。
通过查看apache的配置发现,apache仅仅处理些静态资源请求,而网页也以静态页面居多,所以通过网页方式入侵系统可能性不大,既然漏洞可 能来自于apache,那么尝试查看apache日志,也许能发现一些可疑的访问痕迹,通过查看access.log文件,发现了如下信息:
至此,发现了漏洞的根源,原来是awstats.pl脚本中configdir的一个漏洞,通过了解此服务器的应用,客户确实是通过一个 Awstats的开源插件来做网页访问统计,通过这个漏洞,攻击者可以直接在浏览器上操作服务器,例如查看进程、创建目录等。通过上面第二条日志可以看 出,攻击者正常浏览器执行切换到/var/tmp/…/haha目录的操作。
这个脚本漏洞挺可怕的,不过在Awstats官网也早已给出了修补的方法,对于这个漏洞,修复方法很简单,打开awstats.pl文件,找到如下信息:
6、揭开谜团
通过上面逐步分析和介绍,此服务遭受入侵的原因和过程已经非常清楚了,大致过程如下:
(1)攻击者通过Awstats脚本awstats.pl文件的漏洞进入了系统,在/var/tmp目录下创建了隐藏目录,然后将rootkit后门文件传到这个路径下。
(2)攻击者通过植入后门程序,获取了系统超级用户权限,进而控制了这台服务器,通过这台服务器向外发包。
(3)攻击者的IP地址62.17.163.186可能是通过代理过来的,也可能是攻击者控制的其他肉鸡服务器。
(4)攻击者为了永久控制这台机器,修改了系统默认帐号mail的信息,将mail帐号变为可登录,并且设置了mail帐号的密码。
(5)攻击者在完成攻击后,通过后门程序自动清理了系统访问日志,毁灭了证据。
通过对这个入侵过程的分析,发现入侵者的手段还是非常简单和普遍的,虽然入侵者删除了系统的一些日志,但是还是留下了很多可查的踪迹,其实还可以查看用户下的.bash_history文件,这个文件是用户操作命令的历史记录。
7、如何恢复网站
由于系统已经文件被更改和替换,此系统已经变得完全不可信,因此建议备份网站数据,重新安装系统,基本步骤如下:
(1)安装稳定版本的操作系统,删除系统默认的并且不需要的用户。
(2)系统登录方式改为公钥认证方式,避开密码认证的缺陷。
(3)安装更高版本的apache和最新稳定版本的Awstats程序。
(4)使用Linux下的Tcp_Wrappers防火墙,限制ssh登录的源地址。
相关推荐
Linux 系统安全保护与攻击分析 Linux 操作系统作为服务器操作系统的重要组成部分,随着社会科技的发展和服务器的广泛应用,服务器安全问题变得至关重要。在本文中,我们将对 Linux 服务器被攻击的分析过程进行详细...
虽然现代Linux系统通过关闭不必要的服务和进程提升了安全性,但只要有可利用的服务存在,攻击者总能找到突破口。 针对缓冲区溢出的防范策略,可以从多个层面入手。系统管理方面,应定期更新系统和软件,修复已知的...
通过对一次针对Windows 2000的实际入侵案例的分析,读者可以了解到实际攻击过程中使用的手段及防御措施。 ##### 2.4 用户管理 Windows系统中的用户管理主要包括账户(accounts)和组(groups)。账户用于定义用户...
这样,程序执行流将在下一次函数返回时跳转到攻击者设定的地址。 4. **获取权限提升**:如果攻击成功,payload被执行,通常会尝试获取更高的权限,如从普通用户权限提升到root权限。这是因为溢出可能会破坏敏感数据...
为了提升邮件服务的质量与稳定性,本篇文章将介绍一种基于Linux操作系统和Qmail邮件服务器软件的电子邮件系统构建方案。 #### 过去邮件系统的配置结构与问题 以往的邮件系统通常使用Sun Internet Mail Server ...
Linux主机操作系统加固规范是针对系统安全的一项重要指南,旨在提高系统的稳定性和安全性,防止未经授权的访问和攻击。本文将深入探讨其中的关键知识点,包括账号管理、认证授权以及文件与授权等核心方面。 1. 账号...
在Linux操作系统中,日志文件是系统运行过程中记录事件的重要工具,它们包含了各种关于系统活动、应用程序行为以及错误信息的数据。对于系统管理员来说,查看和分析这些日志是日常维护工作的重要部分。本文将深入...
《计算机系统基础之缓冲区溢出攻击实验》是一份详细介绍了如何进行缓冲区溢出攻击的教学实验报告。 #### 实验目的 - **加深理解**:加深学生对IA-32架构下的函数调用机制和栈帧结构的理解。 - **攻击实践**:通过...
Linux系统硬化是指通过一系列最佳实践来增强系统的安全性,减少被攻击的风险。这包括限制不必要的服务,加强访问控制,优化防火墙规则,更新和打补丁等。"quick-secure" 工具就是针对这些需求而创建的,它可以快速...
首先,Linux系统的开源特性使得开发成本大大降低。与商业操作系统如Windows相比,Linux的源代码开放,开发者可以直接利用和修改源代码,无需支付高昂的授权费用。例如,车道控制计算机若使用Windows 2000 ...
在Linux系统中,日志管理主要涉及三个子系统: 1. **连接时间日志**:通过诸如`login`等程序更新`/var/log/wtmp`和`/var/run/utmp`文件,记录用户登录和登出的时间,帮助系统管理员跟踪系统的访问情况。`wtmp`文件...
在Linux操作系统中,网络协议栈是其核心组件之一,它负责处理所有进出系统的网络通信。这篇论文主要探讨了Linux网络协议栈中的TCP协议栈,以及如何通过原始套接口进行网络嗅探,以增强网络安全。 首先,TCP协议栈是...
- **目的**:该规范的目的是为了提高Linux系统的安全防护能力,防止未经授权的访问和攻击,保护系统资源不被滥用。 - **适用范围**:适用于所有使用Linux系列服务器的系统管理员、应用管理员和网络安全管理员。 -...
5. **案例分析**:报告中可能包含真实或模拟的入侵案例,分析入侵过程、手段以及如何被检测到,提供学习和参考。 6. **模板与流程**:为了便于实际操作,报告会提供入侵检测报告的撰写模板,以及实施检测的详细流程...
在这种情况下,攻击发生在53端口,表明是一次DNS攻击。 - **漏洞利用**:蜜罐系统在11月25日被探测,第二天即被利用。根据Snort的记录,入侵者可能使用了自动化工具进行扫描,之后确定了目标系统的漏洞。 ##### 3.4...
为了更好地理解TCP协议是如何被集成到Linux内核中的,我们需要探索`tcp_prot`结构体以及相关的函数调用流程。`tcp_prot`是表示TCP协议的结构体,在内核中它主要负责处理与TCP协议相关的操作,如连接建立、数据传输、...
【Linux内核处理IPv6报文的重复分片存在的问题及解决对策】 IPv6协议在传输大尺寸数据时,如果路径MTU(最大传输单元)不足以承载整个数据包,源节点会将数据包分成多个小的分片进行发送。每个分片包含在IPv6扩展...
总结起来,Linux Morpheus是一个强大的自动化Ettercap工具,它简化了中间人攻击的过程,为安全研究人员提供了便利。然而,由于其潜在的风险,使用者必须确保在合法授权的范围内进行操作,避免违反网络安全法规。