背景
为了更加高效测试各种 Active Directory Exploit,搭建一个本地的 AD 环境。
环境组成如下:
- 两个 Forest,互相信任
- ECORP.COM -> DEV.ECORP.COM,两个域,互相信任
- Windows Server 2019
- 2个 Domain Controller,E-RDC01,E-DC02
- E-RDC01
- 2个 Windows 10 Enterprise Client(E1,E2)
- 3个 Linked SQL Server
- 1个带 SQL Server 的 Web Server(Web03,Web03\SQLEXPRESS)
- 2个独立的 SQL Server(SQL03\SQLEXPRESS,SQL11\SQLEXPRESS)
- E-DC02
- 1个 Windows 10 Enterprise Client(E3)
- 1个独立 SQL Server(SQL13\SQLEXPRESS)(后期测试时再添加)
- E-RDC01
- 2个 Domain Controller,E-RDC01,E-DC02
- Windows Server 2019
- FSOCIETY.COM
- Windows Server 2019
- 1个 Domain Controller,F-RDC01
- 2个独立的 SQL Server(SQL05\SQLEXPRESS,SQL07\SQLEXPRESS)
- Windows 10 Enterprise
- 2个用户机器,(F1,F2)
- Windows Server 2019
- ECORP.COM -> DEV.ECORP.COM,两个域,互相信任
如图:
有需要的小伙伴可以到到这里下载 Windows Server 2019 的评估版,这里下载 Windows 10 Enterprise 评估版。
这篇文章,我们先介绍一个环境搭建的过程。如果大家不想搭建测试环境的,可以掠过,等待接下来的内容。
搭建过程中,大家先把刚装好的 Windows Server 2019 和 Windows 10 Enterprise 打上快照,好随时回滚。保留新安装的状态,还有个好处就是可以复制,不然安装那么多个机器可不是一时半会儿的事情。
建议在配置好 AD 环境之后,也打上快照,有备无患。
这篇文章大家当工具书一样使用,目录中涵盖了各种配置,按需阅读即可。
环境搭建
ECORP.COM/E-RDC01
VMWare 安装 Windows Server 2019 的过程不赘述了。注意选择 WIndows Server 2019 Desktop Experience
。
安装完成启动虚拟机,首选更改主机名字。
配置 Domain Controller
更改完成之后重启主机。
重启之后,点击 Service Manager
右上角的 Manage
,选择 Add Roles and Features
勾上 Active Directory Domain Service
。
一路 Next 到如下页面,选择 Install
。
等待安装完成,关闭对话框。
点击右上角黄色三角。
选择 Promote this server to a domain controller
。
输入域名(任意)。
输入密码(同 Admin 密码或任意)。
等待此处填补上主机名。
选择 Install
。
安装完成会自动重启。
至此,Domain Controller 的功能完成了。
添加用户
接下来,我们添加用户,然后设置Service Principle Name
。
点击右上角 Tools
,选择 Active Directory Users and Computers
。
右键点击域名,选择 New
-> Organizational Unit
。
输入名字 Groups
。
将 Users
一栏中非 Administrator
和 Guest
的条目全部拉到 Groups
当中。
弹窗选择 Yes
。
添加第一个普通用户。在 Users
一栏,空白处右键选择用户。
用户名随意。
设置密码,记得勾选 Password never expires
。然后完成添加。
右键点击 Administrator
,选择 Copy
。
添加一个 Domain Admin
。
查看该用户的属性,跟 Admin 是一样的。
添加该域中的 SQL Service 用户,两个,sqlsvc03
和 sqlsvc11
。
添加 sqlsvc11
的时候,我们选择从 Administrator
复制,将他设置成 Domain Admin
的角色。
右键 sqlsvc11
查看 Properties
。
在 General
, Description
一栏填入 My password is: Password123!11
。模拟不当配置。
添加 apachesvc03
用户。
当前用户列表如下。
配置目录分享
接下来设置 Shares
。
选择左侧 File and Storage Services
。
选择 Shares
,点击右上角 Tasks
-> New Share
。
默认设置一路 Next。
这里填入分享文件夹的名称,任意,此处为 Shares
。
选择 Create
。
分享创建好了,可以在列表中看到。
配置 SPN
接下来设置 Service Principle Name
,打开命令行(以 Admin 运行)。
设置 SQL Service。
setspn -a E-RDC01/sqlsvc03.ECORP.COM:1433 ECOPR\sqlsvc03
setspn -a E-RDC01/sqlsvc11.ECORP.COM:1433 ECOPR\sqlsvc11
查看设置。
setspn -T ECORP.COM -Q */*
设置 web03
。
setspn -a E-RDC01/web03.ECORP.COM:1433 ECOPR\apachesvc03
查看。
setspn -T ECORP.COM -Q */*
配置网络
接下来,配置静态 IP。打开控制面板。
右键选择 Properties
。
选择 TCP/IPv4
。
设置一个网段里的空余地址。DNS 服务器跟网关一样即可。
关闭 Windows Defender
最后,配置 Group Policy
关闭 Windows Defender
。我先把步骤放出来,但是可以先不做。借此练习和应用一下免杀。
右键域名,选择第一项。
输入策略名字 Disable Windows Defender
。
右键刚创建的策略,选择编辑。
到 Policies
-> Administrative Templates...
-> Windows Components
-> Windows Defender Antivirus
。
选择右侧 Turn off Windows Defender Antivirus
。
选择 Enabled
-> Apply
-> OK
。
回到上一对话框,右键如下条目,选择 Enforced
。
最终效果如图。
至此,ECORP.COM
域下的 Domain Controller E-RDC02
就配置好了。
不要忘记关机,然后打上快照,好随时回滚。
接下来,我们要配置 ECORP.COM
域下的子域 DEV.ECORP.COM
以及他的 Domain Controller E-DC02
。
NOTE:
我们这个环境有很多的机器,我采用了复制 VMWare 主机文件夹的方式来创建新的 Server 或者 Client,不然一个一个安装太费时间。但是要注意,Domain Controller 在 Promote 那一步的时候,如果两个 Domain Controller 是复制的,他们会有相同的 SID,那么第二个 Domain Controller 会 Promote 失败。解决方式是使用 Sysprep 工具来做恢复出厂设置一样的操作,可以刷新主机的 SID。我并没有测试,我把链接放在这里,大家遇到这个问题的话,可以尝试使用。
配置SQLAdmins组
在 E-RDC01
中,打开用户和组的管理界面。
新建组。
输入组名,点击 OK
添加。
双击该组。
添加用户。
将 SQL11
加入到改组,记得 sqlsvc11
是 Domain Admin,现在同时也是 SQL Admins。
SQL Admins 用户添加完毕。Apply
-> OK
。
接着大家可以将 sqlsvc11 添加到各个 SQL Server 的本地 Admin 组,或者添加 sqlsvc11 到各个 SQL Server 实例的 sysadmin。
DEV.ECORP.COM/E-DC02
安装新的 Windows Server 2019 主机,或者复制一份(注意一定是复制刚安装好状态的主机,而不是配置过的)。
配置子域信任
开始的步骤都一样,更改主机名,添加功能。参见上一章节。
直到点击了右上角黄色三角形,要 Promote this server to a domain controller
的时候,首先打开网络设置。
如果该方法报错,就使用上一章节中控制面板打开网络适配器属性的方法。
选择 Properties
。
选择 TCP/IPv4
。
设置一个静态 IP,最重要的是,将 DNS 服务器指向 E-RDC01
。配置一个备用 DNS 服务器到网关可以让本主机正确解析域名,不过没有也没事,我们是内网测试,没有公网流量。
接着,就是添加子域名到父域名。点击右上角黄色三角,选择 Promote this server to a domain controller
。
如果选择。
点击 Select
。
在对话框中输入父域名的 Administrator
账号和密码。大家的可能不一样,在我这的情况就是:
ECORP\Administrator
Password123!
验证通过就会自动弹出父域,选择 OK
。
接着天上子域的名称。这里解释一下什么是 Distinguished Name
,什么是 Fully Qualified Domain Name
。
NOTE
用我们这里举例,下图中,只需要输入 DN(Distinguished Name)即可,Windows 会自动添加该 DN 到父域 ECORP.COM 前,组成 FQDN(Fully Qualified Domain Name),也就是 DEV.ECOPR.COM。以后在测试过程中,有些地方使用 DN,有些地方则必须使用 FQDN。
Next。
点击 Install
,等待安装结束。
重启之后,我们就在子域 DEV 下了。
接着,我们可以回到 E-RDC01
,点击右上角 Tools
,选择如图。
我们可以看到子域的情况。
我们可以右键分别查看两个域的属性,都可以在 Trusts
一栏下看到对方。这是一个双向的父子信任。
添加用户
我们可以在 E-RDC01
上对 E-DC02
进行配置。
选择如图。
添加一个普通用户。
添加一个 Domain Admin。
最后,E-DC02
的用户列表如下。
至此,E-DC02
配置完毕。
接下来,我们要配置另一个域 FSOCIETY.COM
,并配置 Forest Trust
。
FSOCIETY.COM/F-RDC01
NOTE
sysprep.exe 已测试,可用。只需按照这个链接操作即可。以后复制 VM,然后用 sysprep.exe 重置,刷新 SID。
重置完成会重启。
需要重新配置。
重新设置 Admin 的密码。
配置 Forest Trust
这个域的 DC 配置大家参考 E-RDC01
来操作。直到 Promote this server to a domain controller
这一步做完,机器重启。
并且参照前两章的方式配置好静态 IP,DNS 使用网关即可。
下一步,我们设置两个 Forest(ECORP.COM
和 FSOCIETY.COM
) 互相信任。
在 F-RDC01
,点击右上角 Tools
,操作如下图。
右键点击左侧域名,选择属性。然后选择 Trust
-> New Trust...
。
指定 ECORP.COM
为目标域。
之后的操作如图。
设置一个 Trust Password,这个密码等会儿要用。
设置完成。提示说,我们需要到目标域也执行如上操作,才能完成互相信任。
现在,ECORP.COM
出现在 FSOCIETY.COM
的信任列表里。
按照指示,我们去 E-RDC01
下,配置一下 Forest Trust。
注意,之后要输入之前设置的信任密码。
设置完成。
FSOCIETY.COM
出现在 ECORP.COM
的信任列表里。
Forest Trust 配置完成。
添加用户
接下来,我们在 F-RDC01
中添加一些用户。
添加一个普通用户 john doe
。
添加一个 Domain Admin mfsociety
。
添加两个普通 SQL Service 账号。
最终用户列表如图。
配置 SPN
在 F-RDC01
执行
setspn -a F-RDC01/sqlsvc05.FSOCIETY.COM:1433 ECOPR\sqlsvc05
setspn -a F-RDC01/sqlsvc07.FSOCIETY.COM:1433 ECOPR\sqlsvc07
查看结果。
setspn -T FSOCIETY.COM -Q */*
到此,F-RDC01
配置完毕。
接下来,我们要配置两个 Forest 中的客户机,加入到我们的域中去。
客户机配置示例
E1 和 E2 是 ECORP.COM 域下两个客户机。
安装 Windows 10 Enterprise,然后打上快照。之后可以复制。
我们配置一个 E1,其他的机器配置都一样。
客户机配置
使用 sysprep
刷新机器,获取新的 SID,避免 SID 重复。路径在 \windows\system32\sysprep.exe
。
重启之后需要重新配置键盘等设置,初始化(安装过的应用都还在)。
更改主机名字
本例中改为 E1
,E2
,大家任意。
配置分享
在 C:\
下建立 Shares
文件夹,右键点击属性,分享,分享该文件夹。用于 Samba 445 端口测试。
如有弹窗选择 Yes
开启网络发现。
配置静态 IP 和 DNS
打开网络管理。
适配器信息。
添加静态 IP,将主 DNS 服务器指向 E-RDC01
(大家的 IP会和我的不同)。
加入 ECORP.COM 域
搜索 Access work or school
。
点击 Connect
。
下一步如图。
输入要加入的域域名。
输入域 Admin 账号密码。
选择 Skip
。
重启电脑。
现在,你可以用 E-RDC01
中创建的任意一个用户名/密码登录。
配置 Local Admin
用域 Administrator 账号登录 E1
。
右键开始菜单,选择 Computer Management
。
操作如图。
点击 Add...
。
填写一个普通用户账号,让他成为本机 E1
的本地 Admin。
到此,客户机配置完毕。
每台客户机配置都是如此,只是需要加入不同的域,域名的填写需要注意。另外,需要添加什么用户成为本地 Admin,大家自行决定。
SQL Server 配置示例
接下来,我们配置几台 SQL Server。我们将在 WEB03
,SQL03
,SQL05
,SQL07
,SQL11
上安装 SQL Server 2019 Express 以及 SQL Server Management Studio (SMSS)。
我们配置一台作为模板,其他的大家自行配置。
我们说 Web 服务器 WEB03
也是自带 SQL Server 的,所以我们先配置这个 WEB03,并将此作为模板,其他机器配置都是一样的。
Web03 配置
首先一样,使用 sysprep
重置一下。
然后设置主机名(WEB03
),添加静态 IP,DNS 设置为 E-RDC01 的 IP,最后添加一个 Shares
分享到 C:\
。
添加 Windows Server 到域
接着,我们要将 WEB03
主机添加到 ECORP.COM
域。
Windows Server 添加到域的方式和 Windows Client(Windows 10)有所不同。看步骤。
在 Server Manager 中,点击 Local Server
-> WORKGROUP
。
点击 Change
。
选择 Domain
,输入要加入的域,ECORP.COM
。
输入 Admin 账户密码。
OK
。
点击 OK
。准备重启。
重启。
重启之后,就可以用域管理员账号登录了。
查看 E-RDC01
,可以在 Computers
中看到 WEB03
。
安装 SQL Server 2019 Express
从这里下载 SQL Server 2019 Express。
从这里下载 SMSS。
首先安装 SQL Server 2019 Express。
双击安装包。
选择 Basic
。
等待安装完成。
关闭窗口。
安装 SQL Server Management Studio
双击安装包,接收默认设置,开始安装。
安装完成之后,点击开始菜单,搜索 SQL Server Management Studio
,打开应用。
按照默认配置选择 Connect
即可连接到安装好的 SQL Server。
设置 SQL Server 监听 1433 端口
现在查看一下,1433 端口是否开启。
结果是没有。
原因是 SQL Server 默认在启动服务的时候,会请求一个动态的空闲端口,而没有监听固定端口。
接下来我们需要配置一下,让其监听 1433 端口,一边今后测试。
打开开始菜单,搜索 SQL Server Configuration Manager
,打开应用。
找到如图所示条目。
右键将 TCP/IP
设置为 Enable
。
点击 OK
,先不重启服务,继续配置。
右键 TCP/IP
,选择属性。
将 IP2
(IPv4) 的 Enablled
设置为 Yes
。
然后拉到最底下,如下图设置端口 1433
。Apply
-> OK
。
然后重启 SQL Service。
查看 1433 端口状态,已经开启。
配置 Windows Network Firewall 允许 1433 端口流量
如果现在我们想从其他主机连接到本机的 SQL Server 端口,流量是被拦截的。
我们必须配置防火墙,允许 1433 流量进入。
搜索 Control Panel
。
如图依次操作。
添加新规则。
依次操作。
可以不勾选 Public
,方便起见,全部勾选。
新规则已启用。
再次尝试从其他主机连接,连接成功。
配置 Apache 服务器
我们使用非常方便的 XAMPP 程序来配置 Apache 服务器。
双击安装包。
选择 OK
,我们将把 XAMPP 安装到 C:\
目录。
一路 NEXT 到安装界面。
Finish。
管理界面。
总结
至此,我们已经可以配置所有的目标机器,无论是平常的工作站,或者是 SQL Server。
剩下的 FSOCIETY.COM 域下面还有两个 SQL Server 和工作站,大家自行参照上面的教程来配置。
有任何问题,大家可以留言。