域渗透LDAP收集AD用户相关信息


笔记备份。

备份下学习daiker师傅文章的笔记,LDAP基础、域内用户属性、机器用户相关、域内会话信息收集 笔记。
类的结构理解 TODO.

0x01 查询域用户

SAMR 协议查询: net user /domain
impacket samrdump.py查询:

Ldap 语法查询
通过(&(objectCategory=person)(objectClass=user))语法

用户属性对应ldap:

姓对应的属性就是sn
名对应的属性是giveName
展示名,对应的属性是displayName。

相关时间属性

userAccountControl属性


Q:机器用户为什么是域用户?

  • 机器用户为Computer类的实例

  • 域用户是user类的实例

  • 因为computer是user的子类,子类继承父类的属性

  • 所以机器用户拥有域用户的属性,是一种域用户

查找域内机器:

objectclass=Computer && objectcategory=Computer

  • 在对象的objectClass 属性里面,可以看到这个对象是哪个类的实例
  • 对象类的objectCategory里面建立了索引。其中包含对象是其实例的类或其父类之一的专有名称。

查看能够登陆的主机

查看正在登陆的主机

1.远程注册表查看
2.NetSessionEnum (https://docs.microsoft.com/en-us/windows/win32/api/lmshare/nf-lmshare-netsessionenum)
3.NetWkstaUserEnum(https://docs.microsoft.com/en-us/windows/win32/api/lmwksta/nf-lmwksta-netwkstauserenum)

查看登陆过后的主机
导出DC日志后查看登陆记录 。

wevtutil epl Security C:\Users\Administrator\Desktop\1.evtx /q:“*[System[(EventID=4624)] and EventData[Data[@Name=‘LogonType’]=‘3’]]” //导出日志
LogParser.exe -i:EVT -o:CSV "SELECT TO_UPPERCASE(EXTRACT_TOKEN(Strings,5,'|')) as USERNAME,TO_UPPERCASE(EXTRACT_TOKEN(Strings,18,'|')) as SOURCE_IP FROM 1.evtx" >log.csv // 提取日志


0x02 LDAP基础

基础名词:

  • 目录树
  • 条目
  • DN(唯一可区别的名称),RDN
  • 属性

Q:ldap如何表示一条记录?

dn:一条记录的位置
dc:一条记录所属的区域
ou:一条记录所属的组织
cn/uid:一条记录的名字/ID

AD 中的Naming Context

简而言之 Active Directory具有分布式特性,一个林中有若干个域,每个域内有若干台域控,每台域控有一个独立的Active Directory。这个时候就有必要将数据隔离到多个分区中,如果不隔离的话,则每个域控制器都必须复制林中的所有数据。若隔离为若干个分区之后,就可以有选择性的复制某几个分区。微软将Active Directory划分为若干个分区(这个分区我们称为Naming Context,简称NC),每个Naming Context都有其自己的安全边界。

AD 预定义了三个Naming Context

  1. 域目录分区(Domain Directory Partition NC)
  2. 配置目录分区(Configuration Directory Partition NC)
  3. 架构目录分区(Schema Directory Partition NC)
  4. 应用程序目录分区(Application Directory Partition)


连接工具Adexplorer:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/adexplorer

Configuration NC(Configuration NC):
包含有关站点,服务,分区和AD的信息

Schema NC(Schema NC):
定义Active Directory中使用的类,对象和属性。
理解Schema NC之前先理解ldap的类继承。

LDAP 中的类和继承

域内每个条目都是类的实例。而类是一组属性的集合。
例子:

查看条目实例所属的类 查看objectClass属性

类是可继承的。子类继承父类的所有属性,Top类是所有类的父类。
域内每个条目都是类的实例。所有的类都存储在Schema NC里面,是Schema NC的一个条目。

Domain NC(DomainName NC):
不同的域内有不同的域Naming Context,其中包含特定于域的数据。Domain NC表示域的DN,域内的所有计算机,所有用户的具体信息都这个Naming Context里面。

Application Partitions : 微软允许用户自定义分区来扩展Naming Context的概念

查看工具:rootDSE查看域内的所有Naming Context以及Application Partitions


查询AD过滤条件(LDAP):

用与号 (&) 表示的 AND 运算符。
用竖线 (|) 表示的 OR 运算符。
用感叹号 (!) 表示的 NOT 运算符。
用名称和值表达式的等号 (=) 表示的相等比较。
用名称和值表达式中值的开头或结尾处的星号 (*) 表示的通配符。

查询ldap工具:

adfind&&admod
ldapsearch
ADSI 编辑器
LDP
ADExplorer



免责声明!

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



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