何应辉 陈中举 李俊杰
摘要:随着网络规模的快速增长,网络信息的复杂化,产生了诸多网络系统的安全问题。为了找出网络安全漏洞以及各种安全问题,保证系统的安全性,本文以渗透测试的方法为基础,从测试人员的角度出发,基于Kali Linux渗透测试平台,描述了渗透测试的过程及步骤,研究并演示了渗透测试软件工具的使用。
关键词:Kali Linux;渗透测试;Metasploit;OpenVAS;Nmap
Abstract: With the rapid growth of network scale and the complexity of network information, many security problems of network system arise. In order to find out network security vulnerabilities and various security issues, and ensure the security of the system, this paper describes the process and steps of penetration testing based on Kali Linux penetration testing platform from the perspective of testers which based on the theory of penetration testing method,and studies and demonstrates the use of penetration testing software tools.
Key words: Kali Linux; penetration testing; Metasploit; OpenVAS; Nmap
1 绪论
渗透测试的思想产生于古代戰争时期,世界各地军队进行模拟战争的游戏,20世纪60年代才确定了渗透测试的基本概念。软件系统在制定时安全方面可能并未考虑全面,导致系统存在漏洞,容易给不法分子利用漏洞进行攻击行为。结合渗透测试技术,对网络安全形态的全面评估是非常有价值的。
渗透测试可以对整个系统的硬、软件进行一次全面的侦探,能够在一定程度上保证系统的安全性。在进行渗透测试的时候能够以不同用户的角度去考虑系统,使系统变得更加安全,在一定程度上减少经济损失。
2 渗透测试概述
渗透测试是通过模拟恶意黑客的攻击,来评估计算机网络系统安全的评估方法,通过鉴识安全问题来理解当前安全状况[1]。根据安全报告进行开发、环境的重新规划部署,也是渗透测试的工作之一。渗透测试是循序渐进的过程,在不影响业务的情况下进行测试。渗透测试的环节也应该在开发周期中,根据实际应用,普遍认同的方法有:黑盒测试、白盒测试、隐秘测试[2];按操作系统进行分类有Windows渗透测试、Linux渗透测试等;还有一些其他的渗透方式,如数据库系统渗透、应用系统渗透、网络设备渗透。
渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制,对公司、政府有极大的应用价值。但是,也有一定的局限性,如时间、空间、项目、资金等限制,它会让测试无法识别出所有的漏洞。对于网络系统来说渗透测试并不提供实质性的改善,但是能够预防并减少被攻击的概率。渗透测试是一个长期的工作,当前测试虽然是处于安全状态,但是过段时间重新测试的时候可能会出现不安全的情况。换种说法,渗透测试具有非常明显的时效性,抛开时效性来谈渗透测试不是明智的做法。
3 渗透测试方法与过程
渗透测试的方法有很多,在行业内被广泛采纳的有:ISSAF(信息系统安全评估架构)、NIST800-115(信息安全测试与评估技术指南)、OWASP(开放式WEB应用安全)、PTES(渗透测试执行标准)、OSSTMM(开源安全测试方法手册)。图1展示了渗透测试的过程。
准备阶段描述了任务的目标、范围、时间限制、渗透测试中产生的法律纠纷等方面的内容。主要包括,测试周期、测试时限、渗透IP地址的划分、技术清单、法律纠纷问题等。
准备阶段完成后进入到发现阶段,该阶段的任务分为:目标发现与侦探、扫描与枚举。目标发现与侦探是测试员使用技术或非技术手段收集公开可用的信息。如DBMS的版本,OS版本,是否有公开的漏洞。扫描与枚举是测试员使用扫描工具收集端口的信息,如端口运行的服务、版本等[3]。
评估阶段与发现阶段关系非常的密切,主要分为:漏洞识别、漏洞分析。
攻击阶段需要选择与之匹配的攻击方法和执行攻击行为。该阶段主要进行漏洞利用和权限提升,如果漏洞利用成功,则可以提权。
报告阶段可与上述几个阶段并行进行,也可在攻击阶段后进行单独的总结。渗透测试报告包含风险评估、防御措施等相关内容。报告必须保证准确性与透明性。
4 渗透测试平台
Kali Linux是一款用于渗透和审计的系统,它的前身是BackTrack,基于Ubuntu发行版开发而成。
Kalin Linux的主要工具可分为:信息收集、漏洞分析、攻击工具、web工具等。信息收集包括:zenmap、nmap(诸神之眼)、maltego、ike-scan等;漏洞分析包括:nmap、golismero、nikto等;无线攻击包括:reaver、aircrack-ng、chirp等;密码攻击包括:john、cewl、crunch等;Web工具包括burpsuite、commix、woscan、owasp-zap等。
4.1 渗透测试工具介绍
1)Metasploit
Metasploit是一款开源的渗透测试框架,它提供从侦探阶段到报告总结的各种必需的功能,含有对协议的漏洞利用的代码及步骤代码等;同理服务、系统也在Metasploit中被定义。
Metasploit框架具有接口一样的可扩展性质。控制接口负责发现漏洞、攻击漏洞,提交漏洞,然后通过接口加入攻击后处理工具和报表工具[4]。Metasploit框架从扫描模块中得到有漏洞的主机信息,利用漏洞信息对系统发起攻击。这些操作可通过Metasploit图形界面管理,而它只是其中一种接口,另外还有命令行工具和一些商业工具等接口[5]。
工作步骤分为配置漏洞模块、选择漏洞代码攻击目标系统、配置有效载荷、配置编码模式、漏洞利用模块。
2)OpenVAS
OpenVAS是一款开放式漏洞评估系统,主要用來检测目标网络或主机的安全性。与X-Scan工具类似,OpenVAS系统采用了Nessus较早版本的一些开放插件[6]。
OpenVAS是一个C/S架构,由Server、Plugins、Libraries、LibNASL、客户端等组件构成。
3)Nmap
Nmap(Network Mapper)又名诸神之眼,因为它是打开渗透测试第一步的重要工具,是一款主机探测工具和端口扫描工具。
Nmap有以下功能:主机发现、端口发现、端口服务发现、操作系统、硬件信息、软件版本信息等[7]。
Nmap主要是通过命令交互的方式进行使用,对使用者有一定的技术要求。
4.2 Nmap工具使用
1)主机发现
渗透测试中的主机探测一般不单独使用,只是作为端口扫描前的准备工作。
2)端口扫描
端口扫描的目的是判断端口的一些服务信息,如该端口运行着什么软件。
4.3 Metasploit工具使用
1)MS08-067漏洞简单复现
MS08-067漏洞全称为“Windows Server服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的RPC请求,该漏洞可能会允许远程执行代码。
5 结束语
本文基于渗透测试的理论知识,介绍了Kali Linux渗透测试平台,将理论与实际情况相结合,演示了Kali Linux平台中的OpenVAS、Metasploit、Nmap等常用的渗透测试工具及其操作应用,通过Metasploit简单复现MS08-067漏洞,采用nmap演示了端口扫描和主机扫描等操作。展望未来,渗透测试是企事业单位必须进行安全检测的项目,利用渗透测试能够识别安全问题来帮助了解当前的安全状况,提前发现网络中的漏洞并进行修补,减少漏洞造成的经济损失,具有十分重要的现实意义。
参考文献:
[1] 李维峰.利用端口扫描进行终端合规性检查的一个示例[J].网络安全技术与应用,2020(8):27-28.
[2] 滕忠钢.利用 “Kali Linux” 与 “Docker” 技术进行渗透测试实验[J].信息技术与信息化,2020(2):195-197.
[3] 闫怀超.渗透测试技术在数字化堆场改造过程中的应用研究[J].自动化仪表,2020,41(6):13-16.
[4] 郑少凡,连宏浩,苏汉彬,等.基于Metasploit的渗透测试流程研究[J].信息与电脑,2020,32(2):175-176,179.
[5] 郑清安.基于Metasploit框架的web应用渗透测试研究[J].通讯世界,2018(6):281-282.
[6] 李瑞.基于OpenVAS的漏洞扫描系统设计与实现[D].西安:西安电子科技大学,2015.
[7] 严学军.关于Nmap的教学实践的探讨[J].电脑知识与技术,2019,15(36):117-118.
【通联编辑:梁书】