金涛 李新剑 刘宏斌 史震宇新
摘 要:随着网络技术的高速发展,黑客攻击的手段越来越多,操作系统的安全性也必须随之提升。由于Linux操作系统内部的权限机构比较复杂且周密,所以相比于Windows来说更安全,常被用在服务器平台。但并不是说Linux就是绝对安全的,出于保护系统的目的,需要对系统进行渗透测试,用来找出测试对象的安全隐患,提高系统的安全性。文章分析了Linux系统的两个安全漏洞,并且对Linux系统进行模拟攻击,获取漏洞主机的控制权限,进一步说明了安全漏洞的危害性。
关键词:Linux;渗透测试;漏洞利用
中图分类号:TP393 文献标识码:A
Abstract: With the rapid development of network technology, the means of hacker attack are more and more, and the security of operating system must be improved accordingly. Because of the complexity and sophistication of the privilege mechanism within the Linux operating system, it is safer than Windows and is often used on the server platform. But it does not mean that Linux is absolutely safe. For the purpose of protecting the system, it is necessary to conduct penetration testing of the system to find out the potential security hazards of the test objects and improve the security of the system. This paper analyses two security vulnerabilities of Linux system, and simulates attacks on Linux system to obtain the control rights of vulnerable hosts, which further illustrates the harmfulness of security vulnerabilities.
Key words: Linux; penetration test; vulnerability exploitation
1 引言
网络信息安全的基础是操作系统的安全。操作系统为所有的信息化应用和安全措施提供了底层支持。当操作系统配置不当或者存在未修补或未发现的漏洞,都有可能导致整个安全体系的崩溃。操作系统高可靠性的运行以及信息的完整性、机密性、可用性和可控性,必须依赖于系统提供的软件基础,任何脱离操作系统的应用软件其安全性都是得不到保障的。一般来说,黑客攻击和病毒在内的各种网络安全问题的根源,大多数是由于操作系统的安全性很低且极为脆弱。
Linux系统相对于Windows系统在网络功能、跨平台性和稳定性上具有很多优势,然而作为开放式操作系统,它不可避免地存在一些安全隐患。Linux作为一种网上开源的系统,很多相关程序和工具都公布在网上,本意是为了方便用户,但同样也方便了黑客。黑客也可以利用这些开源的工具潜入Linux系统,从而盗取系统中的重要信息。
在计算机领域中,安全漏洞是指计算机在硬件或协议上存在的缺陷。这些缺陷会给攻击者制造在未经授权的情况下入侵计算机系统的机会,从而导致储存在计算机中的信息被窃取,甚至有可能对整个网络系统造成破坏。安全漏洞具有时效性,系统中会不断产生新的漏洞,因此在日常的使用过程中要不断更新安全补丁或对系统进行升级,只有这样才能有效防范漏洞。Linux系统通常是作为服务器的操作系统,而服务器存储着大量的用户信息,如果存在安全漏洞,其造成的危害远高于其他个人使用的主機系统。因此,对Linux操作系统进行渗透测试是有必要的,所以本文重点研究Linux系统的安全漏洞,并通过两个安全漏洞,对Linux系统进行模拟攻击,进一步说明了安全漏洞的危害性。
2 渗透测试介绍
2.1 渗透测试的概念
渗透测试是一种合法且授权定位计算机系统,并对其成功实施漏洞攻击的方法,其目的是为了使这些受测系统更加安全。渗透测试的过程主要包括漏洞探测和提供概念证明(Proof of Concept,POC)攻击,来证明操作系统确实存在漏洞。在完成一个完整的渗透测试后,需要列出系统中存在的漏洞以及相应的修补意见或方案。总之,渗透测试用于加强计算机和网络系统的安全性,使其在之后的使用中免遭攻击。
2.2 渗透测试的必要性
任何形式的攻防对抗,最重要的一条就是掌握主动权。借助渗透测试,可以先于黑客发现系统安全隐患,提前部署好安全防御措施,保证系统的每个环节在未来都能经得起黑客挑战,进一步巩固客户对企业及平台的信赖。
通过渗透测试,企业用户可以以攻击者的角度来了解系统是否存在安全风险和漏洞隐患,尤其是在进行一些安全项目之前的渗透测试,可以更深刻地认识到信息系统的安全性,对进一步建立安全体系有着很大的帮助。同时,可以验证经过安全保护后的系统是否真正达到预期的安全目标、遵循相关的安全策略和符合相关的安全要求。
2.3 渗透测试的流程
对于操作系统的渗透测试,大致可分为信息收集、漏洞发现以及漏洞利用三个阶段。其大致流程如图1所示。但是,在实践过程中需要进一步明细测试的流程,通过六个过程来描述渗透测试的整个流程。
(1)明确目标。确定测试目标的范围、IP、域名、内外网等,根据需求和自身的技术能力来确定能不能做,能做多少。
(2)信息搜集。正所谓知己知彼百战百胜,根据网站URL可以查出一系列关于该网站的信息。通过URL可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等一系列的信息。
(3)漏洞探索。根據以上步骤找到的信息,使用AWVS、Appscan、Burp Suite等漏洞扫描工具扫描网站可能存在的漏洞,结合漏洞在Exploit-db等漏洞提交网站寻找该漏洞的利用方法。
(4)漏洞验证。根据搜集到的漏洞信息,搭建模拟测试环境,并使用漏洞利用代码(Exploit、Exp)进行验证,成功后再应用到目标中。
(5)信息分析。整理前面搜集到的信息,为下一步实施渗透做准备。准备好检测到的漏洞的exp等,设定绕过防火墙和检测的机制,定制攻击路径。
(6)获取所需。根据前面的准备,进行攻击,获取内部信息,再进一步渗透,最后清除痕迹等,然后整理信息,形成相应的渗透测试报告。
3 模拟渗透测试
3.1 测试环境准备
3.2 渗透工具介绍
Metasploit:一款开源的计算机安全漏洞检测工具,可以帮助安全和IT专业人士检测系统的安全性。Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。
Nmap:是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。网络管理员常用该软件对系统进行网络安全的评估。
3.3 渗透测试步骤
测试步骤分为三个过程,依次为测试环境漏洞信息的搜集、利用UnrealIRCd后门漏洞攻击漏洞主机、利用Distcc后门漏洞攻击Metasploitable2漏洞主机。
3.3.1 网络环境漏洞信息的搜集
(1)使用如下命令查看Metasploitable2漏洞主机的登录用户及网络配置信息。
Whoami:查看当前登录用户,如图3所示。
Ifconfig:查看网络配置信息,如图4所示。
可以得到漏洞主机登录用户名为msfadmin,IP为192.168.154.132。
(2)查看攻击者主机登录用户及网络配置信息,可以得到攻击主机登录用户为root,IP为192.168.154.129,如图5所示。
(3)利用Nmap扫描漏洞主机开放的端口,根据开放的端口信息判断漏洞主机存在的安全问题。利用口令nmap –sT –v 192.168.154.132 扫描漏洞主机的IP地址,得到漏洞主机开放的端口信息,其中,-sT表示TCP端口扫描(完整三次握手),-v表示显示详细详细。扫描结果(部分截图)如图6和图7所示。
3.3.2 利用UnrealIRCd后门漏洞攻击漏洞主机
UnrealIRCd后门漏洞(安全组织索引CVE:CVE-2010-2075 BID:BID-40820 OSVDB:OSVDB-65445):在2009年11月到2010年6月间分布于某些镜面站点的UnrealIRCd,在DEBUG3_DOLOG_SYSTEM宏中包含外部引入的恶意代码,远程攻击者能够执行任意的代码。影响系统/软件:Unreal UnrealIRCd 3.2.8.1。
攻击分七个步骤。
(1)分析可以利用的漏洞
根据Nmap的扫描结果发现,漏洞主机开启了大量的端口,意味着漏洞主机对外提供了大量的服务,增加了被攻击的风险,其中6667号端口开放的是IRC服务,可以利用UnrealIRCD IRC软件的漏洞来攻击漏洞主机。
(2)开启Msfconsole
运行命令msfconsole,开启msf,如图8所示。
(3)搜索漏洞利用Exp
运行命令search unrealircd,搜索关于UnrealIRCD漏洞的利用信息,如图9所示。
(4)运行漏洞利用Exp
运行命令use exploit/unix/irc/unreal_ircd_3281_backdoor,开始运行Exp。使用命令show option,查看该exploit的参数设置信息,发现Exp前可以配置漏洞主机的IP和端口,如图10所示。
(5)设置漏洞主机IP
运行命令set RHOST 192.168.154.132,设置漏洞主机的IP,如图11所示。
(6)执行Exp
运行命令exploit,提示:“Command shell session 1 opened (192.168. 154.129:4444->192.168.154.132:36418) at 2019 -03-08 18:44:32 +0800”时,说明攻击成功,并成功建立了Shell会话,如图12所示。
(7)验证Shell权限
运行Linux系统命令whoami,回显Root说明当前Shell的权限是Root,可进行任意的操作而不受权限控制,如图13所示。
3.3.3 利用Distcc后门漏洞攻击Metasploitable2漏洞主机
Distcc后门漏洞(安全组织索引 CVE:CVE-2004-2687 BID:无 OSVDB:OSVDB-13378):Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不合格,很容易被滥用执行命令,该漏洞是XCode 1.5 版本及其他版本的distcc 2.X 版本配置,对服务器端口的訪问不限制。影响系统/软件:distcc 2.X。
具体步骤如下。
(1)在Kali中执行命令msfconsole,启动metasploit。运行命令use exploit/unix/misc/distcc_exec,选择漏洞利用Exp,如图14所示。
(2)运行命令set RHOST 192.168.154.132,设置漏洞主机IP。运行命令Exploit,开始攻击,出现“Command shell session 1 opened (192.168. 154.129:4444 -> 192.168.154.132:54291) at 2019 -03-08 18:48:14 +0800”时,说明Shell建立成功,如图15所示。
(3)运行命令whoami,验证创立的Shell的权限,结果如图16所示。
3.4 渗透测试总结
在本次渗透测试中,利用了Linux操作系统的两个安全漏洞,对测试环境进行了一系列的模拟攻击,最终获得了漏洞主机的控制权限,进一步验证了操作系统安全漏洞的危害性。因此,在使用操作系统的过程中,管理员要定期的对操作系统进行渗透测试,以便及时发现和修补系统漏洞,确保操作系统的安全性。
4 结束语
对系统进行渗透测试,就可以完全模拟攻击者可能使用的漏洞检测与攻击技术,对目标网络系统的安全进行深入检测,探寻出网络系统中最脆弱的安全环节,从而让管理人员能够直观地知道网络所面临的问题。防范计算机安全漏洞是一个长期并且持续的过程,其措施也要随着时代的发展和技术的更新不断地加强。系统管理员要根据网络安全漏洞的类型和特点有针对性地制定防范措施,才能有效地填补漏洞,保证系统的安全性。
参考文献
[1] 中国网络空间研究院,中国网络空间安全协会.网络安全实验培训教程[M].北京:人民邮电出版社,2017.
[2] The Ministry of Education of the Peoples Republic of China.Notice concerning developing cyberspace security first level discipline doctorate authorization[Z].2015.
[3] 谭彬,杨明,梁业裕,宁建创.Web安全漏洞研究和防范[J].通信技术,2017,5(4) :795-802.
[4] 徐光.基于Kali Linux的Web渗透测试研究[J].信息安全与技术,2015(3) :56-58.
[5] Babincev I,Vuletic D.Web Application Security Analysis Using the Kali Linux Operating System.Military Technical Courier[J].2016.