雷惊鹏,沙有闯
(安徽国防科技职业学院,安徽 六安 237011)
利用Kali Linux开展渗透测试
雷惊鹏,沙有闯
(安徽国防科技职业学院,安徽 六安 237011)
随着网络技术的快速发展,特别是近年来各种Web技术的普遍升级,信息网络所面临的威胁日趋多样化。对于网络管理者而言,渗透测试(Penetration Testing)已成为保障网络安全的重要手段和方法。Kali Linux系统被设计成用于数字取证和渗透测试的专用平台。本文参考业界正在完善的PTES标准[1],结合Kali Linux系统本身的功能与特色,分析了渗透测试的思路与步骤。
网络安全;渗透测试;方法;Kali Linux
渗透测试(通常可简称渗透),是用于核心安全评估和审计的一套流程,是一种合法且授权定位计算机系统,并对其成功实施漏洞攻击的方法[2],根据渗透方法可以将测试分为黑盒测试、白盒测试和隐秘测试[3],白盒测试帮助管理员节省时间,被测试对象的基本情况对于测试人员而言是已知的,因此无需再去完成信息搜集工作,黑盒测试相对要求更高的技术能力,需要更长的时间来完成,无论是何种类型的测试,根本目的都是为了让网络的管理者了解到薄弱环节所在,进而采取相应处理措施使系统和网络更加安全。
对于渗透测试工作具有指导意义的PTES标准目前处于不断完善和更新中,该标准认为完成渗透测试需要开展以下工作:前期交互、情报收集、威胁、建模、漏洞分析、渗透攻击、后渗透攻击和生成报告[4],这七个阶段的工作说明了渗透测试的完整流程,但是实际上测试人员可以根据自身的经验、网络环境等主客观条件,合理采取其中的关键步骤完成工作,本文基于PTES标准,通过Kali Linux系统平台说明渗透测试的思路与步骤,为网络管理者提供参考。
根据PTES标准,渗透过程通常需要执行信息搜集、扫描、漏洞发现和使用、维持访问、形成测试报告等诸多繁琐的工作,每个阶段需要使用不同的软件工具,一个集中的渗透平台对测试工作是否顺利进行至关重要,用户可以选择多种平台,例如NodeZero、Matriux、Anonymous-OS、BackTrack等,这些平台基本上都基于Linux内核进行开发,因此管理者如果熟知Linux的基本操作,对于测试工作也有极大帮助。
Offensive Security开发团队通过重写BackTrack实现了新的、功能强大的Kali Linux,渗透所需的诸多软件在Kali Linux平台里都进行了预装,例如用于数据包分析的Wireshark软件、用于端口扫描的nmaP软件、针对无线局域网的Aircrack-ng软件等,此外,MetasPloit Framework也能有效支持Kali Linux,测试人员可以在网站httP://www.backtrack.org.cn/thread-19394-1-1.html上下载Kali Linux系统,需要注意的是Kali Linux提供了32bit、64bit两种不同的镜像,测试者应根据情况合理选择,本文所用的是32bit版本的平台。
开展安全渗透测试,不同的测试者基于不同测试方法论的指导,所采取的步骤会存在差异,但是主要的步骤大致相同,一般会涵盖信息搜集与目标检测、漏洞扫描与利用、维持后期访问等主要阶段,测试者在熟练一些基本方法后,可以在每个阶段开展更为丰富的工作,例如清除攻击痕迹等。
2.1 信息搜集与目标检测
Kali Linux系统预置了大量的、包含渗透测试各个环节的有效工具,例如进行信息收集、漏洞分析、漏洞利用、密码攻击、无线网络攻击、权限维持等工作所必须的软件包,这些丰富的工具集,使得有些测试人员在学习和使用中比较偏重渗透软件本身的使用方法,而忽略对渗透测试流程的整体把握,例如第一阶段的工作,即对目标系统的前期检测,有些测试者可能会忽略该环节,实际上,以常见的Web网站为例,通常在一些公司的主页面都会设置有该公司的联系方式,例如电话、电子邮箱以及反应最新动态的新闻类内容等,测试者通过查看分析这些信息,能在一定程度上帮助了解目标系统,有些网站维护人员采用的是直接以QQ号码作为用户名的电邮,测试者如果搜索该QQ的相关信息,也能进一步了解关于该网站管理者的部分信息,当然这里所提供的仅仅是一个测试思路,强调的是作为测试者不应放弃关于目标系统的任何蛛丝马迹,Kali Linux平台提供了丰富的目标检测工具,可以方便地寻找与目标系统有关的信息,图1显示了Kali Linux系统提供的丰富的工具集。
图1 Kali Linux提供的渗透测试平台
图2 显示了利用信息收集工具对某咨询公司网站的检测信息,从这个检测结果看,该网站的DNS服务器是由ns3.myhostadmin.net和ns4.myhostadmin.net提供,并不归目标站点所有,在一些上规模的机构中,DNS往往在其内部进行部署,因此综合来看,本例中的DNS服务器不适合作为渗透测试点,需要从其他方面了解更多信息。
图2 利用Whois工具检测目标信息
进一步可对目标的端口信息、开放的服务信息等进行针对性的扫描,Kali Linux平台里的nmaP工具与系统内预置的MetasPloit是一对黄金搭档:nmaP可以确定目标系统上运行的一些服务信息,而且可将检测的结果导入到MetasPloit数据库供后期的溢出测试参考,如图3所示,从结果中可以看到上述咨询公司的网站上还运行了FTP服务,且允许匿名登录。
2.2 漏洞扫描与利用
因代码编写考虑不周或系统配置不当而导致计算机可能存在可以被攻击者有效利用的弱点,即漏洞的存在不可避免,一般可分为本地主机漏洞和远程主机漏洞两大类,Kali Linux中预置了一些漏洞分析工具,包括Cisco工具集、Fuzzing工具集、OPenVAS、开源评估软件以及数据库评估软件,此外在漏洞分析模块中也集成了一些扫描工具,例如上文提到的nmaP工具,在漏洞分析方面,Nessus被公认为功能强大,而且其使用较为简单,与其他一些软件不同,Kali Linux没有预置Nessus,使用时需要先下载并安装,测试者可安装和使用Linux平台所支持的Nessus软件,该软件主要通过web页面进行管理,并需要测试者制定合理的扫描策略。
图3 nmaP探测目标系统开放的服务信息
通过对目标系统的信息检测和漏洞扫描,如果能发现可被利用的漏洞,则可以进一步通过漏洞利用工具,寻求获取更高的控制权,Kali Linux预置了功能强大的MetasPloit漏洞利用框架,该框架的使用灵活多样,是漏洞利用的一款利器,进行渗透测试时可通过MSF终端或者MSF命令行模式打开,基本思路是:通过MetasPloit漏洞利用框架下的search命令,快速找到可利用的攻击模块,以Microsoft SharePoint畸形SOAP请求远程代码执行漏洞为例,图4显示了搜索到的关于该漏洞的信息。
图4 搜索攻击模块说明信息
如需要利用该漏洞进行溢出,则测试者需要在MSF控制台里继续使用use exPloit/windows/misc/ms_10_ 104_sharePoint,并通过“set”命令选择有效的攻击载荷,最终实现exPloit,攻击载荷是指渗透成功后在目标进程中植入的一段代码[5],因此在这个环节中,测试者选择合理的攻击载荷是渗透成功后的重要补充。
2.3 维持后期访问
图5显示了Kali Linux提供的一些权限维持程序,可供测试者在获取系统控制权后,为了日后的长期访问和使用,例如Tunnel工具集中包含的ncat,就是“面向21世纪的netcat”,Ncat的强大之处在于它可以针对TCP连接或UDP进行读、写操作,而且是一个比较可靠的后端工具,可以被测试人员通过其他程序或脚本进行驱动,同时,ncat具备丰富的调试和开发功能。
图5 维护访问的工具集
渗透测试通常考虑的是以入侵者的思考角度和操作方法,从单点上找到利用途径[6],验证网络或计算机系统存在安全问题,这样对提高客户的安全认识和意识很有帮助。
在经过前述主要渗透测试的操作后,一些测试者或网络的管理者会认为渗透测试的整个流程就结束了,实际上,开展渗透测试工作并不是去破坏或者攻陷某个网站或系统,而是综合利用黑盒或白盒测试的各种手段,发现系统漏洞,形成较为完整的渗透测试报告。
测试报告一般应列出测试过程的主要步骤和获取到的真实数据,以便为客户提供有力的证明材料,在撰写时通常可包含概述,主要测试过程(含工具和方法)以及原始数据。
概述部分通常是对测试工作的整体描绘,主要是为了让客户知道测试工作的意义所在,其中涉及的技术问题不宜过多,对技术方面的解释可以在报告中提供有效的网页链接供客户查看时参考,主要的测试过程应在报告中详细列出,测试工作的整个环节、使用到的工具、采取的主要做法,需要尽可能详细的列出,为了增加可读性,可以多使用图表等较为直观的界面,原始数据为报告的真实性提供良好的证明,更重要的是能对发现的漏洞起到补充说明的作用。
本文列出了利用Kali Linux系统开展渗透测试的主要思路和步骤,在每个步骤中,Kali Linux都提供了丰富的工具可以使用,这些工具因用途大小、使用难易等原因,在使用频率上会存在差别,按照渗透测试方法论的指导,初学者去学习这些测试工具本身,无疑是有益的,但是渗透测试是一个灵活多变的过程,更需要对整体进行把握,只有在实践中不断练习,技巧才会得到提高,从而为网络的安全提供更好的保障。
[1] 诸葛建伟.PTES渗透测试执行标准mindmaP中文版[EB/OL].[2011-7-28].httP://netsec.ccert.edu.cn/hacking/2011/07/28/Ptes/.
[2] 谢冬青,欧家权,黄海.基于BackTrack的渗透测试方法[J].广州大学学报(自然科学版),2013(12):63.
[3] 常艳,王冠.网络安全渗透测试研究[J].等级保护,2012(11):3.
[4] DavidKennedy,Jim O'Gorman,.MetasPloit渗透测试指南[M].诸葛建伟.译.北京:电子工业出版社,2012:2-4.
[5] 姜洋.渗透测试关键技术研究.[D].西安:西安电子科技大学,2014.
[6] 安全咖啡屋.解析安全测试与渗透测试的区别[J].计算机与网络,2012(17):38.
责任编辑:吴旭云
Carrying out Penetration Testing by Kali Linux
LEIJingPeng,SHA Youchuang
(Anhui Vocational College of Defense Technology,Liuan 237011,China)
With the raPid develoPment of network technology,esPecially the general uPgrading of various Web technologies in recent years,information network is facing increasingly diverse threats.For network managers,Penetration testing has become an imPortant method to guarantee the network security.Kali Linux system is designed to be a sPecial Platform for digital evidence collection and Penetration testing.This PaPer,drawing references from PTESStandard which is gradually being Perfected,combined with the feature and function of Kali Linux system itself,analyzes the ideas and stePs of the Penetration testing.
network security;Penetration testing;method;Kali Linux
TP316.8
A
1009-3907(2015)06-0049-04
2015-04-02
安徽省高校省级优秀青年人才基金重点项目(项目编号2013SQRL106ZD)
雷惊鹏(1982-),男,安徽潜山人,硕士,讲师,主要从事计算机网络方面的研究。