域的基础概念

本文深入介绍了Windows域的基础概念,包括域结构、AGDLP策略、OU与组策略、信任关系、FSMO角色以及Kerberos认证流程,为理解内网管理和渗透测试提供了基础。
摘要由CSDN通过智能技术生成

初具规模的办公网络通常以Windows域的形式进行管理,域在内网渗透中的地位举足轻重,本文主要介绍域的基础概念,为后续域渗透的介绍做铺垫

部分内容参考文章:https://blog.csdn.net/wulantian/article/details/42418231

1.域结构关系

域的结构关系

图1 域的结构关系

  • 活动目录:Active Directory(AD),是一种结构化数据存储目录服务,包含了用户、用户组、计算机、域、组织单位(OU)以及安全策略等对象信息
  • 域树:由多个域组成,同一个域树中共享连续的命名空间
  • 域林:由一个或多个域树组成,同一个林中多个域树之间不能共享连续的命名空间,比如已存在树根域a.com,新建的树根域则不能命名为b.a.com
  • 林根域:域林中部署的第一个域,同时也是目录林根级域,其中包含Enterprise AdminsSchema Admins组,这两个管理员组中的成员可以对其所在域林进行添加、删除域等更改域架构的操作
  • 父域、子域:域树节点之间的相对性结构关系,父域派生子域,子域也可成为其他域的父域,共享连续的命名空间

2.AGDLP

从类型区分域组:

  • 安全组:具有安全标识(SID),主要用于授权访问资源,也可以用于群发电子邮件
  • 通讯组:没有安全标识(SID),不能授权访问资源,只能用于群发电子邮件

从作用范围区分域组:

  • 域本地组:组中成员可以来自域林中所有的域,用于授权访问本域资源
  • 全局组:组中成员来自本域,用于授权访问域林中所有域的资源
  • 通用组:组中成员来自域林中所有的域,用于授权访问域林中所有域的资源

AGDLP(A:User Account ,G:Global Group,DL:Domain Local Group,P: Permission)是在多域森林中使用的高效的安全组管理方法,用于授权资源访问权限,具体为:在用户域(有访问需求的用户所在的域)中,将本域里有相同访问需求的用户加入到同一个全局组,在资源域(需要被访问的资源所在的域)中,为不同的访问需求类型创建相应的域本地组,然后将之前的全局组加入到相应的域本地组,最后对域本地组赋予相应的权限,实现资源的授权访问。

注意:计算机加入域后,本地组即变为域本地组,系统会默认将全局组Domain Admins加入(域)本地组Administrators,但是以本机登录的管理员可以将Domain Admins从(域)本地组Administrators中删除,这样域管理员就会失去对该计算机的管理权限。

3.OU和组策略

OU(Organization Unit)是AD的容器,可在其中存放用户、用户组、计算机和其他OU等对象,针对其配置组策略,注意同一个对象只能存在于一个OU中,但可以存在于多个组中

GPO(Group Policy Object)是存储组策略配置的对象,配置组策略时,将GPO对象链接到相应的站点、域和OU,其中OU是GPO链接的基本单元

组策略的应用规则:

  • 策略继承:子容器默认继承父容器的GPO,也可以选择阻止继承
  • 强制策略:选择强制继承将覆盖子容器的组策略,此时子容器的阻止继承无效
  • 策略冲突:如果多个组策略不冲突,则最终有效策略是所有组策略的累加,如果组策略设置冲突,按照“OU>域>工作站>本地,后设置的组策略优先级高”的原则应用
  • 策略筛选:将GPO的应用范围限定到具体的用户或组,在GPO的作用域选项中,通过配置安全筛选中的组或用户实现。默认Authenticated Users(除Guest组外所有成功登录的用户)都可以应用该GPO,若要限定具体的用户或组,则先要将Authenticated Users删除,如下图所示:

GPO策略筛选配置

图2 GPO策略筛选配置

  • 权限委派:将个别用户或组作为组策略应用的例外,不去应用组策略,在GPO的委派选项中,通过高级选项可以配置指定用户或用户组对GPO的应用权限,如在应用组策略的权限配置中勾选拒绝,如下图所示:

GPO权限委派配置

图3 GPO权限委派配置

4.信任关系

信任关系有方向区分,A信任B,则B可以访问A的资源和服务,只有当A和B之间双向信任时,两者之间才能相互访问;信任关系具有可传递性,A信任B,B信任C,则A信任C。

从作用范围区分信任关系:

  • 林中信任:林中信任关系分为父子信任和树根信任。父子信任指同一个树域中父域和子域之间建立的可传递的信任关系;树根信任指同一个林域中树根域之间的可传递的信任关系。林中信任是无条件双向信任,在域建立时即存在,且不可删除

  • 林间信任:林间信任关系分为外部信任和林信任。外部信任指不同林的域之间建立的不可传递的信任关系;林信任指多个林的林根域之间建立的可传递的信任关系,因为域林中林根域和林中其他域之间无条件双向信任,所以林间信任建立后相应的信任关系也会传递到林中的域之间。林间信任需要自己创建

注意:
① 信任关系在域之间建立了一种资源访问的可能性,而非必然性,访问资源的前提是对方已经分配了可供访问的资源;

② 建立林间信任关系首先需要创建DNS正向解析,使得受信域的FQDN能够被信任域解析。

5.FSMO角色

首先区分单主机复制和多主机复制:

  • 单主机复制:NT4.0 AD服务区分主域控(PDC)和备份域控(BDC),PDC负责域的所有管理工作,BDC只从PDC复制数据作为备份,数据的修改工作只能在PDC上完成,然后从PDC向BDC同步数据
  • 多主机复制:NT5.0 AD服务中使用多个DC,不分主次,DC的作用由FSMO角色(Flexible Single Master Operation,灵活单主机操作)确定,所有的DC都是等价的,在任意一台上修改数据,都会被同步到其他的DC上

NT5.0 AD服务的域森林中共有5种FSMO角色:

(1)森林级别(一个域林只有一台DC有这个角色)

  • 架构主控(Schema Master):控制AD目录域森林中所有对象和属性的定义
  • 域命名主控(Domain Naming Master):负责域森林范围内域的添加或者删除

(2)域级别(一个域只有一台DC有这个角色)

  • PDC仿真器(PDC Emulator):兼容低版本设备,担任PDC角色;担任本域时间同步服务器;负责账号登录和身份验证服务;首选的组策略存放位置
  • RID主控(RID Master):Windows操作系统以SID作为标识区分用户,域内的用户SID=Domain SID+RID,RID主控的作用即分配可用RID池给域内的DC以避免SID重复
  • 结构主控(Infrastructure Master):当用户所属组或OU发生变化时,用于更新组的成员列表

6.Kerberos认证

工作组中安全认证采用NTLM协议,域环境中安全认证采用Kerberos协议,Kerberos认证过程中主要有三个角色:KDC、Server、Client,如下图所示:

在这里插入图片描述

图4 Kerberos认证基本过程

首先明确几个概念:

  • Long-term Key/Master Key:长期不变的Key或由此派生的Key被称为Long-term Key,为保证安全性,Long-term Key加密的数据不应该在网络上传输。我们将账号密码的Hash值称为Master Key,Master Key即是一种Long-term Key

  • Short-term Key/Session Key:由于被Long-term Key加密的数据包不能用于网络传送,所以我们使用另一种Short-term Key来加密需要进行网络传输的数据,这种Key一般由系统随机生成,只在一段时间内有效,从而避免Key被暴力破解。KDC、Server、Client三者之间通信采用Session Key,该Key即是一种Short-term Key

  • Authenticator:用于Client证明自身身份,由Client的一些信息和当前系统的时间戳构成,用Session Key将其加密并发送给Server,Server收到后用Session Key将其解密,首先验证时间戳的有效性,然后对比Client信息的真实性,这里要保证Session Key只有通信双方知道

  • krbtgt账户:创建域时在KDC服务框架中系统自动创建的一个账号,无法登陆,在Kerberos认证过程中主要用于使用其NTLM HASH值加密TGT

Kerberos认证过程包括3个Sub Protocol:

(1)Authentication Service (AS) Exchange

① Client向KDC的身份认证服务AS发送认证服务请求(KRB_AS_REQ),内容包括用Client的Master Key加密的时间戳以及域名\用户名、服务名等信息;

② AS根据KRB_AS_REQ提供的域名\用户名在AD中找到对应的Master Key,对加密的时间戳信息进行解密,并与当前系统时间进行比较验证其有效性(默认误差5min以内有效),验证有效后AS将一份认证服务应答(KRB_AS_REP)发送给Client,内容主要包括两个部分:用Client的Master Key加密的Session Key(SKDC-Client)和用自己(KDC中krbtgt的Master Key)加密的TGT(Ticket Granting Ticket),其中TGT包含SKDC-Client、域名\用户名、TGT到期时间等信息

(2)Ticket-Granting Service (TGS) Exchange

③ Client通过自己的Master Key对KRB_AS_REP的第一部分解密获得SKDC-Client,之后向KDC的票据授权服务TGS发送票据授权服务请求(KRB_TGS_REQ),内容包括TGT、用SKDC-Client加密的Authenticator、域名\用户名、服务名等信息;

④ TGS收到KRB_TGS_REQ后,先用krbtgt的Master Key解密TGT,得到SKDC-Client,再用SKDC-Client解密Authenticator,时间戳验证通过后向Client发送票据认证服务应答(KRB_TGS_REP),包括使用SKDC-Client加密过的用于Client和Server的Session Key(SServer-Client)和使用Server的Master Key进行加密的Ticket(ST),其中Ticket包括SServer-Client、域名\用户名、Ticket到期时间等信息

(3)Client/Server Authentication Exchange

⑤ Client收到KRB_TGS_REP后使用SKDC-Client解密第一部分获得SServer-Client,有了SServer-Client和Ticket,Client就可以之间和Server进行交互,无须再通过KDC作中间人。随后Client创建Authenticator,用于证明自己就是Ticket的真正所有者,并使用SServer-Client进行加密,然后将加密过的Authenticator和Ticket作为应用服务请求(KRB_AP_REQ)发送给Server;

⑥ Server接收到KRB_AP_REQ之后,通过自己的Master Key解密Ticket,从而获得SServer-Client,通过SServer-Client解密Authenticator,进而验证对方的身份。验证成功,则让Client访问需要访问的资源,否则拒绝对方的请求。

注意:
① Ticket基于某个具体的Server,而TGT和具体的Server无关,Client可以使用一个TGT从KDC获得基于不同Server的Ticket,这也是黄金票据利用的基础;

② 域环境中时间同步问题直接影响Kerberos协议的运行,因为基于时间戳的认证机制只有在Client和Server端的时间保持同步的情况下才有意义,一般通过访问时间同步服务器的方式以获得时间的同步。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值