0003 渗透测试标准

0003 渗透测试标准
渗透测试标准(PTES:Penetration Testing Executjion Standard)是对渗透测试的重新定义,通过定义一次完整的渗透测试过程的标准,来实现一次真正意义上的渗透测试。

渗透测试的标准 High Level Organization of the Standard (高标准组织标准)的官方内容介绍如下:渗透测试标准官网

The penetration testing execution standard consists of seven (7) main sections. These cover everything related to a penetration test - from the initial communication and reasoning behind a pentest, through the intelligence gathering and threat modeling phases where testers are working behind the scenes in order to get a better understanding of the tested organization, through vulnerability research, exploitation and post exploitation, where the technical security expertise of the testers come to play and combine with the business understanding of the engagement, and finally to the reporting, which captures the entire process, in a manner that makes sense to the customer and provides the most value to it.

渗透测试标准由7个主要部分组成。它们包含渗透测试从开始信息收集和渗透测试后的推论相关的一切标准,测试人员在幕后工作,通过情报收集和威胁建模阶段,以便更好地了解被测试的组织,在某种意义上,这对客户来说是有意义的,并且为它提供了最大的价值。

This version can be considered a v1.0 as the core elements of the standard are solidified, and have been “road tested” for over a year through the industry. A v2.0 is in the works soon, and will provide more granular work in terms of “levels” - as in intensity levels at which each of the elements of a penetration test can be performed at. As no pentest is like another, and testing will range from the more mundane web application or network test, to a full-on red team engagement, said levels will enable an organization to define how much sophistication they expect their adversary to exhibit, and enable the tester to step up the intensity on those areas where the organization needs them the most. Some of the initial work on “levels” can be seen in the intelligence gathering section.

这个版本可以被认为是v1.0,因为标准的核心元素已经固化,并且已经经过了一年多的“道路测试”。v2.0很快就会投入使用,并将在“级别”方面提供更细粒度的工作——就像在强度级别上,可以在每个元素的渗透测试中执行。没有一种渗透测试像另一种,而且测试工作从更为普通的 web 应用或者网络测试到一个全面的红色团队参与,谈及标准将允许一个组织去定义他们期望他们的对手展示出多少复杂的东西以及允许测试人员能够在组织最需要它们的领域提高强度。在情报收集部分可以看到一些关于“级别”的初步工作。

Following are the main sections defined by the standard as the basis for penetration testing execution:

以下是标准的主要部分,作为渗透测试执行的基础:

1. 前期交互阶段
前期交互通常是指与客户的组织进行讨论,来确定渗透测试的目标和范围。

1.1. 确定范围
这里面涉及如何确定范围,都是需要和客户组织决定的。确定范围的一般步骤有时间估计、问答交谈、范围勘定、确定 IP 和域名范围、处理第三方资源、定义可接受的社会工程学方法、拒绝服务测试、确定支付细节、Delphi Scoping? 其中时间估计包括预计整体项目的时间周期,确定以小时计的额外技术支持;问答交谈包括对业务管理部门的问答交谈,对 IT 支持的问答交流,与普通雇员的问答交流;范围勘定包括确定项目起止时间,项目授权信件,进入目标规划环节;确定 IP 和域名范围主要是验证范围是否有效;处理第三方资源包括云服务器,ISP,网站宿主,服务器所在的国家,MSSP等。

1.2. 目标规划
目标规划要做到确定首要目标和额外目标。在这里徐娅定义好目标企业的安全成熟度以及渗透测试的需求分析。

1.3. 测试术语和定义
一个完整的渗透测试,团队应该有一套完整的渗透测试术语词汇表,方便合作的时候交流。

1.4. 建立通信渠道
通信渠道的建立是为了方便渗透测试团队之间的交流,包括要有紧急的联络方式,应急响应的流程,进展报告的周期。要确认一个接口联络人,通信通道的加密方式确定,与外部第三方的联络方式等。

1.5. 前期交互规则确定
时间、地点确认,渗透测试的控制基线,敏感信息的披露,收集的证据的处理,进展报告会(计划、进展、存在的问题等),每天可进行渗透测试的时间,要避开什么范围,避开的规则是什么,攻击授权范围等。

1.6. 存在的防御能力技术
知道这个不是为了找漏洞攻击,而是用于应急响应,在渗透测试的过程中被其他黑客或者组织攻击,有一个应急预案。

1.7. 保护自己
渗透测试过程中是需要保护自己的,要准备自己的渗透测试系统,前期交互的检查表,数据包监听,后期交互检查表,防止这些东西的泄露。

2. 情报收集阶段
情报收集其实就是使用各种手段获取要渗透测试的系统或者组织的一切信息,包括社交媒体网站、Google、Hacking 技术、实地勘察等等。主要从一下几方面考虑;

2.1. 目标选择
当然,在前期交互阶段我们已经选好了目标,所以这个步骤知识进一步的确认或者说是选择一个小目标。

2.2. 开放渠道情报收集
在开放的渠道进行情报收集,通常我们是不直接和目标进行交互的,知识通过第三方渠道尽可能的获取更多的目标信息。对于企业,可以从物理、逻辑、组织架构、电子商务、财务等多方面进行信息收集。物理上:地理位置,分布,关系网等信息;逻辑上:从业务伙伴,竞争对手,接触关联图,业务轮廓图,产品线,垂直市场,销售银行账号,会议安排,关键企业日期,招聘岗位,慈善事业关系等方面手机信息;对于个人,可以从履历背景,社交关系网,互联网足迹,博客,最新动态,物理位置,移动足迹,工资银行账户,手机号等多方面进行信息收集。

2.3. 白盒搜索
白盒搜索主要是近距离的场外搜索和场内搜索,不会与目标有直接的接触,属于是旁观的角色。

2.4. 人力资源情报
人力资源情报主要体现在手机企业的关键雇员,合作伙伴和供应商,同时可以启用社会工程学进行信息收集。

2.5. 踩点
外部踩点是一种很直接的信息收集的方式,可以识别目标的客户范围,被动信息收集和主动信息收集,建立目标列表(确定版本信息,识别补丁级别,搜索脆弱的 web 应用,确定封禁阈值,出错信息,找出攻击的脆弱端口,虚拟化平台和虚拟机,存储基础设施);内部踩点是一种主动的信息手机方式,通过主动探测(端口扫描,SNMP 探查,区域传输,SMTP 反弹攻击,解析 DNS 与递归 DNS 服务器,旗标提取, VoIP 扫描, ARP 探测,DNS 探测),被动信息收集建立目标列表。

2.6. 识别防御系统
在信息收集阶段就能识别到目标系统的防御系统,对渗透测试是很有必要的,需要了解目标的网络防御机制(简单的包过滤,流量整形设备,信息泄露防御系统,加密 / 隧道机制),系统防御机制(堆栈保护,白名单列表,反病毒软件 / 过滤 / 行为检测,信息泄露防御系统),应用层防御机制(识别应用层防御,编码选项,可能潜在的绕过机制,白名单区域),存储防御机制(硬盘保护卡等)。

3. 威胁建模阶段
威胁建模阶段只要是使用在情报收集阶段获取到的信息,判断和识别出目标系统上可能存在的安全漏洞和弱点。进而确定最为高效的攻击方法,所需要进一步获取到的信息,以及从哪里攻破目标系统。

3.1. 业务资产分析
主要是分析私人身份信息,健康信息和信用卡信息,定义和找出组织的知识产权和企业的关键资产。其中企业分关键资产也是需要着重关注的部分,包括商业机密,研发和开发,市场计划,企业银行卡 / 信用卡账户,客户资料,供应商资料,关键雇员(董事会、中间层管理、系统管理员、工程师、技术专家、人力资源、总裁助理)信息等。

3.2. 业务流程分析
这部分主要是分析企业业务上使用的基础设施,人力基础设施,使用的第三方平台。

3.3. 威胁对手 / 社区分析
威胁对手包括企业的内部矛盾和外部竞争对手,国家政府的限制,有组织的犯罪团伙,黑客等。其中公司的内部矛盾体现在内部人员的关系上,需要分析内部人员的关系网。

3.4. 威胁能力分析
威胁能力分析主要是对使用的工具,可用的相关渗透测试代码和攻击载荷,通信机制(加密,下载站点,命令控制,安全宿主站点)等进行分析。

3.5. 找出公司被攻击的历史记录
4. 漏洞分析阶段
综合前面几个阶段得到的信息,可以进行漏洞的分析阶段,并从中分析出哪些攻击途径是可行的。

4.1. 测试
测试分为主动测试和被动测试,儿测试的方法又分为自动化测试,手工测试,躲避技术。

4.1.1. 主动测试
主动测试可以使用自动化技术进行通用的漏洞扫描(基于端口,基于服务,旗标提取),web 应用扫描器(通用的应用层漏洞扫描、目录列举和暴力破解、web 服务器版本和漏洞辨识、存有漏洞的方法),网络漏洞扫瞄器(VPN、IPv6),语音网络扫描(战争拨号、VoIP扫描);使用手工的方式有针对性的链接测试;使用躲避技术进项多源探测,IDS逃逸,可变的速度,可变的范围等测试。

4.1.2. 被动测试
被动测试可以通过自动化技术从内部获取的原数据进行分析,进行流量监控以及使用手工方法针对特定链接测试。

4.2. 验证
对扫瞄器的结果进行分析,手工验证 / 协议相关(VPN 指纹识别,Citrix 查点,DNS, Web, Mail),验证攻击路径,创建攻击树,手工评审验证效果。

4.3. 研究
研究公开的资源和私有环境下的资源,对公开资源的研究可以使用 exploit-db 、google hacking、渗透代码网站、通用或默认口令、厂商的漏洞报告;对私有环境下的研究可以建立一个复制的环境,测试安全配置,找出潜在的攻击路径。

5. 渗透攻击阶段
当经过以上阶段后能够确信某种特定的渗透攻击会成功的时候,才对真正的目标系统实施渗透攻击。、

5.1. 精准打击
如果能够确信一次就能取得系统的控制权限,那么可以实施精准打击,否则使用其他攻击方式。

5.2. 绕过防御机制
一般目标系统都会有反病毒程序,但是可以使用编码、加壳、白名单绕过、进程注入、纯内存方式等方式绕过。还要想办法绕过目标系统的人工检查、网络入侵防御系统、DEP、ASLR、VA + NX(Linux)、web应用防火墙、堆栈保护等。

5.3. 定制渗透测试路径
最常用的攻击方式还是定制渗透测试路径进行最佳路径攻击、0day攻击(Fuzzing、逆向分析、流量分析)、公开渗透代码定制、物理访问(人为因素,主机访问,USB接口访问,防火墙,中间人攻击,路由协议,Vlan划分,其他硬件)、接近的访问(WIFI、攻击 AP、攻击用户、电子频谱分析)、拒绝服务 / 勒索、web(SQL、XSS、CSRF、信息泄露、其他 OWASP Top 10)、绕过检测机制(FW / WAF / IDS / IPS 绕过、绕过管理员、绕过数据泄露防御系统)、触发攻击响应控制措施、渗透测试代码、攻击类型(客户端攻击 Phishing、服务端攻击、带外攻击)。

6. 后渗透攻击阶段
后渗透攻击阶段将以特定的业务系统作为目标,识别出关键的基础设施,并寻找客户组织最具价值和尝试进行安全保护的信息和资产,当从一个系统攻击进入另外一个系统事,需要演示出能够对客户组织造成最重要业务影响的攻击途径。

6.1. 基础设施分析
基础设施分析包括对当前网络连接的分析,网络接口的查询,VPN 检测,路由检测(包括静态路由),网络邻居与系统探查,使用的网络协议,使用的代理服务器,网络拓扑。

6.2. 掠夺敏感信息
掠夺敏感信息可以从视频监控器和网络摄像头获取,从可用通道获取,查找共享目录,音频监控(VoIP、麦克风记录),高价值文件,数据库,WIFI,源代码。识别出客户管理应用等。同时可以采用备份的方式,将拿到控制权的服务器进行本地备份文件、中央服务器备份、远程备份、录音存储备份等。

6.3. 进一步对基础设施渗透
采用僵尸网络、入侵网络,检查历史 / 日志等方法进一步对目标进行进一步的渗透测试。

6.4. 掩盖访问痕迹
渗透测试基本要求就是要能擦干净屁股,这个时候就需要渗透测试攻击的过程,将现场清理,删除测试数据,对证据进行打包和加密,必要的时候可以从备份中恢复数据。

6.5. 持续性存在
为了进一步进行后渗透测试,需要保持可持续性的存在。这个时候可以通过上传自启动的恶意代码,反向连接,命令控制媒介(http、dns、tcp、icmp),后门,植入代码,口令保护的 VPN,rootkit(用户模式、内核模式)等方法增加渗透测试的可持续性。

6.6. 其他
除了上面几点,还可以在后渗透阶段对高价值目标进行识别,业务影响攻击(业务盈利途径、窃取业务盈利)等。

7. 渗透测试报告
报告是渗透测试过程中最重要的环节,使用报告文档来反馈整个渗透测试过程中做了那些事情,是如何做到的,客户组织要怎么修复渗透测试过程中发现的漏洞。渗透测试报告需要包含摘要,过程展示和技术发展几个部分。

7.1. 执行层面的报告
渗透测试报告中的执行层面的报告主要是对业务影响、定制、与业务部门的谈话、影响底线、策略方法路径、成熟度模型、风险评估术语说明、攻击过程与 Gant 图时间线和风险评估的报告。其中风险评估需要做到对评估事故频率(可能的事件频率、估计威胁能力【来自阶段 3 的威胁建模】、评估控制措施强度【来自阶段 6 】、安全漏洞与弱点评估【来自阶段 5】、所需技能要求、所需访问权限等)、每次事故的损失统计、风险推算(威胁、漏洞、组合风险值)。

7.2. 技术报告
技术报告需要从以下方面进行总结,识别系统问题和技术根源分析、渗透测试评价标准(范围内的系统数量、范围内的应用场景数量、范围内的业务流程数量、被检测到的次数、漏洞 / 漏洞主机数量、被攻陷的系统数量、成功攻击的应用场景数量、攻陷的业务流程次数等等)、技术发现(描述、截图、抓取的请求与响应、概念验证样本代码)、可重现结果(测试用例、触发错误)、应急响应和监控能力(情报收集阶段、漏洞分析阶段、渗透攻击阶段、后渗透攻击阶段、其他方面【如第三方的通知等】)、标准组成部分(方法体系、目标、范围、发现摘要、风险评定的术语目录)。

7.3. 提交报告
到了渗透测试的最后一个步骤了,提交渗透测试报告。报告提交的流程需要经过以下流程:初始报告、客户对报告的评审结果、对报告的修订、最终报告、报告初稿与最终报告的版本管理、展示报告(技术层面、管理层面)、工作列会 / 培训(差距分析【技能 / 培训】)、保存证据和其他非产权的数据、纠正过程(分流、安全成熟度模型、工作进度计划、长期解决方案、定义限制条件)、开发定制工具。

8. 总结
到次一个完整的渗透测试标准过程结束了。内容来自官方文档,翻译难免不到位,还有许多不是原文翻译,加入了自己的理解。如有不妥,欢迎一起讨论。谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eglinux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值