登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

内网渗透测试方法研究毕业论文

 2020-02-19 18:14:59  

摘 要

随着网络技术的不断发展,网络在各个领域都发挥着越来越重要的作用,网络促进了各个领域中信息的共享与传播,使人们足不出户就可以获得所需的信息。网络在促进各种信息的传播和共享的同时,随之而来的还有一系列的安全问题。由于网络环境十分复杂,信息量众多,不仅包含人们所需的信息,同时也存在着大量的垃圾信息和病毒,这些信息的存在对信息的共享和传播造成了严重的危害。同时由网络引发的安全问题也越来越严重,因此受到越来越多研究人员、组织的重视,渗透测试作为一种网络安全评估的手段,在保障信息安全方面起着至关重要的作用。

本文首先分析了渗透测试产生的原因、对于现阶段网络环境的重要性,然后分别介绍了渗透测试的定义、一种安全界公认的渗透测试流程,渗透测试过程中的相关技术和原理,分析了几种基于渗透攻击图生成攻击路径的渗透方案的具体实现算法,简要介绍了几种实现自动渗透测试的方案。之后对内网渗透测试过程中使用到的工具和平台以及内网渗透测试的基本流程,各个流程中可能用到的方法及原理进行了详细介绍。

关键词:渗透测试;信息安全

Abstract

With the continuous development of network technology, the network plays an increasingly important role in various fields. The network promotes the sharing and dissemination of information in various fields, so that people can obtain the required information without leaving the home, but the network While spreading all kinds of information to humans, it also brings a series of security issues. Due to the complexity of the network environment and the large amount of information, not only the information required by people, but also a large amount of spam and viruses exist. The existence of such information has caused serious harm to the sharing and dissemination of information. At the same time, the security problems caused by the network are becoming more and more serious. Therefore, it is valued by more and more researchers and organizations. As a means of network security assessment, penetration testing plays a vital role in ensuring information security.

This paper first introduces the reasons for the penetration test, the importance of the current network environment, and then introduces the definition of penetration test, a recognized penetration test process in the security industry, related technologies and principles in the penetration test process, and analyzes several The specific implementation algorithm of the infiltration scheme based on the penetration attack graph to generate the attack path, briefly introduces several implementation schemes of the automatic penetration test. Afterwards, the tools and platforms used in the intranet penetration testing process and the basic processes of the intranet penetration testing, and the methods and principles that may be used in each process are described in detail.

Keywords: Penetratiton Testing; Information Security

目录

摘 要 I

Abstract II

第一章 绪论 4

第二章 渗透测试 5

2.1 渗透测试分类 5

2.2 渗透测试流程 6

2.3 渗透测试相关原理 7

2.3.1 漏洞类型 7

2.3.2 拒绝服务攻击 7

2.4 渗透测试相关技术 8

2.2.1 基于攻击图的渗透测试 8

2.2.2 自动化渗透测试 11

第三章 内网渗透及基本流程 12

3.1 常用工具及平台 12

3.2 信息收集 12

3.3 权限提升 13

3.3.1 Linux系统提权 13

3.3.2 Windows系统提权 14

3.4 横向渗透 16

3.4.1 数据类 16

3.4.2 后门类 17

3.4.3 攻击类 17

3.4.4 域渗透 18

3.5 清理日志 20

第四章 总结与展望 21

4.1 总结 21

4.2 展望 21

绪论

随着网络和计算机技术的不断发展,网络被广泛应用于社会生活中的各个领域,网络改变了人们的生活、生产方式,促进了信息的交流,使人们足不出户就可以获得所需的知识和海量的信息。网络在促进各种信息的传播和共享的同时,随之而来的还有一系列的安全问题。网络环境十分复杂,信息量众多,不仅包含人们所需的信息,同时也存在着大量的垃圾信息和病毒,这些信息的存在对信息的共享和传播造成了严重的危害。另外,许多的系统、应用程序由于开发人员未遵循相关的规范、标准、应用程序的逻辑问题以及一些未知的原因等原因造成的一系列系统缺陷,导致这些系统十分脆弱,很容易遭到恶意者的攻击,除此之外,造成这些状况的原因还有一些管理员由于疏忽、安全意识淡薄,加之有些系统、应用程序的更新、补丁更新操作较为复杂而忽略了对系统、应用程序的更新;网络的发展使得各种工具的获取更加容易,攻击工具的操作更加自动化,这些原因导致了许多系统、应用程序处于危险状态,很容易被攻击者入侵。对于一些比较大型的组织、机构而言,系统中往往存放了大量的信息,恶意者的渗透攻击常常会给这些组织、机构造成重大的损失。

渗透测试作为一种评估网络安全状态的有效方法,主要是通过模拟攻击者对目标系统的缺陷、漏洞进行分析并攻击来发现系统中存在的缺陷、漏洞等问题,并针对这些问题提出合理的修复建议。渗透测试作为一种有效的网络安全评估方法,受到了许多从事信息安全研究人员的广泛关注。国内外各个组织、团队、个人对渗透测试进行了广泛的研究,制定了一系列的标准用以规范渗透测试的流程、方法等,但由于渗透测试所涉及的内容很多,渗透工具的多样化以及渗透测试工作者的水平参差不齐,到目前为止,渗透测试工作的进行还主要依赖于各种渗透测试工具以及渗透测试工作者丰富的经验。

由于网络和计算机技术的不断发展,不断有新标准、新技术的产生,导致不断有新的漏洞、缺陷产生,加之渗透测试人员的经验不一,因此一次渗透测试根本不可能消除计算机系统和网络环境中的所有漏洞。缺陷。为了保证计算机系统和网络环境的安全,需要定期进行专业的渗透测试,除此之外,提升计算机系统和网络环境中用户的安全意识也同样很重要。

渗透测试

到目前为止还没有一个标准说法用来定义渗透测试,一些国外的安全组织普遍认同的说法是:渗透测试是通过模拟恶意黑客的攻击方法来评估计算机网络系统安全的一种评估方法[1],渗透测试的过程是一个挖掘和分析系统漏洞和技术缺陷等问题的过程,在这个过程中,渗透测试者可以从任何一个能够主动利用漏洞的位置来对系统进行渗透测试。

渗透测试分类

渗透测试方法按照不同的标准分类,方法也有所不同。按照测试方法进行分类,主要可以分为以下三类测试方法:

黑盒测试:渗透测试者在对被测系统和网络环境完全不了解的情况下,使用相关的渗透测试工具进行对目标系统和网络环境进行测试,从而发现目标系统和网络环境中存在的漏洞、缺陷等。优点:黑盒测试的过程更类似于网络攻击者的对系统的攻击过程。缺点:对渗透测试者的能力和经验要求较高,且耗费的时间也相对较多。

白盒测试:与白盒测试相反,渗透测试者对渗透测试环境基本了解的情况下,用相关的渗透测试工具进行对目标系统和网络环境进行测试,从而发现目标系统和网络环境中存在的漏洞、缺陷等。优点:由于网络和系统环境透明,能够在渗透测试过程中发现更多的问题,更能起到对系统和网络安全的防护作用,且测试所耗费的时间相对较短,对渗透测试者的能力和经验要求相对较低。缺点:由于提前对系统有较多的了解,对于系统中部分功能无法进行有效地测试,如系统中的一些应急响应程序。

灰盒测试:这种测试方法是将黑盒测试和白盒测试的方法进行结合,这种测试方法不仅能结合前两种测试方法的优点,同时弥补了两种测试方法的不足之处,能够更好地完成渗透测试的目标。

按照测试网络环境的不同,可以分为内网测试和外网测试。

内网测试:渗透测试者处于被测目标的内网环境中,使用相关的渗透测试工具进行对目标系统和网络环境进行测试,从而发现目标系统和网络环境中存在的漏洞、缺陷等。优点:处于内网环境中可以避开防火墙等各种防护措施的阻碍,能够更容易地进行渗透测试,测试周期短,能发现更多的漏洞、缺陷,对渗透测试者的能力和经验要求相对较低。缺点:很难发现系统和网络环境中防火墙等各种防护措施的漏洞、缺陷。

外网测试:渗透测试者处于被测目标的外部网络环境中,使用相关的渗透测试工具进行对目标系统和网络环境进行测试,从而发现目标系统和网络环境中存在的漏洞、缺陷等。优点:处于外部网络环境更类似于网络攻击者的对系统的攻击过程,能发现一些内网环境中发现不了的问题,如系统和网络环境中防火墙等各种防护措施的漏洞、缺陷。缺点:测试周期长,能发现更多的漏洞、缺陷,对渗透测试者的能力和经验要求相对较高。

按照渗透测试目标分类,主要可以分为对网络设备、操作系统、应用系统、数据库系统的渗透测试。

渗透测试流程

目前,得到安全业界普遍认同的渗透测试执行标准是PTES渗透测试执行标准[13],,主要包括以下七个阶段:

(1)前期交互阶段:这一阶段的主要任务是通过与客户进行详细沟通,了解客户的具体需求,通过分析客户的需求,确定渗透测试的目标、范围以及其他一些细节内容,结合这些信息,完成对渗透测试过程所要采用的策略的制定。

(2)情报搜集阶段:这一阶段渗透测试者的主要任务是通过尽可能多的途径来收集测试目标中尽可能多的信息包括网络结构信息、系统的配置信息及文件信息、用户信息等。通常信息收集的途径有:借助各种渗透测试工具如Nmap、Metasploit收集端口等的信息,使用社会工程学进行信息收集。情报搜集是渗透测试过程中比较重要的一步,需要渗透测试者有较多的经验,一般来说,收集的信息越充分,渗透测试的成功几率就越大。

(3)威胁建模阶段:这一阶段的主要任务是根据上一阶段中收集到的信息进行威胁建模,渗透测试者根据之前收集到的信息进行全面地分析,确定出最可行的攻击路径。

(4)漏洞分析阶段:这一阶段的主要任务是渗透测试者通过前几个阶段得到的信息进行分析,挖掘并分析渗透目标中存在的漏洞,找出渗透测试的突破点。为下一阶段的实施做准备。

(5)漏洞攻击阶段:这一阶段的主要任务是通过上一阶段中的分析结果,借助各种渗透测试工具进行漏洞攻击,从而获得系统的访问控制权。

(6)后渗透攻击阶段:这一阶段的主要任务是。在获得系统的访问控制权的基础上,进行进一步的渗透测试,从而发掘出系统中存在的更多问题,相比于漏洞攻击阶段,这一阶段情况更为复杂,对测试者的经验、能力有着更高的要求。

(7)报告阶段:这一阶段中,渗透测试者根据渗透过程生成一份渗透测试报告,这份报告主要包含渗透过程中发现的问题、这些问题可能造成的影响,以及针对问题的解决方案。渗透报告应该尽可能的严谨,能将所有渗透测试过程表达清楚;尽可能的简单明了,使其能被客户所理解。

渗透测试相关原理

漏洞类型

根据有关组织的统计表明,在已知的众多漏洞中,注入漏洞和XSS漏洞最为常见[6]

(1)SQL注入:由于开发者对于用户输入数据没有进行合法性判断,导致攻击者可以通过将各种SQL语句嵌入输入的内容中来实现对数据库恶意的增删改查。SQL注入是代码注入方法的其中一种,由数据驱动的应用程序很容易受到此种类型的攻击。使用SQL注入攻击,攻击者可以读取敏感数据,修改数据,对数据库执行管理操作,恢复DBMS文件系统上存在的文件内容等。

(2)XSS:利用跨站脚本漏洞,攻击者可以将客户端脚本注入到其他用户查看的网页中,从而进行窃取身份和机密数据,绕过网站限制,会话劫持,发起恶意软件攻击,网站破坏和拒绝服务攻击等[7]。XSS主要可以分为持久性的XSS和非持久性的XSS。主要区别在于持久性的XSS的恶意脚本会存放在服务器中,而非持久性的XSS的恶意脚本只存在于本地用户的计算机中,不会被上传到服务器中。

拒绝服务攻击

拒绝服务攻击是一种较为常见的攻击手段,通过野蛮的手段耗尽服务器系统的资源从而使其瘫痪不能正常运行[4],受到该攻击的服务器将无法处理正常的服务请求,常见拒绝服务攻击有SYN FLOOD、ACK FLOOD,UDP FLOOD、CC攻击、反射DDOS。

(1)SYN FLOOD攻击:这种攻击方式主要是利用了TCP协议的缺陷,使用TCP协议进行通信时,首先要通过“三次握手”来建立连接,第一次握手是将带有SYN标志位的TCP报文发送给服务器来请求连接,攻击者正是利用了这一漏洞,通过伪造大量的这种TCP报文来请求连接,使目标服务器资源耗尽,造成服务器瘫痪或死机。

(2)ACK FLOOD攻击:这种攻击方式同样是利用了TCP协议的缺陷,在建立连接的第二个阶段,请求方会发送一个ACK包给目标服务器,目标服务器会将发来的ACK包与TCP连接表中的通过发送大量伪造的ACK包给目标主机,目标主机每收到一个带信息进行比较来确定是否与此发送者建立连接,然后决定是否继续进行连接的过程,这个过程的完成需要耗费一定的CPU计算资源,如果目标服务器同时收到大量的数据包,检查大量的数据包将会耗尽目标服务器的资源,造成服务器瘫痪或死机。

(3)UDP FLOOD攻击:这种攻击方式是利用UDP协议无连接的特点来进行攻击的,攻击者通过同时发送出很高的流量给目标服务器,过多的流量同时涌入将会耗尽目标服务器的资源,造成服务器瘫痪或死机。

(4)CC攻击:当用户进行一些耗费服务器资源的操作如发送与数据库操作相关的请求时,服务器通常会耗费一定的资源来完成相应的请求,这就导致攻击者可以通过模拟多个用户,同时向目标服务器发送相关请求,制造出大量的服务器耗时操作,因此这些请求将会耗尽目标服务器的资源,造成服务器瘫痪或死机。

渗透测试相关技术

渗透测试作为一种评估网络系统安全状态的手段,获得了许多研究人员的关注,渗透测试的过程不仅需要使用到各种渗透工具,还要求渗透测试人员或团队本身具有较多渗透测试相关的经验和知识储备,对于渗透测试人员的能力和水平有着很高的要求。许多致力于研究渗透测试的学者,从攻击防范到主动渗透,提出了一些更加简单、更加实用、更加自动化的渗透测试方案以及对于渗透的防范技术和方法。

基于攻击图的渗透测试

渗透攻击图是渗透测试者为了达到渗透测试目的对目标计算机网络系统进行模拟测试攻击预案的集合[3],攻击图中每个节点表示一种攻击状态,有向边表示一个节点状态向另一个节点状态转换的关系[4]。渗透测试者根据相关的算法遍历渗透攻击图,从而生成最优攻击路径,根据最优攻击路径进行渗透测试,在渗透攻击图的生成、遍历等方面,许多研究者围绕攻击图生成攻击路径的方法提出了许多算法来进行优化,从而减少渗透测试者的工作量,降低渗透测试对人员的依赖程度。

(1)毛忠亮提出一种根据攻击图生成攻击路径的方法是通过计算图中任意两个节点之间可达的概率和可达的开销,确定最优的攻击路径[4]。该算法的实现思路是将目标网络抽象为单个主机层次和整个网络层次,对于主机层次,将源主机和目标主机分别对应为两个节点S和T,构造与或树,计算从S节点到T节点的开销和成功概率,根据比较结果选出开销较低的路径或者成功概率较大的路径。对于整个网络层次,根据攻击的成功概率、开销以及攻击可获得的收益构建一个直通图,图中的节点V表示攻击可获得的收益,图中的边E表示攻击成功的概率和开销,这些值的计算过程与主机层次的计算过程相同。根据Floyd算法或者Dijkstra算法来找到最优攻击路径。Floyd算法的实现如图3.1所示。其中M表示网络中机器的数量,Prob(i,j)表示节点i到节点j的成功概率,C(i,j)表示节点i到节点j的开销,其中两个节点之间不可达的成功概率为零,开销为无穷。矩阵P[i,j]用于存放任意两个节点之间的成功概率,矩阵C[i,j]用于存放两个节点之间的开销。

Dijkstra算法的实现如图3.2所示。其中数组C[v]表示一个节点到节点V的开销,数组P[v]表示一个节点到节点V的成功概率。

图3.1 Floyd算法生成最优攻击路径

您需要先支付 50元 才能查看全部内容!立即支付

微信号:bysjorg

Copyright © 2010-2022 毕业论文网 站点地图