渗透测试的生命周期

Posted by r3kind1e on September 14, 2021

Lifecycle of Penetration Test(渗透测试的生命周期)

这如何支持我的渗透测试生涯?

  • 成为真正的渗透测试者,而不仅仅是熟练的黑客
  • 了解渗透测试在企业环境中的作用
  • 能够执行有效的渗透测试

渗透测试是一个既复杂又非常微妙的过程。 您必须彻底测试客户的系统以找出任何漏洞,同时必须保证您的活动对生产系统和服务的影响尽可能小; 这是至关重要的,是真正的专业人士和业余爱好者之间的区别。

在测试期间仔细选择要使用的正确工具和技术非常重要,以避免使您的客户系统和网络过载。 深入了解您正在做的事情还可以让您与客户沟通,如果在渗透测试期间出现任何问题,应采取哪些步骤。

将渗透测试视为一个过程,而不是一个非结构化的任务块,可确保以尽可能低的开销测试每个潜在的漏洞或安全弱点。 稍后您将看到,任务的成功取决于前面任务的成功。

现在让我们看看渗透测试过程的每个阶段。 不要低估每一步的价值!

参与->信息收集->足迹和扫描->漏洞评估->利用->报告

image-20210913214511124

Engagement(参与)

有关渗透测试的所有细节都是在参与阶段确定的。

Quotation(报价)

报价阶段,专业渗透测试人员定义网络、Web 应用程序或整个组织的渗透测试费用。 费用将根据以下情况而有所不同:

  • 参与类型(黑盒、灰盒等)
  • 参与需要多长时间
  • 范围内应用程序和服务的复杂性
  • 目标数量(IP 地址、域等)

评估和引用这些方面需要您在该领域获得的经验。 如果您无法量化参与所需的工作量,您可以按小时收费。

Proposal Submittal(提案提交)

赢得工作的最佳方法是提供合理且有针对性的建议。 您应该在编写提案时牢记客户的需求基础设施

该提案应包括:

  • 对客户需求的理解。 换句话说,你了解他们的要求。
  • 您想要使用的方式和方法,例如使用自动扫描工具、手动测试、现场测试和任何其他合适的信息。

此外,它还应包括:

  • 您希望如何满足他们的需求以及渗透测试将为他们的业务带来什么样的价值。 考虑风险和收益,例如业务连续性、提高机密性、避免因数据泄露而造成的金钱损失和声誉损失。
  • 价格方面的报价和执行工作所需时间的估计。

最后,任何提案都必须解决: 参与的类型。 您的活动是渗透测试还是漏洞评估? 是远程的还是现场的? 在 IP 地址、网络块、域名或任何其他有助于定义范围的信息方面的参与范围

Staying in Scope(留在范围内)

作为专业的渗透测试人员,您应该意识到您的客户可能对某些 IT 领域没有足够的了解,尤其是在向您传达目标时。

您应该始终确保您参与的目标是您客户的财产。 尤其是当被要求执行参与时要小心(例如,在单个网站上)。 如果它是共享主机的一部分,除非获得主机提供商的书面许可,否则您不得对此类目标进行评估。

始终分析目标范围并验证它是否是您客户的财产,以及您是否有进行评估的书面许可。 你应该非常认真地对待任何可能的超出范围的事件; 在许多国家,此类未经授权的活动可能被视为违法

Incident Handling(事故处理)

在进行渗透测试时,您应该考虑到事故的发生事故是一种计划外和不需要的情况,它会影响客户的环境并中断其服务。

即使坚持所有最佳实践并非常小心地执行每个测试,也总是有可能损坏被测试的资产,尤其是当您对被测试的环境知之甚少并且无法预测每个操作的结果时。

您应该始终瞄准不损坏目标。 如果计划一些密集或有风险的测试,您可能需要与客户沟通。 例如,如果有一些可能的服务中断对他们来说不那么痛苦的首选时间。

最好的做法是制定事件处理程序。 许多大型组织已经建立了此类流程,而较小的组织可能尚未在其中实施此类程序。

事件处理程序是一组指令,您和您的客户都需要执行这些指令,以便在发生事故(例如,服务损坏或不可用)时如何处理。

如果客户没有建立固定的程序,处理事件的最简单方法是有一个紧急联系人,客户站点上的技术人员(通过电话或其他联系方式)可能会协调进一步的事件处理为客户的公司。

一旦设置了紧急联系人,就值得在参与规则中添加一条声明:

如果对目标资产有技术咨询,Pentester 将联系 bob@itservice.corp。 如果怀疑发生了重大事件(例如,服务 不可用),Pentester 将立即通过电话号码 +12 345 678 90 联系 IT 服务的 Bob

完成上述步骤后,您还要处理相关各方的法律责任; 这是通过制作一些法律文书来完成的。 有时您需要聘请律师,因为信息安全法律因国家/地区而异。 其他时候,需要专业保险,强烈建议购买它,因为它每年只需几百美元,以防万一非常有用。

公司通常希望您签署一份或多份保密协议 (NDAs)。 这些文件强制您对您在参与期间可能遇到的任何信息或机密数据完全保密。 无论您是否接触过私人数据、有关秘密流程或产品的信息,您都有责任将它们保密并在您的 PC 上加密

通过保密协议,公司可确保您不会向任何第三方泄露任何机密信息。 保密性只是渗透测试的法律方面之一。 另一个关键点是概述你能做什么和不能做什么如果您是一名自由渗透测试员,那么到目前为止看到的所有步骤都适用。 如果你在 IT 安全服务公司工作,法律部门会处理,你的渗透测试过程将从下一步开始。

参与规则是另一份文件,它将定义参与范围,并将您有权做什么以及何时做; 这包括您的测试和您在客户组织中的联系人的时间窗口。

您会希望这些联系人(客户的员工或经理)协调活动,或者在您在测试期间不小心弄坏某些东西时及时与他们沟通。 一旦清楚地记录了所有内容,您就可以从信息收集开始,进入参与的实际部分。

Information Gathering(信息收集)

信息收集是成功渗透测试的第一个也是最基本的阶段。 大多数初学者倾向于忽略或匆忙这个阶段。 如果您想执行有效的渗透测试; 不要那样做!

General Information(一般信息)

一旦法律文书工作完成,信息收集就可以在测试期开始之前开始。 您不希望客户端在该开始日期之前在其日志中找到任何内容。 在此阶段,您是一名调查员,想要收集有关客户公司的信息。

此类信息包括: 董事会 投资者 经理和员工(姓名和电子邮件地址) 分行位置和地址

如果参与规则允许社会工程学,上述信息将非常有用,因为您将能够发起有效的有针对性的攻击。

Understanding the Business(了解业务)

由于渗透测试的目标是模拟黑帽黑客攻击的影响,因此您需要了解所涉及的风险以及客户的关键基础设施是什么。 了解业务是了解什么对您的客户重要的关键方面; 这使您可以了解对客户而言什么是关键和重要的,从而使您能够评估与成功攻击相关的风险。

Infrastructure Information Gathering(基础设施信息收集)

收集一般信息并了解业务后,可以开始基础设施信息收集。 在此阶段,您将 IP 地址或范围内的域转换为有关服务器、操作系统等的可操作信息。

如果范围被定义为 IP 地址列表,您可以继续下一步。 如果范围是整个公司或其某些域,则您必须使用 WHOIS 和其他 DNS 信息来收集相关的 IP 块。

此阶段的目标是通过确定以下内容来赋予范围内的每个 IP 地址以意义

  • 如果有实时主机或服务器使用它。
  • 如果有一个或多个网站使用该 IP 地址。
  • 主机或服务器上运行的是什么操作系统。

这将帮助您:

  • 将您的精力集中在实际的实时客户端和服务器上。
  • 瞄准你的攻击。
  • 当您必须找出客户系统的漏洞和可利用性时,请在利用阶段完善您的工具。

Web Applications(Web应用程序)

如果范围内有任何 Web 应用程序,在此阶段您将收获:

  • 子域
  • 页面(网站抓取)
  • 正在使用的技术,如 PHP、Java、.NET 等。
  • 正在使用的框架和内容管理系统,如 Drupal、Joomla、Wordpress 等。

您应该将 Web 应用程序视为需要单独研究的完全独立的实体。 您可以通过浏览和检查应用程序代理(例如 Burp)来收集有关 Web 应用程序的信息。

Footprinting and Scanning(足迹和扫描)

在足迹和扫描阶段,您加深了对范围内服务器和服务的了解。

Fingerprinting the OS(对操作系统进行指纹识别)

例子

对主机的操作系统进行指纹识别不仅可以为您提供有关系统上运行的操作系统的信息,还可以帮助您缩小在下一阶段检查的潜在漏洞数量。

您永远不会在 Linux 主机上检查典型的 MS Windows 漏洞!

有一些工具可以对远程系统的操作系统、版本甚至补丁级别进行有根据的猜测。 这些工具利用了您可以在每个操作系统的网络栈实现中找到的一些奇点。

Port Scanning(端口扫描)

在检测到实时主机并对其进行指纹识别后,是时候进行端口扫描了! 通过扫描活动主机,您可以确定远程系统上哪些端口是开放的; 这是参与的关键阶段,因为这里犯的任何错误都会影响后续步骤。

目前,事实上的端口扫描器是 nmap。 使用 nmap,渗透测试人员可以利用不同的扫描技术来揭示打开、关闭和过滤的端口。 您将在课程的渗透测试部分看到 nmap 是如何工作的。

Detecting Services(检测服务)

知道一个端口是开放的只是工作的一半。 接下来,您需要知道在该端口上侦听的服务是什么

事实上,仅仅知道端口是不够的,因为正如您在网络模块中所知道的那样,系统管理员可以配置服务来侦听任何 TCP 或 UDP 端口。 要检测哪个服务正在侦听端口,您可以使用 nmap 或其他指纹识别工具。

通过了解机器上运行的服务,渗透测试人员可以推断:

  • 操作系统
  • 特定 IP 地址的用途; 例如,如果它是服务器或客户端。
  • 主机在客户业务中的重要性。 例如,电子商务企业将严重依赖其网站和数据库服务器。

在构建了网络基础设施和在其上运行的服务的地图后,您可以使用漏洞扫描和/或手动检查开始漏洞评估。

Vulnerability Assessment(漏洞评估)

漏洞评估阶段旨在构建目标系统上存在的漏洞列表。 渗透测试人员必须对前面步骤中发现的每个目标进行漏洞评估。

下一阶段,即利用,将通过此列表来利用系统。 列表越大,利用范围内的系统的机会就越大。

您可以进行漏洞评估: 使用前几个阶段收集的数据手动评估 通过使用自动化工具

漏洞评估工具是向目标系统发送探测以检测主机是否存在某些众所周知的漏洞的扫描器。

漏洞扫描完成后,扫描器将提供一份报告,渗透测试人员可以在利用阶段使用该报告。 由于自动扫描仪可以执行大量探测,因此利用前面步骤中收集的信息正确配置它们非常重要。

否则,扫描器将盲目地执行所有探测,即使是那些不适用于您的目标的探测; 这会增加服务崩溃的可能性,并且需要更多的时间来完成。

大多数情况下,这个阶段是通过使用自动扫描器和手动检查来完成的。 自动化工具可以帮助执行渗透测试,但它们不会自行执行渗透测试。

Exploitation(利用)

此时,是时候验证漏洞是否真的存在了。 利用阶段负责利用在上一步中发现的所有漏洞。 在利用阶段,渗透测试人员检查和验证漏洞,并扩大增加渗透测试人员在目标系统和网络上的权限。

成功利用机器有助于进一步调查目标网络,发现新目标并从信息收集阶段重复该过程! 渗透测试确实是一个循环过程。

范围内没有更多系统和服务可供利用时,该过程结束。 请记住,渗透测试用于查找任何和所有漏洞。

image-20210914112307987

Reporting(报告)

最后,最终的渗透测试报告与整个测试阶段一样重要,因为它是您正式交付和交流测试结果的方式:

  • 高管

  • 信息技术人员

  • 开发小组

    该报告显示并解释了您的测试结果,是您专业参与的实际成果。

报告必须说明:

  • 使用的技术
  • 发现漏洞
  • 利用的漏洞
  • 每个漏洞的影响和风险分析
  • 修复技巧 关于如何有效修复每个漏洞的有针对性的技巧对客户来说是真正的价值

请记住,如果渗透测试人员的工作除了他的精英利用技能外,还提供了有用的建议和技术,客户可以使用它来解决他们的安全问题,那么它会更受欢迎。

Consultancy(咨询)

渗透测试人员经常被要求在提交报告后提供几个小时的咨询; 如果客户需要关于您的调查结果的进一步澄清或帮助,这是一项为客户提供的附加服务。

在咨询步骤之后,参与结束,渗透测试人员必须将报告加密保存在安全的地方,或者更好的是,销毁它。

The Secret of an Effective Pentest(有效渗透测试的秘密)

为什么经验丰富的渗透测试人员不直接跳到利用阶段? 最后,这就是他们得到的报酬,不是吗? 将范围内的系统想象为目标。 目标越大,你用飞镖击中它的机会就越大。 信息收集和指纹识别等阶段就是这样做的; 他们让你的目标更广泛

用技术术语来说,此活动称为“扩大攻击面”。 花时间扩大攻击面比向未知目标射击更有价值。 你不知道向哪里射击,也不知道哪种技术最好用。

另一方面,有针对性的攻击有更多的机会成功! 作为渗透测试者,您的主要目标是首先增加成功的机会,然后再放飞镖。 坚持你刚刚看到的过程是有效渗透测试的真正秘诀!

事实上,积极主动且经验丰富的黑客将大部分时间花在调查受害者并使用尽可能多的来源收集有关他们的信息上。 这有助于他们发起高度针对性的攻击,而不会在受害者的防御系统中触发警报。

对目标的深入了解使成功和隐蔽的攻击成为可能,这来自全面的信息收集阶段。

在本课程的渗透测试部分,您将看到执行我们在本模块中研究的渗透测试过程的每一步的工具和技术:信息收集、扫描、漏洞评估和利用!

References(参考)

Nmap