域渗透基础


测试环境

1.windows域

想象一下您自己管理一个只有五台计算机和五名员工的小型企业网络。在这样一个微型网络中,您可能可以毫无问题地单独配置每台计算机。您将手动登录到每台计算机,为任何使用它们的人创建用户,并为每个员工的帐户进行特定配置。如果用户的计算机停止工作,您可能会去他们的地方并现场修理计算机。

虽然这听起来像是一种非常轻松的生活方式,但让我们假设您的业务突然增长,现在有 157 台计算机和 320 个不同的用户,分布在四个不同的办公室。您是否仍然能够将每台计算机作为一个单独的实体进行管理,手动为网络中的每个用户配置策略并为每个人提供现场支持?答案很可能是否定的。

为了克服这些限制,我们可以使用 Windows 域。简而言之,Windows 域是一组受特定企业管理的用户和计算机。域背后的主要思想是将 Windows 计算机网络的公共组件的管理集中在一个名为**Active Directory ( AD )的存储库中。运行 Active Directory 服务的服务器称为域控制器 ( DC )**。

Windows 域概述

配置 Windows 域的主要优点是:

  • 集中身份管理:网络中的所有用户都可以轻松地从 Active Directory 进行配置。

  • 管理安全策略:您可以直接从 Active Directory 配置安全策略,并根据需要将它们应用于网络中的用户和计算机。

在学校/大学网络中,通常会为您提供一个用户名和密码,您可以在校园内的任何可用计算机上使用该用户名和密码。您的凭据对所有机器都有效,因为无论何时您在一台机器上输入它们,它都会将身份验证过程转发回 Active Directory,在那里您的凭据将被检查。多亏了 Active Directory,您的凭据不需要存在于每台机器上,并且可以在整个网络中使用。

Active Directory 也是允许您的学校/大学限制您访问学校/大学计算机上的控制面板的组件。策略通常会部署在整个网络中,因此您对这些计算机没有管理权限。

总结知识点:

  • 在windows域中,所有用户的凭据储存在一个名为Active Directory的集中存储库中。
  • 负责运行Active Directory服务的服务器名称为Domain Controller(DC)

2.活动目录(AD)

任何 Windows 域的核心都是**Active Directory 域服务 ( AD DS)**。此服务充当目录,其中包含网络上存在的所有“对象”的信息。在AD支持的众多对象中,我们有用户、组、机器、打印机、共享和许多其他对象。让我们看看其中的一些:

用户

用户是 Active Directory 中最常见的对象类型之一。用户是被称为安全主体的对象之一,这意味着他们可以通过域进行身份验证,并且可以被分配对文件或打印机等资源的特权。您可以说安全主体是一个可以作用于网络资源的对象。

用户可用于表示两种类型的实体:

  • 人员:用户通常代表组织中需要访问网络的人员,例如员工。
  • 服务:您还可以定义用户以供 IIS 或 MSSQL 等服务使用。每个服务都需要一个用户才能运行,但服务用户与普通用户不同,因为他们只拥有运行其特定服务所需的权限。

机器

机器是 Active Directory 中的另一种对象。对于加入 Active Directory 域的每台计算机,都会创建一个机器对象。机器也被认为是“安全主体”,并像任何普通用户一样被分配一个帐户。此帐户在域本身内的权限有限。

机器帐户本身是指定计算机上的本地管理员,通常不应被除计算机本身之外的任何人访问,但与任何其他帐户一样,如果您有密码,则可以使用它登录。

注意: 机器帐户密码会自动轮换出来,通常由 120 个随机字符组成。

识别计算机帐户相对容易。他们遵循特定的命名方案。计算机帐户名称是计算机名称后跟一个美元符号。例如,名为 的机器DC01将有一个名为 的机器帐户DC01$

安全组

如果您熟悉 Windows,您可能知道您可以定义用户组以将对文件或其他资源的访问权限分配给整个组而不是单个用户。这允许更好的可管理性,因为您可以将用户添加到现有组,并且他们将自动继承该组的所有权限。安全组也被视为安全主体,因此可以对网络上的资源拥有特权。

组可以同时拥有用户和机器作为成员。如果需要,组也可以包含其他组。

域中默认创建了几个组,可用于向用户授予特定权限。例如,以下是域中一些最重要的组:

安全组 描述
域管理员 该组的用户对整个域具有管理权限。默认情况下,他们可以管理域中的任何计算机,包括 DC。
服务器运营商 该组中的用户可以管理域控制器。他们不能更改任何管理组成员身份。
备份操作员 该组中的用户可以访问任何文件,而忽略他们的权限。它们用于在计算机上执行数据备份。
帐户操作员 该组中的用户可以创建或修改域中的其他帐户。
域用户 包括域中所有现有的用户帐户。
域计算机 包括域中的所有现有计算机。
域控制器 包括域中所有现有的 DC。

AD用户和计算机

查看域中存在的用户、计算机和组的层次结构。这些对象组织在组织单元 (OU)中,这些单元是允许您对用户和机器进行分类的容器对象。OU主要用于定义具有相似监管要求的用户集。例如,贵组织销售部门的人员可能应用了一组与 IT 人员不同的策略。请记住,用户一次只能是单个 OU 的一部分。

您可能已经注意到除了 THM OU之外还有其他默认容器。这些容器由 Windows 自动创建并包含以下内容:

  • 内置:包含可用于任何 Windows 主机的默认组。
  • 计算机:任何加入网络的机器都将默认放置在这里。如果需要,您可以移动它们。
  • 域控制器:包含网络中 DC 的默认OU 。
  • 用户:适用于域范围上下文的默认用户和组。
  • 托管服务帐户:持有 Windows 域中的服务使用的帐户。

3. 在AD中管理

管理用户

删除

如果您尝试右键单击并删除 OU,您将收到以下错误:

OU删除错误

默认情况下,OU会防止意外删除。要删除 OU,我们需要在视图菜单中启用高级功能:

启用高级功能

这将向您显示一些额外的容器,并使您能够禁用意外删除保护。为此,请右键单击OU并转到“属性”。您会在“对象”选项卡中找到一个复选框以禁用保护:

禁用 OU 删除保护

请务必取消选中该框并再次尝试删除OU。系统将提示您确认是否要删除 OU,因此,它下的任何用户、组或 OU 也将被删除。

委派

让特定用户对某些 OU 有一定的控制权,此过程称为委派 。它允许您授予用户特定权限以在 OU 上执行高级任务,而无需域管理员介入。

最常见的用例之一是授予IT support重置其他低权限用户密码的权限。根据我们的组织结构图,Phillip 负责 IT 支持,因此我们可能希望将对销售、营销和管理 OU 的密码重置控制权委托给他。

对于此示例,我们将把对销售OU 的控制委托给 Phillip。要委派对 OU 的控制,您可以右键单击它并选择Delegate Control

委派 OU 控制

这应该会打开一个新窗口,您首先会在其中询问您要向其委派控制权的用户:

注意:为避免输入错误的用户名,请输入“phillip”并单击“检查姓名”按钮。Windows 将为您自动完成用户。

将销售 OU 委派给 Phillip

单击“确定”,然后在下一步中选择以下选项:

委托密码重置

以下命令用于:被委派可以重置用户密码的Phillip用户,重置sophie用户的密码。

PS C:\Users\phillip> Set-ADAccountPassword sophie -Reset -NewPassword (Read-Host -AsSecureString -Prompt 'New Password') -Verbose

New Password: *********

VERBOSE: Performing the operation "Set-ADAccountPassword" on target "CN=Sophie,OU=Sales,OU=THM,DC=thm,DC=local".

管理计算机

默认情况下,所有加入域的机器(DC除外)都将放在名为“Computers”的容器中。如果我们检查我们的 DC,我们会看到一些设备已经存在:

电脑OU

我们可以看到一些服务器,一些笔记本电脑和一些个人电脑对应于我们网络中的用户。拥有我们所有的设备并不是最好的主意,因为您很可能希望为您的服务器和普通用户每天使用的机器制定不同的策略。

虽然没有关于如何组织机器的黄金法则,但一个很好的起点是根据用途隔离设备。通常,您希望看到的设备至少分为以下三类:

1.工作站

工作站是 Active Directory 域中最常见的设备之一。域中的每个用户都可能登录到工作站。这是他们将用来完成工作或正常浏览活动的设备。这些设备永远不应有特权用户登录。

2. 服务器

服务器是 Active Directory 域中第二常见的设备。服务器一般用于为用户或其他服务器提供服务。

3.域控制器

域控制器是 Active Directory 域中第三大最常见的设备。域控制器允许您管理 Active Directory 域。这些设备通常被认为是网络中最敏感的设备,因为它们包含环境中所有用户帐户的散列密码。

4.身份认证协议

使用 Windows 域时,所有凭据都存储在域控制器中。每当用户尝试使用域凭据对服务进行身份验证时,该服务将需要请求域控制器验证它们是否正确。Windows 域中可以使用两种协议进行网络身份验证:

  • Kerberos:由任何最新版本的 Windows 使用。这是任何最近域中的默认协议。
  • NetNTLM:为兼容性目的而保留的旧身份验证协议。

虽然 NetNTLM 应该被认为已过时,但大多数网络都会同时启用这两种协议。让我们更深入地了解这些协议中的每一个是如何工作的。

Kerberos 认证

Kerberos 身份验证是任何最新版本的 Windows 的默认身份验证协议。使用 Kerberos 登录服务的用户将被分配票证。将票视为先前身份验证的证明。拥有票证的用户可以将它们出示给服务,以证明他们之前已经通过网络身份验证,因此可以使用它。

当使用 Kerberos 进行身份验证时,会发生以下过程:

用户将他们的用户名和使用从他们的密码派生的密钥加密的时间戳发送到**密钥分发中心 (KDC)**,该服务通常安装在负责在网络上创建 Kerberos 票证的域控制器上。

KDC 将创建并发回票证授予票证 ( TGT ), 这将允许用户请求额外的票证以访问特定服务。需要一张票才能获得更多的票可能听起来有点奇怪,但它允许用户在每次想要连接到服务时无需传递其凭据即可请求服务票。与TGT一起,一个Session Key被提供给用户,他们将需要它来生成以下请求。

Kerberos 第 1 步

请注意,TGT是使用krbtgt帐户的密码哈希加密的,因此用户无法访问其内容。必须知道加密的TGT包括会话密钥的副本作为其内容的一部分,并且 KDC 无需存储Session Key,因为它可以在需要时通过解密 TGT 来恢复副本。

-

当用户想要连接到网络上的服务(如共享、网站或数据库)时,他们将使用他们的TGT向 KDC 请求票证授予服务 (TGS) 。TGS 是只允许连接到为其创建的特定服务的票证。要请求 TGS,用户将发送他们的用户名和使用会话密钥加密的时间戳,以及TGT和服务主体名称 (SPN),后者指示我们打算访问的服务和服务器名称。

因此,KDC 将向我们发送一个 TGS 以及一个Service Session Key,我们需要用它来验证我们想要访问的服务。TGS 使用从 服务所有者哈希派生的密钥进行加密。服务所有者是运行服务的用户或机器帐户。TGS 在其加密内容上包含服务会话密钥的副本,以便服务所有者可以通过解密 TGS 来访问它。

Kerberos 第 2 步

然后可以将 TGS 发送到所需的服务以进行身份验证并建立连接。该服务将使用其配置的帐户密码哈希来解密 TGS 并验证服务会话密钥。

Kerberos 第 3 步

NetNTLM 身份验证

NetNTLM 使用质询-响应机制工作。 整个过程如下:

NetNTLM 身份验证

  1. 客户端向他们要访问的服务器发送身份验证请求。
  2. 服务器生成一个随机数并将其作为挑战发送给客户端。
  3. 客户端将他们的 NTLM 密码哈希与质询(和其他已知数据)结合起来生成对质询的响应并将其发送回服务器以进行验证。
  4. 服务器将质询和响应转发给域控制器进行验证。
  5. 域控制器使用质询重新计算响应并将其与客户端发送的原始响应进行比较。如果它们都匹配,则客户端通过身份验证;否则,访问被拒绝。认证结果被发送回服务器。
  6. 服务器将认证结果转发给客户端。

请注意,出于安全考虑,用户的密码(或哈希)永远不会通过网络传输。

注意:所描述的过程适用于使用域帐户的情况。如果使用本地帐户,服务器可以验证对质询的响应,而不需要与域控制器交互,因为它在其 SAM 上本地存储了密码哈希。

5.域的结构

Active Directory 支持集成多个域,因此您可以将网络划分为可以独立管理的单元。如果您有两个共享相同名称空间的域(以thm.local为例),则可以将这些域加入到中。

如果我们的thm.local域分为英国和美国分支机构的两个子域,您可以构建一个树,其中包含一个根域thm.local和两个名为uk.thm.local和 的子域us.thm.local,每个子域都有其AD、计算机和用户:

树

这种分区结构使我们能够更好地控制谁可以访问域中的内容。来自英国的 IT 人员将拥有自己的DC,仅管理英国的资源。例如,英国用户将无法管理美国用户。这样,每个分支机构的域管理员将完全控制各自的 DC,但不能控制其他分支机构的 DC。也可以为树中的每个域独立配置策略。

在谈论树木和森林时,需要引入一个新的安全组。Enterprise Admins组将授予用户对企业所有域的管理权限。每个域仍然会有其域管理员对其单个域拥有管理员权限,而企业管理员则可以控制企业中的一切。

森林

您管理的域也可以配置在不同的命名空间中。假设您的公司继续发展并最终收购了另一家公司MHT Inc.,当两家公司合并时,您可能会为每个公司拥有不同的域树,每个公司都由自己的 IT 部门管理。将具有不同名称空间的几棵树联合到同一个网络中称为森林

森林

信任关系

在树和森林中组织多个域可以让您在管理和资源方面拥有一个很好的划分网络。但在某个时刻,THM UK 的用户可能需要访问 MHT ASIA 服务器之一中的共享文件。为此,排列在树和森林中的域通过信任关系连接在一起。

简单来说,在域之间建立信任关系可以授权域中的用户 THM UK访问域中的资源 MHT EU

可以建立的最简单的信任关系是单向信任关系。在单向信任中,如果Domain AAAtrusts Domain BBB,这意味着 BBB 上的用户可以被授权访问 AAA 上的资源:

信托

单向信任关系的方向与访问方向相反。

还可以建立双向信任关系以允许两个域相互授权来自另一个域的用户。默认情况下,将多个域加入一棵树或森林下将形成双向信任关系。

请务必注意,在域之间建立信任关系不会自动授予对其他域上所有资源的访问权限。建立信任关系后,就有机会授权跨不同域的用户,但实际授权与否取决于管理员。


文章作者: Summer One
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Summer One !
  目录