内网基础知识

1.活动目录(AD)

1.1Ntds.dit文件

  1. 活动目录是安装在域控上,存储了域各种信息的组件。
  2. 目录数据存储在NTds.dit文件中,Ntds.dit文件时域控的一个二进制文件,其位置为”%SystemRoot%\ntds\ntds.dit”。
  3. Ntds.dit文件中存储有关域用户、用户密码的哈希散列值、用户组、组成员身份和组策略信息等。
  4. Ntds.dit文件使用存储在SYSTEM文件的密钥对这些哈希值进行加密
  5. 在非域环境中,用户的登陆凭据存储在SAM文件中

1.2目录服务与LDAP

1.活动目录是一种目录服务数据库,利用LDAP服务名称路径来描述对象在活动目录中的位置。
2.DN:绝对可辨识名称,指向一个LDAP对象的完整路径
3.RDN:用于指向一个LDAP对象的相对路径
4.活动目录的访问:可以里利用微软官方的AD Explorer工具连接域控制器来访问
下载链接


5.活动目录分区:域分区、配置分区、架构分区

1.3活动目录的查询

1.LDAP按位查询
按位查询语法

<属性名称>:<BitFilterRule-ID>:=<十进制的位值>
BitFilterRule-ID:查询规则对应的ID
十进制的位值:对应查询属性的位的十进制值的和

位查询规则

部分属性信息

例如:

(userAccountControl:1.2.840.113556.1.4.803:=131080)
查询属性为userAccountControl
1.2.840.113556.1.4.803 位查询规则为AND
131080代表查询的是HOMEDIR_REQUIRED(8)和MNS_LOGON_ACCOUN(131072)两个位

2.ADFind查询活动目录
下载链接
Adfind可以在域内任何一台主机上用,查询语法为

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

例如

Adfind.exe -b dc=hack-my,dc=com -f "objectClass=computer" name operatingSystem
-b 指定查询hack-my.com域
-f 指定查询所有computer对象
name operatingSystem 并且过滤对象的name 和operatingSystem属性

常用查询

Adfind也支持按位查询

Adfind.exe -b dc=hack-my, dc=com -f "(userAccountControl:AND:=131080)" -bit -dn

2.域用户与机器用户介绍

2.1域用户

1.域用户是域环境中的用户,在域控中被创建,所有信息保存在活动目录中
2.域用户位于全局组Domain Users
计算机本地用户位于本地User组中,计算机加入域时,全局组Domain Users会被添加到计算机本地User组中
3.在任一计算机中执行

net user /domain

可以查看域中所有用户

2.2机器用户

1.机器用户拥有域用户的属性
2.域环境中,计算机本地用户SYSTEM对应域中的机器账户,在域中的用户名是 “机器名+$”
3.查看域中所有的机器用户

net group "Domain Computers" /domain

4.在获取域中主机时可能权限受限,提升到SYSTEM权限可执行更多命令。

3.域用户组的分类和权限

组分为通讯组和安全组,通讯组:通讯发消息,安全组:用户权限的集合

安全组的权限

1.域本地组

1.域本地主要用于访问同一个域中的资源。
2.除了本组的用户,域本地组还可以包含域林内的任何一个域和通用组、全局组的用户
3.域本地组只能够访问本域中的资源,无法访问其他不同域中的资源
4.查询所有域本地组

Adfind.exe -b "dc=hack-my, dc=com" -bit -f "(&(objectClass=group)(grouptype:AND:=4))" cn -dn

域本地组在活动目录中都是Group类的实例,而域组的作用类型是由其groupType属性决定的,该属性是一个位属性
5.常见的系统内置的域本地组有:Administrators管理员组,Print Operators:打印机操作组,Backup Operators:备份操作组,Remote Desktop Users:远程登录组,Account Operators 账号操作组,Server Operators:服务器操作员组

2.通用组

1.通用组可以作用于域林的所有与,其成员可以包括域林中任何域的用户账户、全局组和其他通用组,但是无法包含任何一个域中的域本地组
2.通用组可以在域林的任何域中被指派访问权限,以便访问所有域中的资源。域管理员进行域管理时,可以为通用组授予对域林中所有域的资源访问权限,而不想需要考虑此通用组所在的位置
3.查询寻所有的通用组

Adfind.exe -b dc=hack-my,dc=com -bit -f "(&(objectClass=group)(grouptype:AND:=8))" cn -dn

4.常见的系统内置通用组
Enterprise Admins:组织系统管理员组,该组中的成员在域林每个域中都是Administrators组的权限
Schema Admins:架构管理员组,该组中的成员可以修改活动目录,如在架构分区中新增类或属性

3.全局组

1.全局组可以作用于域林的所有域,是介于域本地组和通用组的组
2.全局组只能包含本域的用户
3.全局组可以嵌套在同一个域的另一个全局组中,也可以嵌套在其他域的通用组或本地组中
4.全局组可以在域林的任何域中被指派访问权限
5.查询所有的全局组

Adfind.exe -b "dc=hack-my,dc=com" -bit -f "(&(objectClass=group)(grouptype:AND:=2))" cn -dn

6.常见的系统内置的全局组:
Domain Admins:域管理员组
Domain Users:域用户组
Domain Computers:域成员主机组

4.组织单位

1.组织单位是一个可以将域中的用户、组、计算机等对象放入其中的容器对象,是可以指派组策略或委派管理权限的最小作用域或单元。
2.组织单位可以统一管理组织单位中的域对象,包括且不限于:用户、计算机、工作组、打印机、安全策略等
3.在组织域环境中经常可以看到按照部门划分的一个个组织单位
4.所有组织单位在活动目录中都是organizationUnit类的实例,可以通过

(objectClass=organizationalUnit)
(objectCategory=organizationalUnit)

来查询所有的OU

Adfind.exe -b "dc=hack-my,dc=com" -f "(objectClass=organizationalUnit)" -dn

将BaseDN设定为指定的组织单元,便可以查询其中指定的对象

Adfind.exe -b "OU=科研中心, DC=hack-my, DC=com" -dn

5.访问控制

1.访问控制是Windows操作系统使用内置授权和访问控制技术,确定经过身份验证的用户是否具有访问资源的正确权限,以控制主体操作对象的行为是否具有合法权限

2.Windows中,访问主题通常指安全主体。安全主体是任何可通过操作系统进行身份验证的实体,如用户账户,计算机账户等。被访问的对象通常指安全对象,可能是文件、文件夹、注册表项等。

3.当经过身份验证,Windows会为安全主题创建一个访问令牌,其中包含验证过程返回的SID和本地安全策略分配给用户的用户权限列表。

4.当安全对象被创建时,Windows会为其创建一个安全描述符,Windows的访问控制正式将安全主体的访问令牌中的信息于安全对象的安全描述中的访问控制项进行比较做出访问决策的。

1.Windows访问控制模型

1.1访问令牌

用户登录时,Windows对用户身份进行验证,验证通过为用户创建一个访问令牌。该令牌包括登录过程返回的SID、由本地安全策略分配给用户和用户所属安全组的特权列表

访问令牌主要包含信息:

1.2安全描述符

1.安全描述符是一种与每个安全对象相关联的数据结构,其中包含与安全对象相关联的安全信息。
2.安全对象被创建时,操作系统会为其创建一个安全描述符。
3.安全描述符主要有SID和ACL组成。SID用来表示用户账户和该用户所属的组,ACL(访问控制列表)分为DACL和SACL两种。

2.访问控制列表

ACL是访问控制项(ACE)的列表, 每个访问控制项制定了一系列访问权限。

假设有安全主体A和安全对象B, 当A访问B,A会出示自己的访问令牌,其中包含自己的用户SID,所属用户组的SID和特权列表。
安全对象B有自己的访问控制列表,会先判断自己是不是需要特权才能访问,如果需要特权,就根据安全主体A的访问令牌查看自己是否具有该特权。然后安全对象B将安全主体A的访问令牌与自己的访问控制列表比对,并决定是否让A访问。

此过程中,访问控制列表主要的两个作用: 1.进行访问权限控制,判断安全主体能不能访问该安全对象。
2.日志记录功能,对用户访问行为的成功与否进行日志记录。

2.1 DACL

1.DACL(自主访问控制列表)是安全对象的访问控制策略,其中定义了该安全对象的访问控制策略,用于指定允许或拒绝特定安全主体对该安全对象的访问。
2.DACL是由一条条的访问控制项ACE条目构成的,每条ACE定义了哪些用户或组队该对象拥有怎样的访问权限。每个ACE指定了一组访问权限,并包含一个SID。该SID标识了允许或拒绝访问该安全对象的安全主体。
3.如果安全对象没有配置DACL,则系统默认允许所有访问操作
如果配置了DACL没有配置ACE条目,系统默认拒绝所有访问操作
如果系统配置了DACL和ACE,那么系统将按顺序读取ACE,直到找到一个或多个允许或拒绝安全对象访问行为的ACE。

2.2 SACL

1.SACL(系统访问控制列表)是安全主体对安全对象的访问行为的审计策略,也是由一条条ACE条目构成。
2.每条ACE定义了对哪些安全主体的哪些访问行为进行日志记录。安全主体的访问行为满足这条ACE就会被记录。
可以把一条ACE归纳为4方面: 1.谁对这个安全对象拥有控制权限 2.拥有什么权限 3. 这个权限是允许还是拒绝 4. 这个权限能不能继承

2.3 查看与修改访问控制列表

Icacls 是一种命令行工具,使用icacls命令可以查看或修改指定文件上的访问控制列表,并将存储的DACL应用于指定目录中的文件。

例如,执行以下命令:

icacls C:\Users\Alice\Desktop\test.txt

权限说明:

将指定目录及子目录下所有文件的ACLl备份到AcFile.txt

icacls C:\USers\Alice\Desktop\* /save AcFile.txt /T

执行以下命令将AcFile.txt内所有备份的文件ACL还原到指定目录及子目录

icacls C:\Users\Alice\Desktop\ /restore AcFile.txt

给用户Hacker添加指定文件或目录的完全访问权限

icacls C:\Users\Alice\Desktop\Test /grant Hacker:(OI)(CI)(F) /t

OI 代表对象集成 CI代表容器集成 F 代表完全访问

执行以下命令删除Hacker对指定文件或目录的完全访问权限

icaclas C:\Users\Alice\Desktop\Test /remove Hacker /t

6.组策略

组策略是Windows环境下管理账户的一种手段,可以控制用户账户和计算机账户的工作环境。组策略提供了操作系统、应用程序和活动目录中用户设置的集中化管理和配置。

1.本地组策略是组策略基本版本,适用于管理独立且非域环境的计算机
2.域环境中的组策略适用于管理域环境的所有对象,包括所有用户和计算机,可对域环境中的所有用户和计算机等对象进行多维管理,如安全配置、应用程序安装配置、开关机等

6.1组策略对象

组策略对象(GPR)是组策略设置的集合。
在设置组策略时,只要将组策略对象链接道指定站点、域和组织单位,其中的策略值便会应用到该站点、域和组织单位的所有用户和计算机。

组策略对象由组策略容器(GPC)和组策略模板(GPT)两个组件组成在Windows中分别存储在与孔的不同位置。
GPC存储与活动目录的域分区
GPT存放在与控制器的%SYSTEMROOT%\SYSVOL\sysvol\域名\Policies文件夹中

可以通过组策略管理来查看和编辑每个GPO的设置
可以看到两个默认组策略对象Default Domain Policy 和 Default Domain Controller Policy,他们在域控被创建时自动建立

(1)Default Domain Policy 默认组策略对象
Default Domain Policy 应用到其所在域的所有用户和计算机
右键该组策略可以保存报告,保存类型可以为HTML或XML.
右键选择编辑可以打开组策略编辑器

组策略编辑器可以分别对该组策略链接到的作用于的用户和计算机进行配置,分为策略和首选项两种不同强制程度。策略配置是强制性的配置,作用域中的客户端应用这些配置后就无法自行更改。首选项相当于默认值的作用是非强制的,客户端可以自行更改其中的配置值。

(2)Default Domain Controllers Policy 默认组策略对象
Default Domain Controllers Policy 应用道Domain Controllers 中所有的用户和计算机

组策略容器

组策略容器存储在活动目录的与分区中,路径为

CN=Policies, CN=System, DC=hack-my, DC=com

GPC中记录着该组策略对象的策略名称、标识组策略的GUID、组策略链接到的作用域、组策略模板的路径、组策略的版本信息等各种元数据。

displayName为组策略名称, 该组策略名为Default Domain Policy
gPCFileSysPath属性为组策略模板存放的路径,该组策略模板存放路径为\\hack-my.com\sysvol\hack-my.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}

当域中某对象应用某组策略时,该对象的gPLink属性值将指向这条组策略的完整DN

图中DC=hack-my, DC=com 应用了Default Domain Policy 组策略,所以该组织单位的gPLink属性值指向了Default Domain Policy 组策略的完整DN

组策略模板

GPT存储该组策略实际的配置数据,被存放在域控制器的共享目录。%SYSTEMROOT%\SYSVOL\sysvol\域名\Policies下以GUID命名的文件夹中

以GUID标识的各组策略配置目录中包含以下内容
MACHINE: 该文件包含一些针对该组策略的整个作用域中计算机的具体配置。
USER: 该文件包含一些针对该组策略的整个作用域中用户的信息。
GPT.INI: 该文件包含一些关于该组策略的策略名称、版本信息等配置信息。

6.2 组策略的创建

创建一个新的组策略,并将其应用一个预先创建的组织单位”科研中心”.

右键 组策略对象

随便取名为Test Domain Policy

右键hack-my.com 创建组织单位命名为科研部门

右键科研部门,选择链接现有GPO,选择Test Domain Policy

此时Test Domain Policy已经被链接到了科研部门。

接着可以编辑这条组策略,例如将这条组策略中的用户密码长度最小长度为7

7.内网环境搭建

windows镜像下载地址: https://msdn.itellyou.cn/

单域环境搭建

网络环境拓补

1.Windows Server 2012 -DC

1.网络配置

IP: 192.168.89.10
子网掩码: 255.255.255.0
默认网关: 192.168.89.1
DNS指向本机IP: 192.168.89.10

2.主机属性设置
主机名: DC
域: hack-my.com

服务器管理器->添加角色和功能
默认下一步,直到出现选择服务器角色的步骤,在角色中勾选DNS服务器和Active Directory域服务

勾选如果需要,自动重启服务器

这里我选择安装后把虚拟机重启了
需要指定升级为域控

写入域名hack-my.com

设定DSRM(目录服务还原模式,允许管理员在域环境出故障时还原目录数据库)密码

之后保持默认下一步

发现需要重置Administrator的密码


再次检查先决条件,安装即可

安装成功后,重新启动服务器,切换至Administrator登录
发现AD DS 和 DNS 安装成功

把DNS改回 192.168.89.10

为了能让后续加入域中的Windows Server 2008 和 Windows 7 用户可以正常登录,为他们创建域用户
打开服务器管理器->工具->Active Directory 用户和计算机, 选中Users目录并单击右键
新建用户Alice,并设置其密码永不过期

Alice - ==xy159753
成功创建用户Alice

2.Windows Server 2008 - Web

先改网络设置
ip: 192.168.89.20
子网掩码: 255.255.255.0
默认网关:192.168.89.1
DNS: 192.168.89.10

将该主机添加值域中
控制面板->系统->改变设置

登录域用户

成功加入域

3.Windows 7

参照Windows Server 2008 加入域环境
IP: 192.168.89.30
子网掩码: 255.255.255.0
网关: 192.168.89.1

DNS: 192.168.89.10

登录后,成功加入hack-my.com域