8月27日笔记

2024-08-28 06:28
文章标签 笔记 27

本文主要是介绍8月27日笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

活动目录的访问

AD Explorer

LDAP( Lightweight Directory Access Protocol,轻量目录访问协议)是一种基于TCP/IP的应用层协议,用于访问和维护分布式目录信息服务。它允许用户在一个网络中查找和管理存储在目录服务中的信息。是在X.500标准基础上产生的一个简化版本(省去了x.500中许多不太常用的功能),并且使用TCP 389端口号。LDAP加密(LDAPS)端口是636。
Active Directory Explorer (AD Explorer) 是一种高级 Active Directory (AD) 查看器和编辑器。您可以使用 AD Explorer 轻松导航 AD 数据库、定义收藏夹位置、查看对象属性和 属性,而无需打开对话框、编辑权限、查看 对象的 schema,并执行可以保存的复杂搜索 并重新执行。
AD Explorer 还包括保存 AD 快照的功能 数据库进行离线查看和比较。当您加载已保存的 snapshot 中,您可以像浏览实时数据库一样导航和浏览它。 如果您有两个 AD 数据库的快照,则可以使用 AD Explorer 的 比较功能,用于查看哪些对象、属性和安全性 权限在他们之间发生更改。
AD Explorer的下载地址:https://download.sysinternals.com/files/AdExplorer.zip
解压之后。
image.png
image.png
64位的使用箭头指的那个
image.png
箭头所指的是"DC=god,DC=org",就是god.org域的域分区。
image.png

  • CN=Builtin:内置了本地域组的安全组的容器。
  • CN=Computers:机器用户容器,其中包含所有加入域的主机。
  • OU=Domain Controllers:域控制器的容器,其中包含域中所有的域控制器。
  • CN=ForeignSecurityPrincipals:包含域中所有来自域的林外部域的组中的成员。
  • CN=Managed Service Accounts:托管服务账户的容器。
  • CN=System:各种预配置对象的容器,包含信任对象、DNS对象和组策略对象。
  • CN=Users:用户和组对象的默认容器

配置分区

配置分区(Configuration NC)存储整个域林的主要配置信息,包括有关站点、服务分区和整个活动目录结构的信息。整个域林共享一份相同的配置分区,会被复制到域中所有域的域控制器上。
其中的“CN=Configuration,DC=god,DC=org”就是配置分区。
image.png

架构分区

架构分区(Schema Naming Context, Schema NC)是Active Directory中的一个重要组成部分,它存储整个域林的架构信息,包括活动目录中所有类、对象和属性的定义数据。整个域林共享一份相同的架构分区,会被复制到林中所有域的所有域控制器中。域控制器中。
其中,“CN=Schema,CN=Configuration,.DC=god,DC=org”就是架构分区。
image.png
注意,在LDAP中,类是存在继承关系的,子类可以继承父类的所有属性,而top类是所有类的父类;并且,活动目录中的每个条目都有objectClass属性,该属性的值指向该示例对象所继承的所有类,
image.png

LDAP的按位查询

LDAP的按位查询语法:

<属性名称>:<BitFilterRule-ID>:=<十进制的位值>

其中,指的就是位查询规则对应的ID,如下所示
image.png
在 LDAP 里面,有些属性字段是位字段,这里以userAccountControl 为例介绍位查询的过程。其记录了域用户账号的很多属性信息。且userAccountControl是位属性。
image.png

  • INTERDOMAIN_TRUST_ACCOUNT - 它是信任其他域的系统域信任的帐户。
  • WORKSTATION_TRUST_ACCOUNT - 它是运行 Microsoft Windows NT 4.0 Workstation、Microsoft Windows NT 4.0 Server、Microsoft Windows 2000 Professional 或 Windows 2000 Server 的计算机的计算机帐户,是此域的成员。
  • NOT_DELEGATED - 设置此标志时,即使服务帐户设置为受信任的 Kerberos 委派,也不会将用户的安全上下文委派给服务。

例子:账户William的userAccountControl属性只有HOMEDIR_REQUIRED和MNS_LOGON_ACCOUN两个位有值,其他位都没有,那么用户William的userAccountControl属性的值就为0x0008+0x20000,其十进制值为131080。
查询语句:(userAccountControl:1.2.840.113556.1.4.803:=131080)
语句的意思是查询域中所有userAccountControl属性设置HOMEDIR_REQUIRED位和MNS_LOGON_ACCOUN位的对象。

AdFind查询活动目录

下载地址:AD-Penetration-Testing-Tools/AdFind.zip at master · mai-lang-chai/AD-Penetration-Testing-Tools · GitHub
Adfind是一款在域环境下非常强大的信息搜集工具,允许用户在域环境下轻松搜集各种信息。它提供了大量的选项,可以优化搜索并返回相关详细信息,是内网域渗透中的一款利器。

AdFind.exe /?

image.png
语法:

AdFind.exe [switches][-b basedn][-f filter][attr list]
-b指定一个BaseDN作为查询的根;-f为LDAP过滤条件;attr list为需要显示的属性

连接选项
域内机器上执行ADFind的话,不需要连接参数,如果是域外机器执行ADFind的话,则需要指定连接参数。如下:

  • -h:指定主机与端口
  • -p:可以单独使用-p参数指定端口
  • -u:指定用户
  • -up:指定密码

过滤选项

  • -b:指定要查询的根节点basedn
  • -bit:指定位查询
  • -f:LDAP过滤条件,指定ldap语法

显示选项

  • -appver:显示adfind版本信息
  • -c:只统计数量
  • -csv:导出为csv格式
  • -dn:只显示dn,不返回详细信息
  • -s:搜索的范围,有one(当前层级)/sub(一层一层递归),默认是sub
  • -sdna:非域管查询sd信息
  • -recmute:如果所有属性都为空,则禁止显示DN,主要适用于sddl过滤器选项
  • -t:查询超时时间,默认120秒

示例:

AdFind.exe -b dc=god,dc=org -f "objectClass=computer" name operatingSystem

image.png
语句的意思就是查询god.org域中的所有computer对象,并过滤对象的“name”和“operatingSystem”属性。
AdFind常见查询命令
QQ_1724754323621.pngQQ_1724754343020.png
AdFind提供了快捷的按位查询方式代替复杂的BitFilterRule-ID
QQ_1724758298715.png
比如:查询域中所有userAccountControl属性设置HOMEDIR_REQUIRED位和MNS_LOGON_ACCOUN位的对象。查询语句:

AdFind.exe -b dc=god,dc=org -f "(userAccountControl:AND:=131080)" -bit -dn

域用户

域用户,顾名思义,就是域环境中的用户,在域控制器中被创建,并且其所有信息都保存在活动目录中。域用户账户位于域的全局组 Domain Users 中,而计算机本地用户账户位于本地 User 组中。当计算机加入域时,全局组 Domain Users 会被添加到计算机本地的 User 组中。因此,域用户可以在域中的任何一台计算机上登录。执行以下命令:

net user /domain

可以查看域中所有的域用户。
QQ_1724764883871.png

机器用户

即机器账号、计算机账号,所有加入域的主机都会有一个机器用户,用户名为机器名加$,如:WIN7$WINXP$。在域环境中,普通域用户最多可以创建 10 个计算机账户,但是本地账号不能创建计算机账户。默认情况下,加入域的机器默认在CN=Computers这个容器里面:
QQ_1724765495201.png
而域内的域控都在Domain Controllers这个容器里面。
QQ_1724765886314.png
当你在 Active Directory 中随便打开 Domain Computer 中的一台主机,查看其objectClass便可以发现他是computer类的实例,并且computer类是user类的子类。我们知道,域用户是user类的实例,而computer类的user类的子类则说明域用户有的属性,计算用户都有。甚至我们可以说,机器用户就是一种域用户。
在域环境中**,计算机上的本地用户SYSTEM对应域中的机器账户**,在域中的用户名就是“机器名+ ”。比如上图中计算机名为 R O O T − T V I 862 U B E H 的域用户名是 " R O O T − T V I 862 U B E H ”。比如上图中计算机名为ROOT-TVI862UBEH的域用户名是"ROOT-TVI862UBEH 。比如上图中计算机名为ROOTTVI862UBEH的域用户名是"ROOTTVI862UBEH"。
查找域中的所有机器用户

net group "Domain Computers" /domain

QQ_1724766221478.png
本地用户 SYSTEM 就对应于域内的机器用户,当我们拿下一台内网主机后,发现没有域内用户,这个时候我们将当前用户提升到 SYSTEM,就可以在域内充当机器用户了。但是提升到 SYSTEM 还需要利用一些提权方法。

域用户组的分类和权限

在域环境中,为了方便对用户权限进行管理,需要将具有相同权限的用户划为一组。这样,只要对这个用户组赋予一定的权限,那么该组内的用户就获得了相同的权限。
组的分类
按照用途可以分为通讯组和安全组。例如把某部门的所有员工拉进同一个通讯组,当给这个通讯组发消息时,组内的全部用户都可以收到。
安全组是用户权限的集合。对某个组赋予某种权限,在把需要这个权限的用户拉进这个组,这个用户就可以使用这个权限。

安全组权限

以作用范围分为域本地组、通用组、全局组。

  • 全局组成员来自于同一域的用户账户和全局组,在林范围内可用。也就是说能够添加到全局组的成员是本域的成员或者全局组(这样就构成了组的嵌套)。如果在上海的域中创建了全局组A,那么能添加到A中的人只能是上海域中的对象或者是其他可信任域,如北京或大连的全局组。
  • 域本地组成员来自林中任何域中的用户账户、全局组和通用组以及本域中的域本地组,在本域范围内可用。
  • 通用组成员来自林中任何域中的用户账户、全局组和其他的通用组,在全林范围内可用。但是注意通用组的成员不是保存在各自的域控制器上,而是保存在全局编录中,当发生变化时能够全林复制。

简单记忆:
:::info
全局组 来自本域用于全林
通用组 来自全林用于全林
域本地组 来自全林用于本域
:::
因为只有域本地组专用于在本地赋予权限,所以,通常情况下,域本地组总是最后被应用。
查询所有的域本地组

AdFind.exe -b "dc=god,dc=org" -bit -f "(&(objectClass=group)(grouptype:AND:=4))" cn -dn

QQ_1724768315373.png
域本地组在活动目录中都是 Group 类的实例,而域组的作用类型是由其groupType属性决定的,该属性是一个位属性。
QQ_1724770755846.png
常见的系统内置的域本地组及其权限:

  • Administrators :管理员组,该组的成员可以不受限制地访问域中资源,是域林强大的服务管理组。
  • Print Operators:打印机操作员组,该组的成员可以管理网络中的打印机,还可以在本地登录和关闭域控制器
  • Backup Operators:备份操作员组,该组的成员可以在域控制器中执行备份和还原操作,还可以在本地登录和关闭域控制器。
  • Remote Desktop Users:远程登录组,只有该组的成员才有远程登录服务的权限
  • Account Operators:账号操作员组,该组的成员可以创建和管理该域中的用户和组,还为其设置权限,也可以在本地登录域控制器。
  • Server Operators:服务器操作员组,该该组的成员可以管理域服务器。

查询所有通用组:

AdFind.exe -b "dc=god,dc=org" -bit -f "(&(objectClass=group)(grouptype:AND:=8))" cn -dn

QQ_1724771177819.png
常见的系统内置的通用组及其权限:

  • Enterprise Admins:组织系统管理员组,该组是域林的根域中的一个组。该组中的成员在域林的每个域中都是 Administrators 组的成员,因此对所有的域控制器都有完全控制控制权。
  • Schema Admins:架构管理员组,该组是域森林的根域中的一个组。该组中的成员可以修改活动目录,如在架构分区中新增类或属性。

查询所有全局组

AdFind.exe -b "dc=god,dc=org" -bit -f "(&(objectClass=group)(grouptype:AND:=2))" cn -dn

QQ_1724771280910.png
常见的系统内置的全局组及其权限:

  • Domain Admins:域管理员组,该组的成员在所有加入域的服务器上拥有完整的管理员权限。如果希望某用户成为域管理员,就可以将其添加到Domain Admins组中。该组会被添加到本域的 Administrators 组中,因此可以获得 Administrators组的所有权限。同时,该组默认被添加到域中每台计算机的本地 Administrators组中,所以会获得域中所有计算机的控制权。
  • Domain Users:域用户组,该组的成员是所有的域用户。在默认情况下,任何新建的用户都是该组的成员
  • Domain Computers:域成员主机组,该组的成员是域中所有的域成员主机,任何新建立的计算机账号都是该组的成员。
  • Domain Controllers:域控制器组,该组的成员包含域中所有的域控制器
  • Domain Guests:域访客用户组,该组的成员默认为域访客用户
  • Group Policy Creator Owners:新建组策略对象组,该组的成员可以修改域的组策略

访问控制

访问控制是指 Windows 操作系统使用内置授权和访问控制技术,确定经过身份验证的用户是否具有访问资源的正确权限,以控制主体(Principal)操作(读取、写入、删除、更改等)对象(Obiect)的行为是否具有合法权限。
当经过身份验证的安全主体想访问安全对象时,Windows会为安全主体创建一个访问令牌(Access Token),其中包含验证过程返回的 SID 和本地安全策略分配给用户的用户权限列表。当安全对象被创建时,Windows会为其创建一个安全描述符(Security Descriptor)。Windows 的访问控制正是将安全主体的访问令牌中的信息与安全对象的安全描述中的访问控制项进行比较做出访问决策的。

windows访问控制模型(Access Control Model)

Windows 访问控制模型主要由访问令牌(Access Token)和安全描述符(Security Descriptor)两部分组成,分别由访问者和被访问者持有。
访问令牌
当用户登录时,windows会创建访问令牌给用户,此后该用户执行每个进程都有此访问令牌的副本。当用户与安全对象进行交互时,windows都会使用此访问令牌并确定关联的用户。
访问令牌主要包含以下信息:

  • 标识用户账户的 SID(Security ID,安全标识).
  • 标识用户所属的组的 SID
  • 标识当前登录会话的登录 SID
  • 用户或用户所属的用户组持有的特权列表
  • 标识对象所有者的 SID。
  • 标识对象所有者组的 SID
  • 标识用户主安全组的 SID
  • 用户创建安全对象而不指定安全描述符时系统使用的默认 DACL(Discretionary Access Control List,自主访问控制列表)
  • 访问令牌的来源
  • 访问令牌的类型,即令牌是主令牌还是模拟令牌限制 SID 的可选列表。
  • 当前模拟等级。
  • 其他信息

安全描述符
安全描述符(Security Descriptor)是一种与每个安全对象相关联的数据结构,其中包含与安全对象相关联的安全信息,如谁拥有对象、谁可以访问对象、以何种方式访问审查哪些类型的访问信息等。当安全对象被创建时,操作系统会为其创建一个安全描述符。安全描述符主要由 SID和 ACL(Access ControlList,访问控制列表)组成。
SID 用来标识用户账户和该用户所属的组。ACL分为 DACL和SACL两种,

这篇关于8月27日笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113979

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus