AD攻击活动目录(0-9)翻译 一

AD攻击活动目录(0-9)翻译 一

为了深入对域内相关知识有一个系统化的学习,对github大牛的博客进行翻译学习,加强自己对内网相关知识的掌握。
项目源地址

https://zer1t0.gitlab.io/posts/attacking_ad/

**

一.什么是Active Directory

**
简单来说,Active Directory 是一个允许从中央服务器管理连接在同一网络中的一组计算机和用户的系统。

当然,这个定义远非完全准确,但是通过更为简单的解释,让您了解什么是 AD。

       ____                         __ 
  o   |    |                       |==|
 /|\  |____| <--------.    .-----> |  |
 / \  /::::/          |    |       |__|
                      v    v
                       .---.
                      /   /|
                     .---. |
                     |   | '
                     |   |/ 
                     '---'  
       ____          ^    ^        ____ 
  o   |    |         |    |       |    |  \o/
 /|\  |____| <-------'    '-----> |____|   | 
 / \  /::::/                      /::::/  / \

想象一家拥有数百名员工的公司,每个人都在自己的(可能是 Windows)计算机上工作。这家公司有几个不同的部门,如销售、人力资源、IT 等。

现在想象一下,销售部门需要在他们的工作站中安装一个新程序。或者每天不同办公室的用户忘记密码,需要恢复密码。或者说新的实习生组只需要处理文件服务器的几个文件。

IT 团队是否应该在所有销售工作站中一一安装该程序?他们应该去不同的办公室并恢复用户密码吗?他们是否应该为文件服务器中的每个实习生创建一个只允许查看目录中文件的新用户?

为了减少工作量和资金投入,他们的所有计算机都连接在一个 Active Directory 网络中,因此他们可以从他们的工作站执行所有这些操作。

Active Directory 通过维护一个集中的数据库来实现这一点,其中存储了有关用户、计算机、策略、权限等的所有信息。因此,例如,IT 团队可以连接到该数据库并为实习生创建新用户,并为他们分配权限,使其只能读取其部门特定服务器的指定目录中的文件。

然后,当其中一名实习生尝试登录 Active Directory 网络内的计算机时,该计算机会查询中央数据库以检查实习生用户是否存在(以及密码是否正确)。这样,用户可以登录到公司的任何计算机(如果他们有权限),允许员工仅使用一个用户在公司的所有计算机(可以是工作站、数据库服务器、文件服务器、等等)。

同样,如果用户忘记了密码,她可以提醒 IT 团队,他们可以更改此中央数据库中的用户密码(并要求用户将此密码更改为只有她知道的新密码)。

在销售部门的情况下,IT 可以在数据库中创建一个新策略,指示该部门的计算机必须安装指定的程序,以及他们必须如何安装。然后,当销售工作站读取数据库时,他们就会知道他们必须执行此策略,并且将安装新程序。

我希望这个示例能让您理解为什么 Active Directory 如此有用,以及为什么世界上几乎所有(中型)组织都在使用它。可能您已经使用过它,通常是从要求您在提示您输入用户名和密码之前按 Ctrl+Alt+Del 的计算机上使用的。

而且……如果有人可以窃取 IT 用户的密码会怎样?她可以更改其他用户的密码吗?并访问数据库?

我们现在清楚了为什么 Active Directory 如此重要。

首先,我们所说的 Active Directory 网络就是通常所说的域。域是一组连接的计算机,它们共享一个 Active Directory 数据库,由域的中央服务器管理,这些服务器称为域控制器。
**

域名

**
每个域都有一个 DNS 名称。在许多公司中,域名称与其网站名称相同,例如contoso.com,而其他公司则具有不同的内部域,例如contoso.local.

(识别用户域)
PS C:\Users\Anakin> $env:USERDNSDOMAIN
CONTOSO.LOCAL
PS C:\Users\Anakin> (Get-ADDomain).DNSRoot
contoso.local
(识别计算机域)
PS C:\Users\Anakin> (Get-WmiObject Win32_ComputerSystem).Domain
contoso.local

除了它的DNS 名称,每个域也可以用 NetBIOS 名称来识别。例如,域contoso.local可能具有NetBIOS 名称 CONTOSO。您可以看到在登录操作中使用的 NetBIOS 名称,其中用户用类似的东西标识CONTOSO\Administrator,其中第一部分是 NetBIOS 名称,第二部分是用户名。

最后,域可以通过其SID(安全标识符)来标识。程序(使用 Windows API)比用户更多地使用 SID,但您应该知道如何获取它,以备不时之需。

(获取域的 DNS 名称、NetBIOS 名称和 SID)
PS C:\Users\Anakin> Get-ADDomain | select DNSRoot,NetBIOSName,DomainSID

DNSRoot       NetBIOSName DomainSID
-------       ----------- ---------
contoso.local CONTOSO     S-1-5-21-1372086773-2238746523-2939299801

域森林

使用 DNS 名称非常有用,因为它允许为管理目的创建子域。例如,一家公司可以有一个名为的根域contoso.local,然后是不同(通常是大)部门的子域,例如it.contoso.local或sales.contoso.local。

Active Directory 提供了许多组织基础架构的方法,因此组织使用子域的方式各不相同,有些为部门创建子域,而另一些则将它们用于不同的办公室。
             contoso.local
                    |
            .-------'--------.
            |                |
            |                |
     it.contoso.local hr.contoso.local
            | 
            |
            |
  webs.it.contoso.local

上面这种域树称为Forest。林的名称与树的根域的名称相同。

PS C:\Users\Anakin> Get-ADForest


ApplicationPartitions : {DC=DomainDnsZones,DC=contoso,DC=local, DC=ForestDnsZones,DC=contoso,DC=local}
CrossForestReferences : {}
DomainNamingMaster    : dc01.contoso.local
Domains               : {contoso.local}
ForestMode            : Windows2016Forest
GlobalCatalogs        : {dc01.contoso.local, dc02.contoso.local}
Name                  : contoso.local
PartitionsContainer   : CN=Partitions,CN=Configuration,DC=contoso,DC=local
RootDomain            : contoso.local
SchemaMaster          : dc01.contoso.local
Sites                 : {Default-First-Site-Name}
SPNSuffixes           : {}
UPNSuffixes           : {}

在森林中,每个域都有自己的数据库和自己的域控制器。但是,林中域的用户也可以访问林中的其他域 。

这意味着,即使域可以是自治的,无需与其他域交互,从安全角度来看,它也不是孤立的,因为正如我们将看到的,来自域的用户可以访问同一域中其他域的资源森林(默认)。但是,默认情况下,一个林的用户无法访问其他林的资源,因此可以提供安全隔离的逻辑结构就是林。

简单来说,每个域都有自己的域控制器,所以如果一个部门发展得难以置信,你可能需要专门的域控制器来处理该部门所有计算机的请求。您可以通过创建一个新的子域来实现这一点,并且用户仍然可以访问同一林的其他子域中的计算机。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值