渗透测试流程详细讲解
一、渗透测试基本概念
1. 什么是渗透测试
渗透测试(Penetration Testing)是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析。该分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件地主动利用安全漏洞,以验证防御机制的有效性。
2. 渗透测试的评估对象
任何可能被利用的系统缺陷或问题均属于评估范围,包括但不限于:
- 技术缺陷:如软件代码漏洞、配置错误等。
- 管理漏洞:如权限分配不当、策略缺失等。
- 业务流程缺陷:如逻辑绕过、业务规则被滥用等。
- 人员意识不足:如社会工程学攻击风险、弱口令习惯等。
3. 渗透测试是一种评估办法
合法合规是渗透测试的前提:
- 授权:必须得到信息系统运营方的正式书面授权;在特定情况下需得到监管机构的授权。
- 避免影响业务:选择测试方法中避免使用具备破坏性的测试方法;选择非业务高峰时段进行测试;在与生产系统相同的开发、测试等环境中进行预演。
- 考虑风险规避:制定风险处理计划;确保有完整的备份及恢复方案。
4. 渗透测试的特点
- 测试:一切在控制之下,不会对系统造成实质性危害。
- 模拟攻击:从攻击者的角度测试安全;像'坏人'一样思考问题,寻找常规检查忽略的路径。
- 渗透:测试方式多样灵活,细小的缺陷都可能被发现并利用;想象一只蚂蚁怎么进入你家里的,防护严密的屋子也很难阻拦一只蚂蚁的进入。
5. 渗透测试的优点与不足
优势:
- 一般在真实的生产环境或完全模拟真实生产环境上进行测试,因此发现的问题都是真实的。
- 从攻击者角度进行测试,发现问题可能不被重视甚至不认为是问题,但对于攻击者却很有价值。
不足:
- 测试只能达到有限的测试点,覆盖率较低,无法保证 100% 无漏洞。
- 对测试人员能力有较高要求,技术、知识和经验至关重要。
- 不同能力测试人员测试的效果差异巨大,结果具有主观性。
6. 渗透测试分类
按测试方式分为:
- 黑盒测试:测试人员没有提供关于他将要测试的应用程序的许多信息,测试人员有责任收集有关目标网络、系统或应用程序的信息。模拟外部黑客攻击。
- 白盒测试:测试人员将获得有关网络、系统或应用程序的完整信息以及源代码、操作系统详细信息和其他所需信息。模拟内部来源的攻击,通常用于代码审计阶段。
- 灰盒测试:测试人员将具有应用程序或系统的部分知识。模拟外部黑客的攻击,但黑客已经非法访问了组织的网络基础设施文档。
按测试位置分为:
- 外网测试:针对暴露在公网上的资产。
- 内网测试:针对已获取初始访问权限后的内部网络横向移动测试。
其中选择的渗透测试类型取决于公司和组织的用途和范围,他们是否想要模拟员工、网络管理员或外部来源的攻击。
二、渗透测试的执行标准(PTES)
PTES(Penetration Testing Execution Standard)渗透测试执行标准是安全业界在渗透测试技术领域中正开发的一个新标准,目标是在对渗透测试进行重新定义。新标准的核心理念是通过建立起进行渗透测试所要求的基本准则基线,来定义一次真正的渗透测试过程,并得到安全业界的广泛认同。
渗透测试的执行标准流程是指在进行渗透测试时遵循的一系列步骤和规范,以保证渗透测试的有效性和合法性。一个标准的渗透测试流程包括以下七个阶段:
- 前期交互阶段(Pre-engagement Interactions):与客户沟通,确定渗透测试的目标、范围、时间、方法和报告格式等。明确法律边界和责任划分。


