概述
渗透测试没有一个标准的定义,现有的已达成共识的通用说法是:渗透测试是模拟恶意黑客的攻击方法,来评估计算机网络安全系统的一种评估方法。从最初的交互和信息收集,直到最终的后渗透攻击并形成报告,渗透测试是一个渐进且逐步深入的过程,在这个过程中,渗透测试要选择不影响业务系统正常运行的攻击方法进行的测试。渗透测试的最终目的是发现和挖掘系统中存在的漏洞并提醒网络所有者,做到防患于未然。本系列将介绍渗透测试的完整的流程。
一、前期交互阶段(Pre- Engagement Interaction)
前期交互阶段主要工作为渗透测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节等。
二、信息收集(情报搜集)阶段
信息收集是渗透测试中最重要的环节,信息收集的充分程度很大程度上决定了渗透测试的成败,若遗漏关键的情报信息,后面的阶段可能一无所获。而根据渗透测试的对象的不同,我们将对象为目标系统系统和软件这两类进行介绍。
-
针对操作系统/服务器的信息收集
该类对象的主要特征是网络体系较为完备,可通过不同的网络通信手段进行信息收集,根据目标信息获取方式的不同,可以分为主动信息收集和被动信息收集。 -
- 主动信息收集
主动信息收集的方法即为与目标主机进行直接交互,如通过IP地址进行ping,nmap等操作获取目标主机信息。该方法的潜在危险在于目标主机可能会记录访问者的IP地址以及活动,对于攻击者来说容易暴露自身信息。但该方法对于信息的挖掘程度较为完整。具体的技术手段包括使用nmap发现主机、端口扫描、指纹探测Maltego、Web指纹探测、Web敏感目录扫描等
- 主动信息收集
-
- 被动信息收集
被动信息收集主要通过网上获取公开信息,所谓被动即不和目标主机进行直接交互,其具体做法有搜索引擎查询,IP查询,whois信息收集,DNS信息收集,旁站查询等。其优点在于不与主机进行交互,减小被目标主机跟踪的风险
- 被动信息收集
-
针对操作系统/服务器的信息收集
若将对象换成软件,则信息收集阶段可以认为是对于软件的漏洞挖掘的过程,而目标系统或服务器出现的漏洞,归根结底是由于系统中的软件出现漏洞导致攻击者利用之后对整个系统造成了不可逆转的伤害。故软件的漏洞挖掘或安全检测的很重要。根据软件运行状态的不同,可分为静态,动态,动静结合等技术手段进行分类。 -
- 静态检测
静态检测值得是针对未处于运行状态的软件进行安全分析,主要针对的是软件的源码和可执行文件。静态安全检测的主要优势在于不需要构建代码运行环境,其分析效率高,资源消耗低,但静态检测的误报率较高。目前常用的静态检测方法包括词法分析、数据流分析、污点传播分析、符号执行、模型检验、定理证明等。
- 静态检测
-
- 动态挖掘
与静态相对的则是软件动态安全检测技术,是针对运行中的软件程序,其思路是通过构造非正常的输入来检验软件运行时是否会出现非正常输出并检测软件运行中的内部状态信息来检测软件的缺陷,故也可称为漏洞的动态挖掘过程。动态检测的优点在于检测率高,误报率低。常用的动态检测的方法包括模糊测试、智能模糊测试、动态污点分析等等
- 动态挖掘
-
- 动静结合检测
静态分析和动态分析都有其特有的优点或缺点,故可以将二者联合起来,扬长避短,能够达到很好的检测效果。目前该类方法依据静态分析额对象的不同可分为两种:一种是针对源代码动静结合分析,其思路是先对源代码进行静态分析,再通过潜在漏洞进行动态验证;第二种则是对于可执行文件的动静结合的检测方法,其思路是先对可执行文件进行反汇编,通过汇编代码或者是中间语言进行静态分析后取得信息指导动态漏洞分析。
- 动静结合检测
总体而言,无论是对于计算机系统还是对于软件的信息收集,信息收集的总体思路是对现有的对象进行分析,依据现有对象的网络通信协议,寻找该对象在使用某种通信协议的时候所存在的漏洞,后续的攻击过程则可由此类漏洞进行展开
最后
以上就是可靠诺言为你收集整理的渗透测试流程(一)前期交互与信息收集阶段的全部内容,希望文章能够帮你解决渗透测试流程(一)前期交互与信息收集阶段所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复