域渗透-LDAP中域内组、OU笔记


贴一份笔记而已

最近没空写文章了 好好复习一下笔记

环境我用的god.org这个域

又看东西的时候遇到ldap基础相关的知识了 复习手写笔记 详细可以参考灵腾文章和harmj0y文章

http://www.harmj0y.net/blog/activedirectory/a-pentesters-guide-to-group-scoping/


0x01 域中ldap查询安全组

所有的组都是group类的实例

可以用(objectClass=group)或者(objectCategory=group)来过滤组

组的类型由属性groupType决定,属性groupType是一个位字段

域内所有组

域内全局组

域内通用组

域内本地组

域内安全组

域内系统创建的组

0x02 组中的 member && memberof属性

这两个属性能查看组之间的所属关系

0x03 安全组范围

安全组可以根据作用范围划分为

  • 全局组 (Global group)
  • 通用组(Universal group)
  • 域本地组(Domain Local group)

附上daiker师傅画的范围图:

三个组的使用范围 简写的:

常见组

Administrators 域本地组

Domain Admins 全局组 “域管组” 域内所有计算机会把domain admins加入到本地管理员

Enterprise Admins 通用组 林 域中会默认把Enterprise Admins组加入到域本地组的administrators组中

Domain Users 全局组 域内机器 默认也会把Domain Users组加入本地用户组

0x04 ad中的分区

Naming Context即为ad的分区,为什么要有分区?简而言之为了隔离,以至于每个DC不需要复制林中的所有数据。

Active Directory预定义的Naming Context

  • Configuration NC(Configuration NC)
    
  • Schema NC(Schema NC)
    
  • Domain NC(DomainName NC)
    

连上ldap后查看相关容器。

Configuration NC

林配置信息的主要存储库,包含有关站点,服务,分区和Active Directory Schema 的信息。

配置NC中顶级容器说明:

Schema NC

Schema 信息定义Active Directory中使用的类,它是具有 classSchema ,attributeSchema 和 subSchema 对象的单个容器

Domain NC

不同的域内有不同的域Naming Context,其中包含特定于域的数据。
一个域的name context的根由域的DN表示:
corp.test.local域的DN将为dc=corp,dc=test,dc=local

Application Partitions NC

Application Partitions其实就是Naming Context的一个扩展,一共是两个作用

1.用户定义分区

简而言之,因为nc是微软预定义了,用户自己定义不了,如果要定义分区,就可以使用Application Partitions NC。

2.存储动态对象

动态对象是具有生存时间(TTL) 值的对象,Application Partitions可以给数据设置个TTL,时间一到,Active Directory就删除该数据。

0x05 ldap中的objectCategory和objectClass

简而言之,objectCategory和objectClass是用来ldap查询中对类实例所属关系的筛选

objectClass 属性中,可以看到这个对象是哪个类的实例, 以及这个类的所有父类

example:

CN=jane,CN=Users,DC=test,DC=local的objectClass是top,person,organizationalPerson,user。

查询上面对象的语句:(objectClass=user),(objectClass=organizationalPerson) 

所有的类都是top类的子类。因此当我们过滤(objectClass=top)可以找到域内的所有对象

objectCategory是因为2008之前默认不对objectClass 属性进行索引,所以objectCategory粗略可以理解为是带了索引的objectClass

对象类的每个实例具有一个objectCategory属性,该属性是一个单值属性。并且建立了索引。
其中包含对象是其实例的类或其父类之一的专有名称。


example:
CN=jane,CN=Users,DC=test,DC=local. 

他的objectCategory是CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local
所以同理:
adfind.exe -b dc=god,dc=org -s -subtree -bit -f "(objectCategory=person)" -dn

objectClass与objectCategory结合

Objectclass包含对象是哪个类的实例,以及这个类的所有父类
Objectcategory包含对象实例的类 或 其父类之一
所以如果没建立索引,objectCategory划分一个大的范围,然后通过objectClass进行精准匹配

0x06 AD中的OU、组

组:

OU:


ou、组、容器之间的区别

简而言之
最重要的一点是OU能部署组策略,容器不行。

  • OU:组织单元,是一个专用容器,被管理的集合,也可以说管理对象的集合。
  • 容器: Domain Computers 是常规容器,Domain Controllers是OU
  • 组: 组是权限的集合。

OU的委派

赋予域内用户对OU的某些管理权限

ADfind 过滤OU

所有的OU都是organizationalUnit类的实例

使用(objectClass=organizationalUnit)或者(objectCategory=organizationalUnit)来过滤OU。

0x07 AGDLP

说白了 对组权限的策略集合:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM