​Windows域关系学习攻略

阅读量    109326 |

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

 

本文作者:掉到鱼缸里的猫(Ms08067内网安全小组成员)

说明:本文仅在Windows Server 2016 R2上进行测试,不保证其他版本环境下结果一致。

 

1. 基本概念

1.1域是什么

Windows网络操作系统的安全边界,域内主机各种策略由域控制器统一设定,域中所有主机共享一个集中式的目录数据库,包含着整个域内的对象。父域和子域之间构成域树,多个域树构成域林,林中的第一个被创建的域,作为该林的根域。Windows NT中,名称空间是平行的,尽管可以将NT域配置为彼此信任,但每个域都是一个完全独立的实体。

目录林根级域包含 Enterprise Admins 和 Schema Admins 组。这些服务管理员组用于管理林级操作,例如添加和删除域以及实现架构更改。

1.2 信任方向:

A. 内传(内向信任,Direct Inbound):信任此域的域,这个域(当前域)中的用户,可以在指定域、领域或林中得到身份验证。
B. 外传(外向信任,Direct Outbound):受此域信任的域,指定的域、领域或林中的用户可以在这个域中得到身份验证。
C. 双向:内传 + 外传

1.3 信任传递

企业内部来自间接信任域的用户可以在信任域中进行身份验证。

1.4 信任类型

A. 外部信任:林外部的两个域之间的不可传递的信任。
B. 林信任:两个林之间的可传递信任,允许一个林中的任何域中用户在另一个林中的任何域收到身份验证。只有林的根域之间才可以使用这个选项。

  1. 身份验证级别:
    全域性身份验证:windows将自动对指定域用户使用本地域的所有资源进行身份验证,在默 认情况下可以进行IPC连接。
    选择性身份验证:windows将不会自动对指定域的用户使用本地域的任何资源进行身份验证,需要由管理员向指定域用户授予每个服务器的访问权。

这样一来,域之间的相互信任关系就可以大致分为三类:林中父子域、林中树和树、不同林的域之间的信任关系。

 

2. 林中的信任关系

2.1 父子域

实验环境:
dc1:创建域 lab1.local ,作为父域,同时也是该林的根。
dc2:作为子域 sub.lab1.local 加入父域 lab1.local
加入域之前,dc2是无法查询到域中的任何信息

加入域(查询目标域,可以使用域用户,但是加入域的时候需要使用域管理员用户的凭据)

加入域之后可以查询到信任关系如下:

可以查询另外的域中的信息,并且两个域之间的身份凭据是相互认可的。

但是在没有分配权限时,是没有权限访问远程目录的;同时父域用户因为未在子域中登记,所以无法通过认证。

但是父域的域管用户可以访问子域的资源,而子域的域管用户没有父域的权限。

2.2 林中树之间

实验环境:
dc1:创建域 lab1.local
dc2:作为子域 sub.lab1.local 加入父域 lab1.local
dc3:作为林中的另一个树 lab3.local

信任情况如下:可以看到, lab1.local 和 lab3.local 之间存在双向信任,但是 lab3.local 和sub.lab1.local 之间没有方向记录。

此时 lab3.local 域中用户可以查询同林 lab1.local 以及其子域 sub.lab1.local 的信息,用户凭据也可得到认证。

此时林根的域管用户可以访问 lab3.local 的资源,但是 lab3.local 的域管用户没有其他资源的权限。

查询林根域的方法:

powershell:

Get-ADRootDSE|select rootDomainNamingContext

vbs:

Set objRootDSE = GetObject("LDAP://RootDSE")
Wscript.Echo "Root Domain: " &![](https://p3.ssl.qhimg.com/t0159e463b55f01469d.png)
objRootDSE.Get("RootDomainNamingContext")

 

3. 不同林中的信任关系

实验环境:

dc1:创建域 lab1.local
dc2:创建子域 sub.lab1.local
dc3:创建域树 lab3.local
dc4:创建域 lab4.local

3.1 外部信任

3.1.1 两个林根域之间

单向外传信任
使用全域性身份验证时,信任查询如下:对于lab4是传出,则对于lab1就是传入。

lab1 的用户身份在 lab4 中可以得到有效认证,但是在未授权的情况下无法访问资源:

而子域 sub.lab1.local 和同林树域 lab3 中的用户无法在 lab4 中得到认证。

使用选择性身份认证时,当不进行任何配置时,lab1的用户无法通过lab4的认证:

单向内传信任
信任关系查询

选择性身份验证时,lab4的用户无法进行身份验证。

修改为全域认证后,可以访问 lab1 ,但是无法访问子域和同林域。

3.1.2 外部域和子域之间

单向外传信任时,信任关系查询结果:

这里虽然通过命令无法查询到,但是直接查看子域的信任关系属性,是可以看到的:

仅 lab4 可以查询 sub , lab1 、 lab3 均无法查询:

修改为双向之后,仅 sub 、 lab4 之间可以互相认证, lab3 、 lab1 与 lab4 之间均无法查询:

3.1.3 外部域与林中树

仅在 lab3 和 lab4 之间可以查询到信任关系,同样通过可视化工具可以在其他域控(比如 dc2 )上查询到 lab3 和 lab4 之间的信任记录,此时, lab3 和 lab4 之间可以完成用户的认证, lab1 、 sub 与lab4 之间无法完成。

 

4. 林信任

林根域和其他林的子域、树根域之间只能外部信任
添加林之间的信任时会提示目标林中的其他名称后缀情况:
添加双向信任后:

添加信任后,两个林之间所有的域用户身份都可以在其他域中得到认证:

 

5. 总结

默认配置下:

1.父域和子域之间:自动产生可传递的双向信任关系,两个域之间的身份凭据相互认可,同时父域管理员可以访问子域资源,反之不行。
2.林中的树之间:树根之间自动产生双向可传递信任关系,另一个域树的子域也会显示出来(但是不 会显示信任传递方向),任意域的用户在其他域中都可以得到认证,仅林根域管理员具有其他同林 域资源的访问权限。

外部信任:只能访问参与配置的域的信息(也就是 nltest中有显示的域),无法获取到林中其他域的信息。

林信任:任意域之间的用户都能得到认证。
林根域之间的外部信任和林信任的区别:
林信任下,另一个根域的信任信息中会标记 Attr: 0x8;
外部信任则是 Attr: quarantined

外传、内传是站在命令执行者角度观察;只有参与配置的两个域之间可以通过 nltest命令查询到另一方。
dsquery和 net use在不同情形下的提示:

 

6. 在其他主机中使用dsquery

在其他主机上无法使用dsquery,因为没有这个程序 这不是废话

以win10 为例,将2016 的文件拷出
dsquery.exe.mui 放入:C:\Windows\zh-CN
dsquery.exe 放入:C:\Windows\System32
使用PTH可以进行查询

但是IPC不行

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多