攻防演练之域控加固篇

渗透技巧 2年前 (2022) admin
885 0 0

一、概述

微软域控提供了入域机器的统一策略管理、ldap认证、DNSNTPKerberos认证、Net-NTLMPKI证书等多项围绕微软生态的服务。一旦域控被拿下,可通过域控下发策略控制所有入域机器以及使用域账号的服务,在诸多红蓝演练中,域控向来都是兵家必争之地

一年一度的大型攻防演练在即,域控是办公网防守领域中分数项占比较多的项目,如何保护才能最大化减少攻击面,是本篇接下来要讲的内容。

二、window 基线加固

  • 搭建AD 域控请优先选择windows 2016 Server 及以上版本。这样可以不用care历史漏洞,比如MS14-068MS17-010以及Gpp漏洞等;

  • 关闭高危服务。禁用Remote RegistryPrint SpoolerWindows Remote Management (WS-Management)Internet Connection Sharing (ICS)等;

  • 安装杀毒软件和EDR工具。建议安装类似SEPBitDefender之类的杀毒工具,以及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 LSASAMNetLogon (*)

 

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

 

80443

 

杀毒软件更新服务

 

杀毒软件后台IP

 

443

 

DNS

 

递归解析的外网DNS IP

 

53

 

运维工具

 

运维后台服务IP

 

运维后台服务端口

 

出站方向,其他服务禁止

3.3 白名单工具运维(慎重设置)

通过系统自带的AppLocker限制软件为运维需要配置的脚本、工具和应用程序,并定期更新白名单软件 。

从【本地计算机策略】==>【计算机配置】==>Windows设置】==>【安全设置】==>【应用程序控制策略】==>Applocker】进行设置。Applocker设置需要不断调试,建议优先在测试环境进行。设置思路如下:

    • 操作系统启动后,经过15分钟后,看下任务管理器,看当前系统依赖的进程名单和路径,将其加到Applocker名单中;

    • cmdpowershell命令仅允许域控管理员指定帐号可以运行;

    • 添加运维人员经常使用的工具,加入到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_zhangsana_lisi, 禁止使用administrator号进行运维;

2) 运维入域的服务器sharepointsqlserver或是exchange服务,单独设置命名帐号,如s_wangwus_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-1675CVE-2021-34527

  • NTLM中继攻击漏洞(CVE-2019-1040)

  • 域用户提权漏洞(MS14-068

  • Gpp漏洞(MS14-025)

  • SAMR协议漏洞(MS14-016)

原文始发于微信公众号(布鲁队):攻防演练之域控加固篇

版权声明:admin 发表于 2022年7月12日 下午8:16。
转载请注明:攻防演练之域控加固篇 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...