域渗透基础知识
Active Directory 基础知识
Windows域
当一个区域有多台计算机,难以逐个管理时,通常会将这些计算机的通用组件的管理集中在一个被称为Active Directory(AD)的存储库中,运行AD的服务器被称为DC(域控制器)
管理员通过控制AD从而控制其他计算机,并在AD中配置策略应用到网络中。
AD
AD中包含很多对象,包括用户,机器,安全组,打印机等。
域中比较重要的安全组:
安全组 | 描述 |
---|---|
Domain Admins | 该组的用户拥有整个域的管理权限。默认情况下,他们可以管理域中的任何计算机,包括 DC。 |
Server Operators | 此组中的用户可以管理域控制器。他们无法更改任何管理组成员身份。 |
Backup Operators | 此组中的用户可以访问任何文件,而不受其权限的限制。它们用于执行计算机上的数据备份。 |
Account Operators | 该组中的用户可以创建或修改域中的其他帐户。 |
Domain Users | 包括域中所有现有的用户帐户。 |
Domain Computers | 包括域中所有现有的计算机。 |
Domain Controllers | 包括域中所有现有的 DC。 |
https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-groups 官方文档
OU用于对用户和机器进行分类,OU下可以有多个子OU,可以将OU类比成文件夹,而用户相当于里面的文件。
在 AD 中管理用户
委托:现在将某一OU的权限转移给另外一个OU下的用户,而无需域管理员的介入,称为委托。
然后选择需要委托的权限
然后phillip用户就有修改密码的权限了,这里的话如果通过 Active Directory Users and Computers 去修改密码是没权限的,就登录不了,然后就利用powershell进行修改密码
1 |
|
上面就是修改成功了,注意密码不能设置太过简单。
在 AD 中管理计算机
根据设备的用途对其进行分类。
1.Workstations
工作站是 Active Directory 域中最常见的设备之一。域中的每个用户都可能登录工作站。这是他们用来工作或进行正常浏览活动的设备。这些设备绝不应该有特权用户登录。
2. Servers
服务器是 Active Directory 域中第二常见的设备。服务器通常用于向用户或其他服务器提供服务。
3. Domain Controllers
域控制器是 Active Directory 域中第三大最常见的设备。域控制器允许您管理 Active Directory 域。这些设备通常被视为网络中最敏感的设备,因为它们包含环境中所有用户帐户的哈希密码。
组策略
首先创建一个GPO的合集,里面相当于是一些制定的规则 然后再应用到不同的OU中,如上图所示。同时,一个GPO影响 链接到的OU及其子OU。
上面是GPO的一些设置信息,里面包含不同的策略。
GPO分发
GPO 通过名为 SYSVOL
的网络共享分发到网络,该共享存储在 DC 中。域中的所有用户通常都应能够通过网络访问此共享,以定期同步其 GPO。SYSVOL 共享默认指向C:\Windows\SYSVOL\sysvol\
.
1 |
|
身份验证方法
使用 Windows 域时,所有凭据都存储在域控制器中。每当用户尝试使用域凭据向服务进行身份验证时,该服务都需要请求域控制器验证它们是否正确。Windows 域中的网络身份验证可以使用两种协议:
- Kerberos:任何较新版本的 Windows 均使用 Kerberos。这是任何较新域中的默认协议。
- NetNTLM:为了兼容性目的而保留的旧式身份验证协议。
Kerberos身份验证
Kerberos身份验证是 Windows 最新版本的默认身份验证协议。使用Kerberos登录服务的用户将被分配票证。将票证视为先前身份验证的证明。拥有票证的用户可以将其出示给服务,以证明他们之前已通过网络身份验证,因此可以使用该服务。
当使用Kerberos进行身份验证时,会发生以下过程:
用户将其用户名和使用从其密码派生的密钥加密的时间戳发送到**密钥分发中心 (KDC)**,该服务通常安装在域控制器上,负责在网络上创建Kerberos票证。
KDC 将创建并返回一个票证授予票证 ( TGT ),这将允许用户请求更多票证以访问特定服务。需要票证才能获得更多票证听起来可能有点奇怪,但它允许用户在每次想要连接到服务时请求服务票证而无需传递其凭据。除了 TGT 之外,还会向用户提供会话密钥,他们将需要该密钥来生成以下请求。
请注意,TGT是使用krbtgt帐户的密码哈希加密的,因此用户无法访问其内容。必须知道,加密的TGT包含会话密钥的副本作为其内容的一部分,并且 KDC 无需存储会话密钥,因为它可以通过解密TGT来恢复副本(如果需要)。
当用户想要连接到网络上的服务(如共享、网站或数据库)时,他们将使用其TGT向 KDC 请求票证授予服务 (TGS)。TGS 是仅允许连接到为其创建的特定服务的票证。要请求 TGS,用户将发送使用会话密钥加密的用户名和时间戳,以及 TGT和服务主体名称 (SPN),后者指示我们打算访问的服务和服务器名称。
因此,KDC 将向我们发送 TGS 以及服务会话密钥,我们需要该密钥来验证我们要访问的服务。TGS 使用从 服务所有者哈希派生的密钥进行加密。服务所有者是服务在其下运行的用户或机器帐户。TGS 在其加密内容中包含服务会话密钥的副本,以便服务所有者可以通过解密 TGS 来访问它。
然后,TGS 可以发送到所需的服务以进行身份验证并建立连接。该服务将使用其配置的帐户的密码哈希来解密 TGS 并验证服务会话密钥。
NetNTLM 身份验证
NetNTLM 采用质询-响应机制。 整个过程如下:
- 客户端向其想要访问的服务器发送身份验证请求。
- 服务器生成一个随机数并将其作为挑战发送给客户端。
- 客户端将其NTLM密码哈希与质询(和其他已知数据)相结合,以生成对质询的响应并将其发送回服务器进行验证。
- 服务器将质询和响应转发给域控制器进行验证。
- 域控制器使用该质询重新计算响应,并将其与客户端发送的原始响应进行比较。 如果两者匹配,则客户端通过身份验证; 否则,访问被拒绝。 身份验证结果将发送回服务器。
- 服务器将认证结果转发给客户端。
树木、森林和信托
树
假设一家公司下面,有两个分公司,这样相互组成了一个树。
森林
假设一家公司不仅再本国有公司,在其他国家也有公司,这样组合在一起就构成了一个森林。
具体的话就是将具有不同命名空间的树组合到一个网络中,就构成了森林。
信托
当一个树中的某个用户,需要访问另外一个树中的用户时,这就需要建立信任关系,分为单向信任和双向信任。