paint-brush
渗透测试和漏洞扫描by@morpheuslord
2,680
2,680

渗透测试和漏洞扫描

Morpheuslord13m2024/01/26
Read on Terminal Reader
Read this story w/o Javascript

通过我们对漏洞扫描和渗透测试的深入探索,深入了解网络安全领域。揭示其中的细微差别、安全问题和所涉及的工具,重点关注 Trinkets.io 作为领先平台。通过专家的见解驾驭网络威胁的动态格局,为专家和初学者揭开复杂性的神秘面纱。了解利用数据和分析来应对网络安全挑战的重要性。与我们一起踏上通往安全数字未来的旅程,并以 trinkets.io 作为您的盟友。随时了解情况,保持安全。
featured image - 渗透测试和漏洞扫描
Morpheuslord HackerNoon profile picture
0-item
1-item
2-item
3-item
4-item


在本文中,我将探讨漏洞扫描和渗透测试领域,强调每个步骤涉及的各个阶段和流程之间的细微差异和相似之处。最后我还将仔细研究一些专注于任务自动化的工具。为了使事情变得简单且具有教育意义,我将分解渗透测试和漏洞评估的基本步骤。让我们开始吧!

表中的内容

  • 什么是渗透测试?
    • 规划与侦察
    • 扫描
    • 剥削和获取访问权
    • 维护访问权限
    • 报告和控制
  • 什么是漏洞扫描?
  • 渗透测试工具。
  • 渗透测试的自动化。
  • 渗透测试自动化工作流程开发
  • 使用开源解决方案实现自动化

什么是渗透测试?

渗透测试,也称为渗透测试,是一个涉及通过模拟友好黑客来识别和解决安全漏洞的过程。这是一种系统方法,从规划和收集信息开始,根据目标以报告结果或确保持续访问结束。这是一个标准程序,有助于增强组织数字环境的安全性。以下是涉及的阶段:


渗透测试流程概述


规划与侦察

在规划阶段,获取有关目标的所有相关信息至关重要,包括有关他们使用的技术的详细信息以及发生网络钓鱼攻击时的数据。这些信息在确定塑造整个过程的工具、技术和其他细节方面发挥着至关重要的作用。


下一步是调查,其中涉及收集大部分基本数据。侦察有两种基本方法:主动侦察和被动侦察。虽然这两种方法都实现了相同的目标,但主动侦察更加自信,并且可能会被注意到。相比之下,被动侦察间接收集信息,更加隐蔽,难以识别。每种方法都有不同的操作时间,被动方法有时更复杂且耗时,而主动方法速度更快但不太详细。

扫描

扫描过程类似于进行详尽的调查。主要目标是更深入地挖掘目标并收集有价值的信息。这类似于在一堆杂乱的东西中筛选以找到隐藏的宝石。


我们的目标是获取关键信息,使我们能够以最小的怀疑闯入系统。我们利用针对当前任务量身定制的各种扫描。例如,在使用 Web 应用程序时,我们会搜索潜在的 CSRF 和 XSS 端点等漏洞。我们检查接入点,调查端口上运行的服务,并确定网络上是否存在防火墙或 WAF。可用于扫描的选项多种多样。


扫描阶段及其各种内部类型


剥削和获取访问权

一旦黑客发现可利用的漏洞,只需很短的时间即可发动全面攻击。利用漏洞涉及对受害者系统进行未经授权的访问。攻击者需要小心谨慎,避免直接接触目标系统,以免被抓住。

非法访问的情况有多种,但最常见的是远程代码执行 (RCE) 和后门。 RCE 漏洞是基于核心的问题,允许不需要的输入或输出,有时甚至会操纵代码逻辑。 RCE 是最危险的漏洞类型,并且通常会给予大量奖励。后门有两种类型 - 自定义后门和错误配置。自定义后门涉及欺骗目标下载恶意文件,而错误配置后门则涉及访问开发人员门户。

维护访问权限

让我们更详细地讨论保留访问的概念。考虑将备份密钥存储在安全的位置,以防您的主密钥丢失或您需要意外休息。这种备份访问不仅可以作为预防措施,还可以让您轻松畅游数字世界。随时访问重要信息是另一个好处。因此,保持访问权限就像在您的数字之旅中拥有一个可靠的伴侣,确保您始终为可能出现的任何情况做好准备。


对于受害者的机器来说,备份访问就像被盗的备份密钥。黑客可以随时轻松访问受害者的个人或职业空间,如果他们采取安全措施,则不会被发现。

报告和控制

作为一名道德黑客,创建报告对您的工作至关重要。在报告中,您必须解释您采取的每一个步骤、您发现的问题、您使用的漏洞、面临风险的资产以及您获得的结果。尽管该报告可能是一项艰巨的任务,但其中包含的信息很有价值。了解哪些资产面临风险可以帮助公司优先考虑攻击预防,以有效保护基础设施。


然而,渗透测试的过程并不像乍看起来那么复杂。它主要涉及理解测试的含义。黑客通常对这个概念有很好的理解,但有些黑客专门从事该过程中的特定任务。


什么是漏洞扫描?

我们现在将讨论漏洞扫描,笔测试过程的一部分。此阶段属于扫描阶段,涉及检查大量问题和错误配置。漏洞评估过程旨在分析大量数据并研究导致漏洞的逆向工程漏洞和错误。在线数据库(例如exploit-db)列出了经常引用的CVE 的漏洞利用列表。这些数据库提供诸如与漏洞利用相关的 PoC 代码和其他相关详细信息等信息。


漏洞评估需要投入大量的时间和精力。这里的目标是找到漏洞利用,利用越准确,对信息的理解就越好。例如,如果您有一项有关 CSP 分析的任务,您可能会发现 CSP 策略已到位,可以保护 Web 应用程序免受可能的 XSS 攻击。但是,即使存在通配符,您在不知道易受攻击的端点的情况下也无法利用它。如果网站上没有可能或可访问的 XSS 端点,您将如何利用它?在这种情况下,有必要对情况进行更深入的了解。

因此,漏洞扫描和评估是一项至关重要但耗时的任务,需要透彻理解不同信息之间的相互关系。


渗透测试工具

随着时间的推移,渗透测试工具经历了重大演变,反映了网络安全威胁不断变化的情况。早期的工具通常很简单,用途也很狭窄。然而,为了应对日益复杂的网络威胁,渗透测试工具已经发展成为强大、全面的解决方案。这些工具除了识别漏洞之外,还可以模拟实际的网络攻击,使组织能够全面了解其安全状况。


漏洞评估工具取得了显着的进步。现代工具使用人工智能和机器学习等尖端技术来提高识别和排名漏洞的能力。为了让这些工具及时了解最新的网络威胁和漏洞,威胁情报源的集成已成为一项标准功能。此外,直观的用户界面提高了更广泛的安全专业人员对这些工具的可访问性。


以广泛使用的平台(如 Metasploit)为代表的利用框架也经历了重大发展。这些框架现在提供了更加用户友好的体验,使安全专家能够有效地自动化利用过程。这些框架已经发展到支持更广泛的漏洞,并已成为渗透测试人员武器库的重要组成部分。与威胁情报源的集成进一步提高了利用尝试的准确性和有效性。

渗透测试的自动化。

渗透测试过程的自动化改变了安全评估的功效和效率。自动化加快了测试速度,使企业能够进行更频繁、更深入的安全评估。编排平台已成为重要元素,提供了用于管理整个渗透测试生命周期的集中框架。在这些平台的帮助下,安全团队可以通过自动执行漏洞扫描和漏洞利用执行等重复任务来简化资源使用并缩短评估时间。


自动化领域的一项值得注意的发展是它与 DevOps 流程的集成程度。随着越来越多的公司采用渗透测试工具来实现持续、更快的软件交付,渗透测试工具正在不断发展,以完全融入 DevOps 工作流程。安全性是软件开发生命周期的重要组成部分,因为自动化保证了在开发管道的不同阶段纳入安全测试。


自动化也适用于云环境,在云环境中创建或修改工具来评估云基础设施的安全性。随着无服务器计算的普及,新的挑战也出现了。为了为无服务器架构提供全面的安全评估,自动化工具正在应对这些挑战。


总之,渗透测试工具的开发以及将自动化纳入工作流程代表了对威胁形势变化性质的动态反应。和

随着工具日益先进和有效,安全专业人员现在可以智取网络对手并改善组织的整体安全态势。随着技术的进步,保护敏感数据和数字资产的不断努力将在很大程度上取决于这些工具的持续进步

渗透测试自动化工作流程开发

创建基于工作流的渗透测试自动化系统时需要考虑几个问题。明确定义目标并评估当前程序是确定自动化领域的第一步。选择正确的工具至关重要,需要在适应性、集成潜力和定制选择之间取得平衡。


该过程中的关键步骤是设计工作流程顺序,这需要从侦察到报告的逻辑任务流程。当集成 DevOps 实践时,开发管道和安全测试可以保证无缝协作。此外,考虑到云和混合环境,需要针对这些设置带来的特定困难进行调整。


定期测试和持续监控是必要的要素,需要采取主动措施来快速识别和消除新威胁。为了使安全团队有效地理解和使用系统,自动化工作流程和培训的全面记录是必要的。


想象一下这样一种情况:指派安全专家来测试 Web 应用程序是否存在漏洞。目标是找到应用程序的 Web 基础设施中的潜在弱点。此示例重点关注 Web 应用程序枚举,这是渗透测试过程的第一步。


下一步是使用 Nmap 扫描网络以查找开放端口和 Web 服务器服务。了解攻击面和潜在的入口点需要了解这些信息。 Nmap 使用 Sublist3r 的输出来指导集中于找到的子域的有针对性的扫描。网络扫描之后,注意力转向扫描 Web 应用程序。 Burp Suite 等工具用于查找 SQL 注入和跨站脚本等常见漏洞。 Burp Suite 的配置基于网络扫描的结果,这保证了有针对性和有效的评估。


该过程包括使用 Dirb 进行目录和文件枚举,以进一步完善分析。此步骤使用 Web 应用程序扫描数据作为指导,查找 Web 服务器上的隐藏资源。 Nikto(一个用于更彻底的漏洞分析的程序)的设置受到 Dirb 的调查结果的影响。 Nikto 通过扫描 Web 服务器是否存在已知漏洞、错误配置和过时的软件版本,提供有关可能的安全风险的综合报告。


这些工具的流畅工作流程集成展示了它们的相互关联性。通过简化的流程,Web 应用程序枚举变得更加容易,其中一个工具的输出会影响另一个工具的配置。为了解释结果、修改配置并发现可能的利用点,安全专业人员的经验对于工作流程的成功至关重要。必须不断改进工作流程,以跟上不断变化的威胁并随着时间的推移保持 Web 应用程序的安全状况。创建和管理这些工作流程需要不断关注细节并了解快速变化的网络安全环境。


开发工作流程概述


但重要的是要认识到这个过程是多么复杂和具有挑战性。随着企业试图领先于不断变化的网络威胁形势,创建和管理强大的自动化工作流程的复杂性也随之增加。渗透测试自动化的固有挑战归因于 IT 环境的动态特性、测试需求的多样性以及不断变化的威胁形势。要应对这种复杂性,需要不断的投入、技能的发展以及对公司独特安全要求的深入掌握。创建运行良好且灵活的自动化渗透测试工作流程是一项艰巨的任务,需要持续关注细节和经验才能保持网络安全领先地位。


使用开源解决方案实现自动化

在不断变化的网络安全领域,开发具有易于集成的工具的工作流程至关重要。人们可以想出多种解决方案来开发适用于所有可能性的全自动代码,另一种更简单的方法是使用现成的解决方案。我将解释这两种解决方案。


系统编码

我们将讨论如何编写此代码的步骤,因为我只知道整个过程,而不是整个事情。这主要取决于您想要自动化的内容。在网络安全中,您可以实现多种自动化操作,主要是渗透测试。如果你是从头开始构建,那么独自从头开始构建整个系统是不可行的。如果你想这样做,就找一群程序员和其他人,并为此创办一家公司。这里最好的做法是构建多个脚本,这些脚本按照相同的原理工作,但执行不同的任务。


在此类自动化的编程中,我们需要考虑以下几点:

  • 复杂性:使用的工具数量以及一种工具完成任务所需的步骤。例如,假设我正在扫描一个网站,我使用 3 个工具来完成这项工作:Amass、Nmap 和 DnsDumpster。这三个都可用于 Web 应用程序枚举。我们稍后会看到它们是如何连接的。
  • 时间:这次整合所花费的时间很多。从头开始开发任何东西都需要时间来开发和修改。在这种情况下,所花费的时间归结为研究。主要是如何集成不同的组件或工具,假设我想将 Nmap 与 Nikto 和 Wpscan 集成。我在 Nmap 中寻找什么可以更好地帮助优化和升级?
  • 编码:编码时需要考虑一些事情,它们主要是处理输出原始数据的输出。根据您的研究和要求,您可以使用正则表达式提取必要的数据,例如 URL、IP、端口等。这很重要,因为这就是您连接整个地图的方式。


因此,基于此,我们假设我要收集子域地址、提取 IP 地址,然后使用 Nmap 进行基于脚本的漏洞分析。它看起来是这样的:


示例代码工作流程


因此,在上图中,我展示了如何互连三个工具。我知道中间使用DnsDumpster有点没有意义,但这只是一个参考。这就是我们如何整合它。至少我们可以做到这一点的方法之一是添加更多工具和所有其他复杂性和优化,并使其更加复杂,但让我们保持简单。


现在想象一下从头开始创建安全流程并强调自动化和效率所带来的潜力。在开始这样的旅程之前,您需要一些基本工具。 Python 是脚本编写和自动化的强大盟友,拥有许多非常适合工作流程开发过程的包。 Sublist3r 对于枚举每个子域非常有用。利用 Nmap 的网络扫描功能。使用 Burp Suite 改进 Web 应用程序扫描,使用 Dirb 枚举目录和文件,使用 Nikto 进行深入的漏洞分析。这些工具相结合,为渗透测试提供了强大而高效的工作流程。


但冒险并不仅仅以工具结束。在 GitHub 上探索用于持续集成和持续部署 (CI/CD) 的 Python 包,以合并协作元素。使用 GitHub Actions、GitLab CI 或 Jenkins 等工具来建立持续集成和测试管道,可确保您的工作流程有效并定期更新和测试。您的安全自动化解决方案通过与 CI/CD 流程的集成而变得更加复杂,保证其在面对不断变化的网络安全威胁时的灵活性。


使用现有系统。

因此,对于那些无法对系统进行编码或懒得这样做并想要一个简单的解决方案的人,我会支持你,我有一个可以为你自动化任务的工具列表。下面列出的工具是这样的:开源工具专注于流程的某些方面,而不是整个流程。现在,让我们来看看工具列表。来源中提到了开源工具的链接:

  • Rayder:这是一个工具,它是一个简化的工作流应用程序,可以运行复杂的编排映射。该工具使用 YAML 映射不同的命令和工具来运行侦察任务。该工具允许我们提及命令必须如何执行保存并定位输出。
  • MetaHub: MetaHub 是一个上下文化框架,可帮助根据环境和核心需求自动编译和上下文化所有资产。该工具适用于云和AWS相关操作,不专注于任何常规任务。
  • Vortex:该工具是多项任务的自动化工具,包括侦察、枚举,最后是利用。这是一个非常好的工具,必须尝试。
  • Osmedeus:这是一个巨大的框架,它几乎涵盖了制作一个良好的自动化枚举和侦察框架的所有要求。该工具扫描 git 存储库、域和云发行版。所以,是的,这是巨大、快速且可靠的。


这是我认为值得与大家分享的四个免费选项。我将在下面分享每个人的链接。如果您有兴趣,可以查看它们。如果您还想尝试更多我想出的自动化工具,您可以查看我的GitHub存储库,如果您喜欢它们,请给它们一个星星或加入讨论以提出您的观点和想法。


这是我对渗透测试自动化的看法,无论是通过编程还是通过使用现有的解决方案。我们的最终目标是以一种或另一种方式破解系统。

来源