一、概述
微软域控提供了入域机器的统一策略管理、ldap认证、DNS、NTP、Kerberos认证、Net-NTLM、PKI证书等多项围绕微软生态的服务。一旦域控被拿下,可通过域控下发策略控制所有入域机器以及使用域账号的服务,在诸多红蓝演练中,域控向来都是“兵家必争之地”。
一年一度的大型攻防演练在即,域控是办公网防守领域中分数项占比较多的项目,如何保护才能最大化减少攻击面,是本篇接下来要讲的内容。
二、window 基线加固
-
搭建AD 域控请优先选择windows 2016 Server 及以上版本。这样可以不用care历史漏洞,比如MS14-068,MS17-010以及Gpp漏洞等;
-
关闭高危服务。禁用Remote Registry、Print Spooler、Windows Remote Management (WS-Management)、Internet Connection Sharing (ICS)等;
-
安装杀毒软件和EDR工具。建议安装类似SEP、BitDefender之类的杀毒工具,以及sysmon服务(sysmon生成日志策略见https://github.com/SwiftOnSecurity/sysmon-config);
-
配置WSUS。设置WSUS指向企业内部补丁更新平台,月度定期安装最新补丁;针对域控常见的漏洞,见附录1.
-
设置屏幕保护。设置15分钟,超过即锁屏,恢复时须密码;
三、域控运维加固
3.1 登录来源限制跳板机
-
网络防火墙限制指定跳板机运维。域控的运维仅允许通过跳板机可以访问,即跳板机ip:any==>域控IP:3389; 其他来源访问域控3389端口禁止;
-
跳板机开启审计录屏操作。安全审核人员定期审核针对域控的录屏内容,确保无运维之外的高危操作;
3.2 主机防火墙设置
开启window主机防火墙。针对域网络、专用网络、公用网络启用服务器
3.2.1 入站方向
来源IP |
来源port |
域控本机IP |
域控本机监听port |
对应的服务 |
办公网所有IP |
49152-65535/UDP |
本机通信的网卡IP |
123/UDP |
W32Time |
入域机器IP |
49152-65535/TCP |
135/TCP |
RPC 终结点映射程序 |
|
49152-65535/TCP |
464/TCP/UDP |
Kerberos 密码更改 |
||
49152-65535/TCP |
49152-65535/TCP |
RPC for LSA、SAM、NetLogon (*) |
||
49152-65535/TCP/UDP |
389/TCP/UDP |
LDAP |
||
49152-65535/TCP |
636/TCP |
LDAP SSL |
||
49152-65535/TCP |
3268/TCP |
LDAP GC |
||
49152-65535/TCP |
3269/TCP |
LDAP GC SSL |
||
办公网所有IP |
53,49152-65535/TCP/UDP |
53/TCP/UDP |
DNS |
|
入域机器IP |
49152-65535/TCP |
49152-65535/TCP |
FRS RPC (*) |
|
49152-65535/TCP/UDP |
88/TCP/UDP |
Kerberos |
||
49152-65535/TCP/UDP |
445/TCP |
SMB (**) |
||
49152-65535/TCP |
49152-65535/TCP |
DFSR RPC (*) |
||
跳板机IP |
1024~65535/TCP |
3389/TCP |
RDP |
|
入站方向,其他服务禁止 |
3.2.2出站方向
本地服务 |
出站目标IP |
出站目标Port |
日志采集服务 |
日志采集的服务IP |
日志采集的服务端口 |
WSUS |
WSUS服务IP |
80、443 |
杀毒软件更新服务 |
杀毒软件后台IP |
443 |
DNS |
递归解析的外网DNS IP |
53 |
运维工具 |
运维后台服务IP |
运维后台服务端口 |
出站方向,其他服务禁止 |
3.3 白名单工具运维(慎重设置)
通过系统自带的AppLocker限制软件为运维需要配置的脚本、工具和应用程序,并定期更新白名单软件 。
从【本地计算机策略】==>【计算机配置】==>【Windows设置】==>【安全设置】==>【应用程序控制策略】==>【Applocker】进行设置。Applocker设置需要不断调试,建议优先在测试环境进行。设置思路如下:
-
操作系统启动后,经过15分钟后,看下任务管理器,看当前系统依赖的进程名单和路径,将其加到Applocker名单中;
-
cmd、powershell命令仅允许域控管理员指定帐号可以运行;
-
添加运维人员经常使用的工具,加入到Applocker名单中;
四、域控账号加固
4.1. 基本配置 : 帐号密码策略
4.2. 基本配置:最小化权限设置
在域控上对加入域的机器 OU,应用以下策略:
【默认域控策略】==>【计算机配置】==>【Windows设置】==>【安全设置】==>【本地策略】==>【用户权限分配】中配置
拒绝从网络访问这台计算机 |
TEST.COMAdministrator,TEST.COMAdministrators,TEST.COMEnterprise Admins,TEST.COMDomain Admins |
拒绝作为批处理作业登录 |
TEST.COMAdministrator,TEST.COMAdministrators,TEST.COMEnterprise Admins,TEST.COMDomain Admins |
拒绝以服务身份登录 |
TEST.COMAdministrator,TEST.COMAdministrators,TEST.COMEnterprise Admins,TEST.COMDomain Admins |
拒绝本地登录 |
TEST.COMEnterprise Admins,TEST.COMDomain Admins |
拒绝通过远程桌面服务登录 |
TEST.COMAdministrator,TEST.COMEnterprise Admins,TEST.COMDomain Admins |
在域控对应的父域中,即林中针对域控制器的OU,应用以下策略,在保障安全权限最小化的情况下,也便于管理员组的成员可以执行林范围内的灾难恢复。
从网络访问此计算机 |
Administrators,ENTERPRISE DOMAIN CONTROLLERS,Parent.COMEnterprise Admins |
允许本地登录 |
Administrators,ENTERPRISE DOMAIN CONTROLLERS,Parent.COMEnterprise Admins |
允许通过远程桌面服务登录 |
Administrators,Parent.COMEnterprise Admins |
4.3. 基本配置:组策略配置
在本地组策略以及GPO策略中,设置路径【计算机配置】==>【Windows设置】==>【安全设置】==>【本地策略】==>【安全选项】,配置如下
“帐户来宾账户状态“设置为: 已禁用;
“账户:使用空密码的本地账户只允许控制台登陆“设置为:已启用。
“Microsoft 网络服务器:暂停会话前所需的空闲时间数量” 设置为:15分钟;
“登陆时间过期后断开与客户端的连接“设置为:已启用;
“交互式登录: 提示用户在密码过期之前更改密码” 设置为5天;
网络访问中“Everyone权限应用于匿名用户“设置为:已禁用;
“不允许SAM帐户的匿名枚举“设置为:已启用;
“不允许SAM帐户和共享的匿名枚举”设置为:已启用;
”允许匿名SID/名称转换“设置为:已禁用;
4.4. 基本配置:krbtgt帐号设置超长密码,并禁用 ;
4.5. 进阶配置:以下高敏感帐号,禁止设置委派;
隶属于以下组中的帐号 Enterprise Admins Domain Admins Schema Admins Key Admins Enterprise Key Admins Administrators krbtgt |
|
4.6. 进阶配置:帐号分离
1) 运维域控的帐号独立命名。如a_zhangsan、a_lisi, 禁止使用administrator帐号进行运维;
2) 运维入域的服务器(如sharepoint、sqlserver或是exchange服务),单独设置命名帐号,如s_wangwu、s_zhaoliu等,且避免将该类帐号加入到上述4.5中列举的高敏感帐号组中;
4.7. 进阶配置:禁止普通用户配置SeEnableDelegationPrivilege权限;
一旦获取到有SeEnableDelegationPrivilege权限的用户,即意味着整个域控被拿下。
【默认域控策略】==>【计算机配置】==>【Windows设置】==>【安全设置】==>【本地策略】==>【用户权限分配】中配置如下
8)进阶配置:指定的域管帐号具备有dcsync权限;
五、配置审核策略
1) 基本配置:对安全日志、sysmon日志, 设置日志大小至少1048576KB(即1GB);
设置路径:【管理工具】==>【事件查看器】 分别在安全日志、Sysmon日志上右键–>属性
2)基本配置:配置高级审核策略,以下9个审核策略全部启用,并勾选成功和失败;
六、定期人工审计
1) 企业安全审计人员定期审计上述配置的有效性;
2) 谈到域控方面的安全审计,这里不得不提下国外Trimarc公司的创始人Sean Metcalf撰写的审计脚本Invoke-TrimarcADChecks.ps1(详情见其官网https://www.hub.trimarcsecurity.com/post/securing-active-directory-performing-an-active-directory-security-review),拜读下代码内容,结合自己企业环境做些定制化修改,相信会对域控的审计有很大的帮助。
攻是术,防是道。愿和大家一起探讨攻防之道。
附录:域控经典漏洞
-
域用户提权(CVE-2022-26923 )
-
Zerologon漏洞(CVE-2020-1472)
-
Name impersonation漏洞(CVE-2021-42278)
-
KDC bamboozling漏洞(CVE-2021-42287)
-
Windows PrintNightmare漏洞(CVE-2021-1675和CVE-2021-34527)
-
NTLM中继攻击漏洞(CVE-2019-1040)
-
域用户提权漏洞(MS14-068)
-
Gpp漏洞(MS14-025)
-
SAMR协议漏洞(MS14-016)
原文始发于微信公众号(布鲁队):攻防演练之域控加固篇