AD域安全攻防实践(附攻防矩阵图)
以域控为基础架构,通过域控实现对用户和计算机资源的统一管理,带来便利的同时也成为了最受攻击者重点攻击的集权系统。
01、攻击篇
针对域控的攻击技术,在Windows通用攻击技术的基础上自成一套技术体系,将AD域攻防分为信息收集、权限提升、凭证窃取、横向移动、权限维持等攻击阶段,把域环境下众多且繁杂的攻击行为映射到ATT&CK,梳理成一个AD域攻防矩阵图。
(1)域内信息收集
当攻击者获得内网某台域内服务器的权限,就会以此为起始攻击点,尽可能地去收集域的信息,例如:攻击者会先在进行本机信息收集,找到域控服务器地址,收集域内用户和管理员的信息列表,使用BloodHound、PVEFindADUser、PsLoggedOn等工具进一步定位域管理员,以找到域控的最佳攻击路径。
(2)域内权限提升
攻击者在内网横向过程中,可以通过入侵域管理员所登录的服务器,利用漏洞获取服务器system权限,找到域管理的账号、进程或是身份验证令牌,从而获取域管理员权限。
在域控服务器未及时更新补丁的情况下,攻击者可以通过域内权限提升漏洞直接攻击域控,将域内普通用户权限提升至域管权限。如MS14-068、NetLogon特权提升漏洞(CVE-2020-1472)、CVE-2021-42278 & CVE-2021-42287、CVE-2022-26963、CVE-2021-1675等,一旦被攻击者利用成功,可直接获得域管理员权限。
(3)域内凭证获取
攻击者在没有域用户凭据时,往往会使用暴力破解、密码喷洒等手段进行域用户凭证的获取。
攻击者在获得服务器权限后,可以通过LSASS窃取凭证、DCSync、ntds.dit文件提取等方式收集目标主机上的相关凭证,以便通过用户凭证进行横向移动。
(4)域内横向移动
攻击者通过收集域内用户的凭证信息在内网中横向移动,不断地扩大资产范围,并不断地重复信息收集的步骤,直至攻击者获得关键目标。
横向移动攻击手法包括:IPC连接、At/Schtasks计划任务、PsExec、WMI、WMIRM、哈希传递攻击(Pass the hash)、票据传递攻击(Pass the ticket)、密钥传递攻击(Pass the key)等。
(5)域内权限维持
当攻击者在获取域控权限后,会通过一定的持久化操作以维持域管权限,从而达到长期控制域控的目的。
域内权限维持的手法包括黄金票据、白银票据、Skeleton Key(万能密码)、DSRM域后门、注入SSP、SID History后门、AdminSDHolder、GPO组策略后门、DCShadow、约束委派、基于资源的约束委派 、基于ACL的后门等。
02、防护篇
针对AD域安全防护产品,商业的如Microsoft Defender for Identity、Tenable.ad、ITDR-AD,开源的WatchAD,都是可以选择的方向。面对众多的AD域攻击行为,我们也可以选择自建检测策略,通过分析AD域控的日志,对攻击行为进行实时检测。
将AD域日志引入日志分析平台,通过模拟域攻击行为产生攻击事件,以攻击日志提取关键特征,构建安全规则,形成检测策略。
自建检测策略很难全部覆盖,这很大程度上就取决于自身对AD域攻防的理解。为此我们需要把精力投入到那些攻击者最常用的域攻击技术上,比如BloodHound信息收集、域管账号创建、LSASS凭证窃取、哈希传递攻击、黄金票据攻击等。
(1)信息收集
攻击者在收集一定信息后,通过BloodHound定位域管理员以找到最佳攻击路径。通过监测5145事件,可识别到可疑的Sharphound域信息探测行为。
(2)权限提升
攻击者会通过各种方式来获取域控权限,最直接的方式就是添加一个域管理员账号。通过监测4728事件,关注敏感用户组特权账号添加情况。
(3)凭证获取
窃取凭证最常用的一种方式就是使用mimikatz获取LSASS内存中保存的用户凭证。通过监测4663事件,从而发现尝试LSASS进程窃取凭证的操作。
(4)横向移动
在内网横向过程中,哈希传递攻击是最常用的手法,但因为和正常的访问行为非常类似,检测是比较困难的。通过监测4624事件,设置白名单机制,从正常的访问行为中,找出异常登录行为。
(5)权限维持
攻击者常用黄金票据来做域控权限维持,利用krbtgt的hash来伪造TGT,就可以随意伪造域内管理员用户。通过监测4624事件,利用帐户与SID的对应关系,可以找到伪造的用户,从而识别可疑的黄金票据攻击。
(6)痕迹清除
为避免入侵行为被发现,攻击者总是会通过各种方式来清除痕迹,最简单粗暴的就是清除安全日志。通过监测1102事件,可以监控安全日志被清除的操作。
03、结束语
基于AD域控的日志分析,将AD域攻防矩阵图与安全检测策略进行对应,自建安全检测策略30+,覆盖常见的域攻击手法,并持续地扩展和优化检测策略,从而保障AD域的安全。
我想,这个探索的过程,最大的收获莫过于对安全日志的分析和攻击场景构建的深刻理解。
AD域安全攻防实践(附攻防矩阵图)的更多相关文章
- 在权限受限制的AD域环境中部署SQL Server AlwaysOn高可用性
最近在给一个客户部署基于微软TFS的软件生命周期管理平台时,客户要求数据库层实现高可用性,减少因数据库服务器故障影响软件开发进展. 客户现有域是一台搭建在Windows Server 2008上的级别 ...
- <网络攻防实践> 课程总结20169216
课程总结20169216 每周作业链接汇总 第一周作业:Linux基础入门(1-5).基本概念及操作 第二周作业:linux基础入门(6-11).网络攻防技术概述网络攻防试验环境搭构.Kali教学视频 ...
- 20169214 2016-2017-2 《网络攻防实践》第十一周实验 SQL注入
20169214 2016-2017-2 <网络攻防实践>SQL注入实验 SQL注入技术是利用web应用程序和数据库服务器之间的接口来篡改网站内容的攻击技术.通过把SQL命令插入到Web表 ...
- AD域登录验证
AD域登录验证 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5799699.html 需求 系统在登录的时候,需要根据用户名和密码验证连接域服务器进行 ...
- freeradius整合AD域作anyconncet认证服务器
一.服务器要求 Radius服务器:centos6.6.hostname.selinux disabled.stop iptables AD域服务器:Windows Server 2008 R2 E ...
- 如何查看/统计当前AD域控制器的活动用户?
最近公司想知道某台AD域控制器上当前连接了多少活动用户? 此前个人只知道以下不是非常完善且统计起来比较麻烦的方法: 方法1:查看共享会话数.(不完全准确) 方法2:查看当前的DNS记录.(这种方法统计 ...
- AD域-让共享目录只显示用户有权限访问的文件夹
问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...
- AD域的安装(在Windows Server 2003中安装Active Directory)
在Active Directory中提供了一组服务器作为身份验证服务器或登录服务器,这类服务器被称作域控制器(Domain Controller,简称DC).建立一个AD域的过程实际就是在一台运行Wi ...
- AD域内DNS服务器如何解析公网域名
原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...
- 解决服务器SID引起虚拟机不能加入AD域用户,无法远程登录的问题
最近在公司搭建AD域控制器,发现无法在计算机真正添加域用户,也就是添加的用户虽然可以在本地登录,但是无法远程登录,尝试多种方法都无法解决,而最终原因居然是虚拟机导致的服务器的SID冲突.本文记录下该问 ...
随机推荐
- pandas的数据结构--Series创建使用
# 1. 使用Series创建一个空的系列:import pandas as pds=pd.Series()print(s)输出结果为:Series([], dtype: float64) # 2. ...
- nchu第三次面向对象编程博客作业
前言: 本次博客包含的内容有pta题目集6-8(电信计费)三次题目集.这次的难点主要是理解老师给的类图的内容,明白各部分的作用,以及如何使各类之间联系起来.只要能够理解老师给的类图结构之后就可以比 ...
- Keil 2032 license 解决方法(keygen)
https://pan.baidu.com/s/1nH_KrsHoLEJlJQKhfIoXHA
- 前端vue框架上手记录
---恢复内容开始--- Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-se ...
- word在指定页面设置页码
需求:比如,毕业论文前面几页要求罗马数字(摘要-目录)(这里设置页码格式即可完成),后面全是阿拉伯数字(这里比较难搞,以下方法是解决这里的) 方法: 1. 光标移到指定页面的第一个字符所在的位置前 2 ...
- 后台传回来的Map类型的数据在前台中的JS代码中使用
Map<String, String> projectTypeCodeMap = SysCodeUtils.getSysCodeMap(request, CommonFields.XT_P ...
- Flutter showModalBottomSheet 自适应高度
showModalBottomSheet( context: context, shape: const RoundedRectangleBorder( borderRadius: BorderRad ...
- spring-security-oauth2使用遇到的坑
异常信息为 2021-08-22 14:24:11.086 WARN 17812 --- [ main] ConfigServletWebServerApplicationContext : Exce ...
- jsp第九周作业
1.做一个图书类Book id,name,price ,get,set访问器,构造方法2个,1个无参,1个有参做一个测试类,在main中创建3个图书对象,放到list集合中.做一个菜单,可以添加,删除 ...
- centos mail 发邮件
1.安装mailx yum -y install mailx 2. /etc/mail.rc 最后增加邮件配置如 set smtp=smtp.qq.comset smtp-auth=loginset ...