学院模块布局

Hack The Box 最初旨在为技术专业人士提供一个安全的场所来练习和提升黑客技能,并不适合刚开始 IT/安全领域的初学者。Hack The Box 最初只是一个纯粹的竞技夺旗平台,包含多种机器和挑战,每个挑战根据难度奖励不同分数,采用“黑匣子”方式解决,没有攻略、指导甚至提示。随着平台的发展,我们意识到需要更多适合初学者的内容和引导式学习方式,以补充平台的竞技部分。基于这一目标,HTB Academy 应运而生。我们旨在提供适合初学者的内容,同时帮助中高级从业者提升各方面的技能。我们还在 HTB 主平台上提供 Starting Point,旨在帮助用户更习惯用引导式方法攻击单个目标,最终过渡到独立解答方框,甚至参与竞技性方框游戏。每个人对 HTB 可能都有自己的看法,可能并不适合所有人。不过,我们希望花时间阐述我们作为来自多个领域的资深 IT 专家,拥有多年综合经验和从初学者到今天走到今天的不同历程的观点。

信息技术(IT)是大多数组织的重要业务职能,专注于构建、管理和支持组织实现使命所需的计算机技术。IT 一词通常涵盖许多专业子学科,如网络安全、信息安全、软件开发、数据库管理、网络管理等。要在该领域变得“优秀”,需要大量的练习和努力。网络安全可能是一门极具挑战性的学科,因为它需要具备典型 IT 专家所需的基础知识,以及对各个领域(网络、Linux 和 Windows 系统管理、脚本编写、数据库等)的深入理解。我们不需要成为 IT 的每一个领域的专家。然而,经验和知识越丰富,作为 IT 安全专家或渗透测试员的工作就会变得越轻松。如果我们对所评估的技术没有深入理解,就无法自信地作为渗透测试员工作。例如,网页开发人员专注于开发网页应用和网站。这通常需要懂 HTML、JavaScript、CSS、SQL 以及服务器端编程语言(如 PHP)。即使开发者在本领域有超过十年的经验,只要一次失误,整个网络服务器就可能无法使用或数据被盗。作为攻击者,关键是找到识别并利用这些错误的方法。

基于此,我们为学生奠定了基础,因为根据我们的经验,很难知道从何开始。我们对学习材料的结构和构建让起初看似困难,但随着时间推移,你会发现这是教授复杂内容最简单、最高效的方式。我们希望让学习过程尽可能简单高效,同时强调核心基础,并反复回归。例如,我们的许多任务设计是为了让你以某种方式思考。我们这样做是为了帮助你培养在充满不确定性的领域取得成功所需的关键分析能力。我们希望培养那些看法不同、质疑一切的专业人士,如果你能发现其他测试人员忽略的细微问题,这将为客户带来更多价值。我们无法在一个模块或路径中教授分析能力和深入挖掘、“质疑一切”的能力。这可以比作弹奏乐器。没有大量练习,我们无法学会弹好吉他。我们可以学到关于吉他的一切,吉他的历史、每个部件的名称等等,但如果没有练习就拿起一把,我们无法创作出与我们对吉他知识相当的音乐。这在渗透测试领域也是如此。我们可能对计算机历史了如指掌,能够描述每个组件,但没有深入的实践经验,我们无法在高水平上进行渗透测试。

本节剩余部分将解释我们如何以现有方式构建模块,让您深入了解我们的思维过程和教学理念。我们的主要关注点是创建引人入胜且赋能的培训资源,惠及所有技能水平的个人。

所示模块列表对应我们推荐的顺序,适合初学者或“卡住”的高级用户,以便在渗透测试的每个阶段提升特定领域。0-PT-Process

aa352557a881d8

预渗透阶段

预渗透阶段是将主要承诺、任务、范围、限制及相关协议以书面形式记录下来的阶段。在此阶段,会起草合同文件,并根据评估类型,在渗透测试方与客户之间交换必要的信息。 ​ 从这里我们只能走一条路:

路径描述
信息收集接下来,我们将进入 信息收集 阶段。在可以检查和攻击任何目标系统之前,我们必须首先识别它们。很可能客户除了域名或仅列出范围内的 IP 地址/网络范围外,不会向我们提供有关其网络和组件的任何信息。因此,在进一步进行之前,我们需要了解目标 Web 应用程序或网络的整体情况。

在流程的这个阶段,我们应该有一个坚实的基础,可以通过以下基本模块进行构建:

1.学习过程

为了尽可能快速且有效地获取这些知识,我们需要了解人类的大脑 学习过程 是如何运作的,以及如何在过程中避免遇到障碍。在本模块中,我们学习大脑运作的艺术,以及如何利用这些知识来显著提高我们的学习效率。 此外,我们需要了解世界上最广泛使用的操作系统的基础知识。这包括 LinuxWindows 操作系统。在攻击这些系统之前,我们首先需要了解它们的工作原理,以便随后学习如何最好地利用它们。

2.Linux基础

Linux 是目前最稳定的操作系统之一,在企业网络中无处不在。了解 Linux 基础 至关重要,这样我们才能学习其结构并采取适当的步骤来实现我们的目标。

3.Windows基础

另一方面,Windows 是大多数公司在 IT 基础设施中发现的更用户友好的操作系统之一。理解 Windows 基础 对于能够以最佳方式处理操作系统并取得预期结果至关重要。 所有连接的系统通过不同的网络、路由和协议在互联网或内部网络上进行通信。为了了解互联系统如何运行和通信,我们必须通过一些理论基础来理解关键功能和特定术语。

4.网络基础介绍

信息世界的大部分都是相互连接的,理解主机在互联网和内部网络中如何通信并找到彼此,是我们必须掌握的另一个基本构建模块。如果我们对 网络 没有深入的理解,我们将无法有效地评估相互连接的系统。

Web应用确实是一个独特的领域。我们习惯于使用网页浏览器浏览网站,但当我们与Web应用交互时,后端究竟发生了什么?在探讨如何对Web应用进行安全测试之前,我们必须先深入了解其工作机制以及在使用过程中后端所执行的一系列流程。

5.网络应用程序简介

互联网上的计算机网络在许多层和协议上进行了标准化。最常用的应用程序类型是 Web Applications 。这些应用程序的设计方式使得任何拥有浏览器和互联网连接的用户都可以访问互联网上的网页。

6.网络请求

通信通过不同类型的 网络请求 进行,网络应用程序使用特定功能对其进行处理。我们将涵盖各种类型的网络请求以及网络浏览器如何在后台使用它们。某些网络服务器配置错误甚至可能让我们在不直接利用网络应用程序的情况下访问系统。

7.JavaScript 反混淆

如今大多数网络应用程序都是动态的,并包含 JavaScript ,我们必须熟悉这些动态特性以正确处理网页。JavaScript 是一种非常流行的编程语言,通常会被混淆,以使攻击者(和防御者)难以理解代码的确切功能。

众所周知,大型 IT 网络需要得到密切的管理和安全防护。大多数公司都有管理结构,因为远程或物理方式逐个管理数百或数千个系统是不切实际的。为此,各种技术应运而生,以促进和加速用户、系统和其它资源的管理。

8.活动目录(AD)简介

今,大多数公司采用结构化的方式管理数百或数千台计算机和用户。 Active Directory 被用于简化管理并提高管理员的效率。

9.开始

对于大多数人来说,开始时最大的困难是什么?这个问题的答案比大多数人想象的要简单得多,因为我们只需要 开始 。本模块包含了许多针对初学者的技巧和窍门,展示了我们将看到的技术和将使用的攻击方法,以及一个引导式演练,通过解决一个易受攻击的盒子,最终(对一些人来说)在没有帮助的情况下解决了我们的第一个盒子。

信息收集

信息收集是任何评估的重要组成部分。因为信息、从中获得的知识、我们得出的结论以及我们采取的步骤都基于可用的信息。这些信息必须从某处获取,因此了解如何检索它们并根据我们的评估目标最佳利用它们至关重要。

从这一阶段开始,我们下一步的路径变得清晰:

路径描述
漏洞评估我们的旅程的下一站是 漏洞评估 ,在那里我们利用收集到的信息来识别潜在弱点。我们可以使用漏洞扫描器扫描目标系统中的已知漏洞,也可以进行手动分析,试图深入了解以发现潜在漏洞可能存在的位置。

我们在前期收集的信息将直接影响漏洞利用阶段的成果。由此我们可以判断信息收集是否充分、深入程度如何。时间、耐心和个人投入在信息收集过程中都扮演着重要角色。许多渗透测试员此时往往会急于直接利用某个潜在漏洞,但这常常会失败,并可能导致时间的大量浪费等其他问题。在尝试利用任何漏洞之前,我们应完成彻底的信息收集,并在此过程中做好详细记录,重点关注那些在进入漏洞利用阶段时需要进一步细化的内容。多数评估都有时间限制,因此我们不希望因盲目尝试而浪费时间,这可能导致错过关键问题。在尽可能追求全面的同时,条理性和耐心至关重要

10.使用 Nmap 进行网络枚举

如果将我们的范围限定在企业网络基础设施内,那么我们应该掌握如何使用Nmap进行网络枚举,识别潜在目标,并规避防火墙、入侵防御系统(IPS)和入侵检测系统(IDS)等安全措施。

11.网络踩点

一旦识别出潜在目标,我们需要了解如何检查这些主机上的各个服务。关键在于理解这些服务的用途、它们可能存在哪些错误配置,以及我们作为攻击者如何利用这些漏洞达成目的。因为每个通过网络通信的服务都会留下其独特的足迹,我们必须发现这些足迹。了解这些足迹将为我们进入漏洞利用阶段后可以采取的下一步行动提供更清晰的蓝图。

12.信息收集 – 网络版本

在大多数情况下,网络服务器和网络应用程序包含大量可被利用的信息。由于网络本身就是一个庞大的技术领域,因此将单独处理。一个网络服务器可以运行多个网络应用程序,其中一些应用程序可能仅限于开发人员和管理员使用。因此,发现这些应用程序是我们 信息收集 - 网络版本 的关键部分。我们还希望尽可能多地发现网络应用程序,并收集有关其结构和功能的详细信息,这将有助于指导我们的攻击。 当我们想要在互联网上查找目标公司的信息时,事情可能会变得相当复杂。毕竟,筛选各种来源和社交媒体平台既耗时又需要大量的注意力和耐心。

13. 开源情报(OSINT):企业侦察

这种研究被称为开源情报,包含许多子类别。简而言之,该过程涉及从所有公开可用的来源收集信息。OSINT:企业侦察为我们提供了一种清晰、结构化的方法,使我们能够系统性地处理多种不同类型的数据和信息源。一个简单的例子是,找到一个允许我们以管理员身份登录公司网络的私有 SSH 密钥

漏洞评估

漏洞评估阶段分为两个领域。一方面,它是使用自动化工具扫描已知漏洞的方法。另一方面,它是通过发现的信息分析潜在漏洞。许多公司进行定期的漏洞评估审计,以检查其基础设施中新的已知漏洞,并将这些漏洞与这些工具数据库中的最新条目进行比较。

分析更侧重于跳出框框思考。我们试图发掘系统的漏洞和可乘之机,通过巧妙操纵系统和应用程序来获取非预期的访问权限或特权。这需要创造力和深厚的技术理解力。我们必须将获取的各类信息点串联起来,并深入理解其运行流程。

从这一阶段开始,我们可以根据目前的进展选择四种不同的路径:

路径描述
漏洞利用首先我们可以进入的是漏洞利用阶段。该阶段发生在我们尚未获得系统或应用程序的访问权限时。当然,这假设我们已经至少发现一个安全漏洞,并做好了尝试利用它的一切必要准备。
后渗透第二条路径导向后渗透阶段,在此阶段我们将在目标系统上进行权限提升。此阶段的前提是已获得目标系统的初始访问权限,并能够与其交互。
横向移动我们的第三个选择是横向移动阶段,即从已被攻陷的系统出发,通过网络环境攻击其他系统。同样,此阶段也假设我们已经身处一个目标系统内部并可与之交互。然而,权限提升并非绝对必要,因为在某些情况下,仅凭现有系统访问权限就足以实现在网络中的进一步移动;而在其他情况下,则可能需要先提升权限再进行横向移动。每次安全评估的具体情况都会有所不同。
信息收集最后一个选择是在手头信息不足时,重新回到信息收集阶段。在此阶段,我们可以进行更深入的探查,以获取更多信息,从而更清晰地掌握目标环境的全貌。

分析能力随着时间和经验的积累而提升。然而,这种能力也需要刻意训练,因为恰当的分析在于建立不同信息点之间的关联。将目标网络或目标系统的相关信息与我们的经验相结合,往往能帮助我们识别出特定模式。这个过程可以类比于阅读:当我们频繁接触某些词汇后,终将实现只要瞥见字母组合就能立即识别单词并理解其含义的熟练状态。

14.漏洞评估

总结信息后,我们可以使用自动化工具扫描既定目标,以检测系统中的已知漏洞。但首先,我们需要了解评分系统,并学习如何高效配置和使用这些工具。通过这些工具执行的漏洞评估,可以让我们更好地了解潜在漏洞和目标系统的配置情况。

15.文件传输

在有效利用潜在漏洞之前,我们必须熟悉将所需数据传输到目标系统的技术和方法。这是因为通常需要手动调整来规避特定限制。掌握文件传输的方式和手段是我们必须精通的关键环节,尤其是在Windows和Linux主机之间进行文件上传和下载存在多种方法。如果我们发现了一个潜在的漏洞,却不知道如何将相应的数据传送到目标系统,就会导致我们陷入僵局。

16.Shells & Payloads

我们还需要知道需要传输哪些文件才能获得对系统的初始或进一步访问权限。为此,有必要了解什么是 Shell 和 Payloads。借助传输的 Payloads,我们可以获取目标系统的命令行访问权限。有许多因素必须考虑,因为这些 Shell 和 Payloads必须适应环境和目标系统。

17.使用 Metasploit 框架

此外,还有一个名为 Metasploit-Framework 的便捷框架,涵盖了多种攻击、枚举和权限提升方法,使我们能够更快地配置和执行。它可以帮助我们加快流程,并以半自动的方式进入目标系统。然而,在我们使用这个工具之前,我们需要了解它的功能和局限性。

漏洞利用

漏洞利用(Exploitation)是指基于在信息收集和枚举阶段发现的潜在漏洞,对系统或应用程序发起的攻击。我们利用信息收集阶段获取的数据,在漏洞评估阶段对其进行分析,并据此准备潜在的攻击方式。许多公司和系统常常使用相同的应用程序,但会对其配置做出不同的决策。这是因为同一款应用程序通常可用于多种目的,而每个组织都有其各自不同的目标。 从这一阶段开始,我们可以根据目前的进展选择四种不同的路径:

路径描述
信息收集一旦获得目标系统的初始访问权限,无论当前权限级别如何,都需要收集本地系统信息。无论这些信息将用于权限提升、横向移动还是数据窃取,都必须先全面掌握当前环境的具体情况。这必然将我们带入漏洞评估阶段,对收集到的信息进行分析研判。
后渗透后渗透阶段的核心任务是在未获得目标主机最高权限时进行权限提升。众所周知,更高权限意味着更广的操作空间。此路径实际上涵盖了信息收集、漏洞评估、漏洞利用和横向移动阶段,但均从目标系统内部视角展开。虽然直接进入后渗透阶段的情况较少,但确实存在——因为通过漏洞利用可能已获取最高权限,此时我们将重新从信息收集阶段开始循环。
横向移动从此阶段也可直接跳转至横向移动。这种跳转可能发生在不同条件下,例如当我们在连接双网卡的双宿主机上获得最高权限后,便可利用该主机开始枚举此前无法访问的网络主机。
概念验证通过利用内部系统获取最高权限后,可选择最后这条路径。当然我们无需完全控制所有系统,但若在Active Directory环境中获得域管理员权限,便能在整个网络内自由行动。此时可根据记录的概念验证材料,详细梳理并自动化相关路径和操作,最终提交给技术部门。

这个阶段的内容非常广泛,因此被划分为两个不同领域。第一类是几乎每个网络中都普遍存在和使用的通用网络协议。对潜在及现有漏洞的实际利用,基于我们对将要处理的各种网络协议的适应能力和知识深度。此外,我们需要能够勾勒出现有网络的整体概览,以理解其各个组件的用途。在大多数情况下,Web服务器和应用程序包含大量可被利用的信息。如前所述,由于Web本身是一个庞大的技术领域,它将单独讨论。我们同样对目标主机上远程暴露的服务感兴趣,因为这些服务可能存在的配置错误或已知的公开漏洞可以被我们利用来获取初始访问权限。最后,现有用户在整个网络中也扮演着重要角色。

18.密码攻击

如果在信息收集过程中发现了潜在的用户名或密码,我们可能能够利用它们专门对系统和应用执行 密码攻击 ,并进行身份验证。本模块涵盖了在 Windows 和 Linux 系统上远程和本地获取凭证的各种方法。

19.攻击常见服务

由于可实施的攻击种类繁多,针对特定网络服务的攻击与针对Web应用程序的攻击是不同的。因此,它们被划分到不同的模块中,因为许多特定的攻击只能针对Web应用程序进行。然而,在任何企业网络中,几乎总能发现许多必不可少的网络服务。所以,了解如何攻击常见服务是另一个需要详细涵盖的主要概念。

20.横向移动、隧道技术、端口转发

横向移动中,被利用的系统被用作外部网络和内部网络之间或不同内部网络之间的节点。这用于与那些通常无法从互联网或内部网络中的另一台主机直接建立连接的内部系统进行通信。无论这些系统是本地托管还是云端托管,都不重要。即使是在云中,也可以配置往返特定主机的网络访问和限制。还必须创建隧道以便能够安全地传输数据。端口转发通常用于将本地端口转发到被利用系统的端口。

21.目录枚举与攻击

正如我们所知,大多数企业网络由管理员通过Active Directory进行管理。因此,熟悉这项技术以及Active Directory枚举与攻击可能对其产生的影响至关重要。其复杂性常常会导致各种漏洞,特别是在管理员操作疏忽或不够严谨时,往往会产生可能引发整个域被完全接管的漏洞。

Web漏洞利用

Web漏洞利用是漏洞利用阶段的第二部分。过去几年中,该领域发展出许多不同的技术、改进、特性和增强功能,且形势在不断演变。因此,在处理Web应用程序时涉及众多不同的组件。这包括需要不同命令语法进行交互的各种数据库。由于企业可用的Web应用程序具有多样性及其在全球的普及性,我们必须单独处理这一领域并集中关注。Web应用程序呈现出巨大的攻击面,并且通常是外部渗透测试项目中的主要可访问目标,所以强大的Web枚举和漏洞利用技能至关重要。

22. 使用网络代理

Web服务器和Web应用程序基于HTTP/HTTPS协议工作。与其他协议一样,该协议具有固定的请求和响应结构。我们将重点介绍如何使用Web代理来分析和操纵这些请求。对这些请求及其HTTP头部进行操纵的方式,对我们能从其中获得的结果起着重要作用。即使是缺少特定HTTP头部或允许过多的HTTP方法,也可能迅速且轻易地对Web服务器或Web应用程序造成严重危害。

23. 使用 Ffuf 攻击 Web 应用程序

在了解这些Web应用程序可能遭受的攻击方法后,我们可以运用其中多种攻击手段,并开始使用Ffuf攻击Web应用程序。由于每台Web服务器和应用程序都因其与数据库的关联而涉及众多不同参数,这些参数可通过手动或自动方式被发现。为此,存在多种流程和方法可供我们寻找这些参数,以进一步利用可能存在的漏洞。

24.登录爆破

认证机制是重要目标。利用特定漏洞,我们可以通过这些机制获取不同用户账户的访问权限。最有效的访问获取方式之一就是登录暴力破解。几乎所有提供各类用户特定功能的Web应用程序,都借助某种认证机制来实现。

25.SQL注入基础

无论是管理产品还是用户,绝大多数Web应用程序都至少与一个数据库协同工作。该数据库通过某种方式与Web应用程序相连,这可能开启另一种名为SQL注入的攻击途径。通过掌握SQL注入基础原理,我们可以利用Web应用程序中包含的功能,为达成自身目的而操纵或利用数据库。

26.SQLMAP基础

许多针对Web应用程序数据库的攻击已被汇总于名为SQLMap的工具中,因此在人工检查后也应学习使用该工具以加速我们的流程。需要掌握SQLMap核心功能,以便恰当应用该工具并使其适配不同的Web应用程序。

27.跨站脚本攻击(XSS)

跨站脚本攻击(XSS)是另一种最常见的攻击类别。这些漏洞可以被利用来发起各种攻击,例如网络钓鱼、会话劫持等。除此之外,我们还可能接管其他用户甚至管理员的网络会话。

28文件包含漏洞

根据 Web 服务器配置和 Web 应用程序,某些漏洞允许我们获得某种类型的 文件包含 。例如,我们可能能够访问目标系统上的文件,或使用自己的来执行代码,而无需开发者或管理员提供访问权限。

29.命令注入

我们并不总是需要使用 SQL 注入或 XSS 来攻击数据库。通常可以直接使用 命令注入 来执行系统命令。有些命令注入比其他命令注入更容易被发现,这可能需要识别和绕过现有过滤器的先进知识。

30.网络攻击

其他十大最严重漏洞包括HTTP动词篡改、不安全的直接对象引用和XML外部实体注入。这些属于更高级的Web攻击,因为它们需要绕过某些安全过滤和编码机制。

31.攻击常见应用程序

常见的 Web 应用程序可能由管理员定制,但仍然被全球广泛使用。因此,了解如何 攻击常见应用程序 也同样重要。

后渗透

在大多数情况下,当我们通过利用特定服务来获取系统访问权限时,通常无法直接获得最高权限。由于服务通常以某种”隔离”方式配置以阻止潜在攻击者,因此在此阶段我们的下一步就是绕过这些限制。然而,权限提升并非总是易事。在深入理解这些操作系统的运行机制后,我们必须根据特定操作系统调整技术手段,并深入研究Linux权限提升Windows权限提升的实现原理。

从这一阶段开始,我们可以根据目前的进展选择四种不同的路径:

路径描述
信息收集/信息掠夺在开始权限提升之前,我们必须先了解被入侵系统的内部运作情况。毕竟,我们尚不清楚系统上存在哪些用户,以及当前我们有哪些可用选项。此步骤也被称为信息掠夺。与其他阶段不同,此路径并非可选,而是必不可少的关键步骤。再次进入信息收集阶段使我们能够从这一视角进行审视,这必然会将我们带入漏洞评估阶段,在此阶段我们将分析和评估所发现的信息。
漏洞利用假设我们已经发现了关于系统及其内容的敏感信息,那么我们可以利用这些信息来攻击具有更高权限的本地应用程序或服务,从而以这些提升后的权限执行命令。
横向移动从此处,我们也可以直接跳转到横向移动阶段。这可能在不同条件下发生。如果我们在一个用于连接两个网络的双宿主系统上获得了最高权限,我们便可以利用此主机开始枚举先前无法访问的其他主机。
概念验证在通过利用内部系统获得最高权限后,我们可以选择最后这条路径。当然,我们未必需要完全控制所有系统。但是,如果我们在Active Directory环境中获得了域管理员权限,我们很可能能够在整个网络中自由移动,并执行我们能设想的任何操作。因此,我们可以根据笔记创建概念验证,详细记录并可能自动化相关路径和活动,将其提供给技术部门。

成功获取系统访问权限后,我们必须能够从系统内部实施后续步骤。在渗透测试过程中,客户通常希望了解攻击者能在其网络中渗透到何种程度。操作系统存在诸多不同版本,例如我们可能会遇到Windows XP、Windows 7/8/10/11等客户端系统,以及Windows Server 2008/2012/2016/2019等服务器系统。同时还有基于Linux的不同发行版系统,例如Ubuntu、Debian、Parrot OS、Arch、Deepin、Redhat、Pop!_OS等诸多变体。无论我们进入的是哪种系统,都必须熟悉其环境,并深入理解系统内部可能存在的各个弱点。

32.Linux 提权

构成万维网的绝大多数Web服务器都运行Linux系统。此外,我们会发现许多托管关键基础设施服务的服务器也基于Linux,这些服务被个人和组织用于提高日常工作的生产力和效率。由于Linux的广泛使用,我们必须掌握其基础知识。Linux系统存在多种错误配置的可能性,而发现这些缺陷并利用它们进行权限提升正是Linux权限提升相关课程所涵盖的内容。

33.Windows提权

现代Windows系统如今具备更强的安全预防措施(如果组织勤于打补丁的话),但管理员在任何环境中都可能出错。在基于Windows的系统中有多种不同的方法来发现错误配置,而这些方法正是我们进行Windows权限提升所必需的。

横向移动

横向移动是在企业网络中穿行的重要环节之一。通过横向移动,我们可以与其他内部主机建立联系,并在当前子网或网络的其他部分进一步提升权限。然而,与信息掠夺阶段类似,横向移动阶段需要至少能访问企业网络中的一台系统。在漏洞利用阶段,获得的权限在初始阶段并不起决定性作用,因为即使没有管理员权限,我们同样可以在网络中进行移动。

我们可以从这一阶段采取三种路径:

路径描述
漏洞评估若渗透测试尚未结束,我们可以从此处跳转至漏洞评估阶段。该阶段将利用信息掠夺阶段已获取的数据进行分析,评估运行中的网络服务或应用程序是否存在可供利用的认证机制漏洞。
信息收集/信息掠夺成功实现横向移动后,可再次进入信息掠夺阶段。此时需针对已攻陷的目标系统开展本地化信息收集工作。
概念验证完成最终阶段的横向移动并结束对企业网络的攻击后,我们需要系统化整理已收集的攻击路径与操作步骤,甚至可将部分攻击过程实现自动化,以此构建完整的漏洞概念验证报告。

由于横向移动与信息掠夺均需通过已攻陷的系统实施,相关技术方法将分散在”入门指南”、”Linux权限提升”、”Windows权限提升”等不同模块中展开讲解。

POC(Proof-of-Concept )概念验证

POC仅仅是证明所发现漏洞确实存在的证据。当管理员收到我们的报告后,他们会尝试通过复现来确认这些漏洞。毕竟,任何管理员都不会在未确认特定漏洞存在的情况下,贸然更改关键业务流程。大型网络可能包含许多相互关联的系统和依赖项,任何修改后都必须进行检查,这可能耗费大量时间和金钱。渗透测试人员发现某个缺陷,并不意味着组织能通过简单修改单个系统轻松修复,因为这可能对业务产生负面影响。管理员必须仔细测试修复方案,以确保变更不会对其他系统造成负面影响。作为高质量渗透测试的一部分,概念验证会随文档一同提交,以便管理员自行验证问题。

从这一阶段开始,我们只能采取一条路径:

路径描述
项目收尾在此阶段,我们只能进入项目收尾环节。该环节需要对文档进行优化改进,经过集中审核后提交给客户。

当我们已经收集了所有信息并利用了漏洞的优势时,自动化这些步骤并不需要太多努力。

34.Python 3 简介

Python是最易学的编程语言之一,同时也非常强大。这种特性使我们能够轻松实现多个步骤的自动化,并且借助代码注释,可以精确理解漏洞被逐步利用的过程。因此,一旦我们掌握Python编程语言的结构,《Python 3入门指南》将能满足我们在自动化方面的大部分需求。

项目收尾阶段

项目收尾阶段还包括清理我们利用过的系统,确保这些系统无法再通过我们使用的工具被利用。例如,如果在不需要身份验证且易于发现的Web服务器上留下绑定shell,将与我们试图达到的目标背道而驰。这种疏忽会使整个网络面临风险。因此,必须清除我们在渗透测试期间传输到系统中的所有内容,使企业网络恢复到测试前的状态。我们还需要在报告附录中记录所有系统更改、成功的漏洞利用尝试、获取的凭据以及上传的文件,以便客户能够根据收到的警报进行交叉核对,证明这些活动是我们的测试行为所致,而非实际攻击者所为。

此外,我们必须将所有的笔记与期间编写的文档进行核对,确保没有遗漏任何步骤,从而能够向客户提供全面、格式规范且整洁的报告。

35.文档与报告

我们需要掌握规范的文档编写与报告撰写方法,学会如何保持条理性并做好详细记录,同时提升写作能力以交付高质量的客户成果。通过这方面的实践能够简化报告准备工作并节省大量时间。本模块还将帮助我们优化笔记记录和工作组织方式,这些方法需要根据自身需求进行调整,以实现最高效的工作流程。

36.攻击企业网络

必须全面把握所有这些阶段、其内容及潜在挑战。攻击企业网络可能是一项艰巨的任务,我们可能会在纷繁复杂的选项面前迷失方向,甚至忽略一些基本要素。因此,我们需要熟悉如何攻击这类大型网络,并了解在拥有大量系统的网络中可能存在的漏洞。

在涵盖了渗透测试流程中学院模块的一般布局之后,我们将简要讨论 HTB 学院中练习和问题的呈现方式。

评论

  1. 1
    4 月前
    2025-12-04 16:16:43

    6

  2. jialiu
    4 月前
    2025-12-04 16:45:16

    真不错

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇