AD域安全攻防实践(附攻防矩阵图)

以域控为基础架构,通过域控实现对用户和计算机资源的统一管理,带来便利的同时也成为了最受攻击者重点攻击的集权系统。

01、攻击篇

针对域控的攻击技术,在Windows通用攻击技术的基础上自成一套技术体系,将AD域攻防分为信息收集、权限提升、凭证窃取、横向移动、权限维持等攻击阶段,把域环境下众多且繁杂的攻击行为映射到ATT&CK,梳理成一个AD域攻防矩阵图。

b519dbce694da70adeaf8bdd115cabe1.png

(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域信息探测行为。

2117dba24302ead453ebeeaf5f149b71.png

(2)权限提升

攻击者会通过各种方式来获取域控权限,最直接的方式就是添加一个域管理员账号。通过监测4728事件,关注敏感用户组特权账号添加情况。

8b5a56c63f262d1ee2cb618c19c94928.png

(3)凭证获取

窃取凭证最常用的一种方式就是使用mimikatz获取LSASS内存中保存的用户凭证。通过监测4663事件,从而发现尝试LSASS进程窃取凭证的操作。

de7a7da7bba43446050bd033ce7a2632.png

(4)横向移动

在内网横向过程中,哈希传递攻击是最常用的手法,但因为和正常的访问行为非常类似,检测是比较困难的。通过监测4624事件,设置白名单机制,从正常的访问行为中,找出异常登录行为。

5402e081822fc31d41b6f7bd346262e8.png

(5)权限维持

攻击者常用黄金票据来做域控权限维持,利用krbtgt的hash来伪造TGT,就可以随意伪造域内管理员用户。通过监测4624事件,利用帐户与SID的对应关系,可以找到伪造的用户,从而识别可疑的黄金票据攻击。

35db71520c52e238248ba22c0a0deab5.png

(6)痕迹清除

为避免入侵行为被发现,攻击者总是会通过各种方式来清除痕迹,最简单粗暴的就是清除安全日志。通过监测1102事件,可以监控安全日志被清除的操作。

8af51e6e2aca94c18446c4436aa5bc79.png

03、结束语

基于AD域控的日志分析,将AD域攻防矩阵图与安全检测策略进行对应,自建安全检测策略30+,覆盖常见的域攻击手法,并持续地扩展和优化检测策略,从而保障AD域的安全。

我想,这个探索的过程,最大的收获莫过于对安全日志的分析和攻击场景构建的深刻理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/1272.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装Docker

Docker分为CE和EE两大版本。CE即社区版(免费,支持周期7个月),EE即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境…

Nacos 注册中心 - 健康检查机制源码

目录 1. 健康检查介绍 2. 客户端健康检查 2.1 临时实例的健康检查 2.2 永久实例的健康检查 3. 服务端健康检查 3.1 临时实例的健康检查 3.2 永久实例服务端健康检查 1. 健康检查介绍 当一个服务实例注册到 Nacos 中后,其他服务就可以从 Nacos 中查询出该服务…

LeetCode234_234. 回文链表

LeetCode234_234. 回文链表 一、描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2&…

Day920.结构化日志业务审计日志 -SpringBoot与K8s云原生微服务实践

结构化日志&业务审计日志 Hi,我是阿昌,今天学习记录的是关于结构化日志&业务审计日志的内容。 1、什么是结构化日志 结构化日志(Structured Logging)是一种将日志信息组织为结构化数据的技术。 传统的日志通常是一些文…

UE实现建筑分层抽屉展示效果

文章目录 1.实现目标2.实现过程2.1 基础设置2.2 核心函数3.参考资料1.实现目标 使用时间轴对建筑楼层的位置偏移进行控制,实现分层抽屉的动画展示效果。 2.实现过程 建筑抽屉的实现原理比较简单,即对Actor的位置进行偏移,计算并更新其世界位置即可。这里还是基于ArchVizExp…

Mybatis报BindingException:Invalid bound statement (not found)异常

一、前言 本文的mybatis是与springboot整合时出现的异常,若使用的不是基于springboot,解决思路也大体一样的。 二、从整合mybatis的三个步骤排查问题 但在这之前,我们先要知道整合mybatis的三个重要的工作,如此才能排查&#x…

SDG,ADAM,LookAhead,Lion等优化器的对比介绍

本文将介绍了最先进的深度学习优化方法,帮助神经网络训练得更快,表现得更好。有很多个不同形式的优化器,这里我们只找最基础、最常用、最有效和最新的来介绍。 优化器 首先,让我们定义优化。当我们训练我们的模型以使其表现更好…

MySQL中事务的相关问题

事务 一、事务的概述: 1、事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit…

[ROC-RK3568-PC] [Firefly-Android] 10min带你了解Camera的使用

🍇 博主主页: 【Systemcall小酒屋】🍇 博主追寻:热衷于用简单的案例讲述复杂的技术,“假传万卷书,真传一案例”,这是林群院士说过的一句话,另外“成就是最好的老师”,技术…

再也不想去字节跳动面试了,6年测开面试遭到这样打击.....

前几天我朋友跟我吐苦水,这波面试又把他打击到了,做了快6年软件测试员。。。为了进大厂,也花了很多时间和精力在面试准备上,也刷了很多题。但题刷多了之后有点怀疑人生,不知道刷的这些题在之后的工作中能不能用到&…

【Python/Opencv】图像权重加法函数:cv2.addWeighted()详解

【Python/Opencv】图像权重加法函数:cv2.addWeighted()详解 文章目录【Python/Opencv】图像权重加法函数:cv2.addWeighted()详解1. 介绍2. API3. 代码示例与效果3.1 代码3.2 效果4. 参考1. 介绍 在OpenCV图像加法cv2.add函数详解详细介绍了图像的加法运…

字符串匹配【BF、KMP算法】

文章目录:star:BF算法代码实现BF的改进思路:star:KMP算法🚩next数组🚩代码实现优化next数组最终代码⭐️BF算法 BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将主串S的第一个字符与模式串P…

三、Python 操作 MongoDB ----非 ODM

文章目录一、连接器的安装和配置二、新增文档三、查询文档四、更新文档五、删除文档一、连接器的安装和配置 pymongo: MongoDB 官方提供的 Python 工具包。官方文档: https://pymongo.readthedocs.io/en/stable/ pip安装,命令如下&#xff1…

JVM调优,调的是什么?目的是什么?

文章目录前言一、jvm是如何运行代码的?二、jvm的内存模型1 整体内存模型结构图2 堆中的年代区域划分3 对象在内存模型中是如何流转的?4 什么是FULL GC,STW? 为什么会发生FULL GC?5 要调优,首先要知道有哪些垃圾收集器及哪些算法6 调优不是盲目的,要有依据,几款内…

HttpRunner3.x(1)-框架介绍

HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。主要特征继承的所有强大功能requests ,只需以人工方式获得乐趣即可处理HTTP&#xf…

【每日反刍】——指针运算

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日反刍 💌其他专栏: 🔴 每日一题 🟢 读书笔记 🟡 C语言跬步积累 🌈座右铭:广积粮,缓称…

【Java进阶篇】—— File类与IO流

一、File类的使用 1.1 概述 File 类以及本章中的各种流都定义在 java.io 包下 一个File对象代表硬盘或网络中可能存在的一个文件或文件夹(文件目录) File 能新建、删除、重命名 文件和目录,但 File不能访问文件内容本身。如果我们想要访问…

【LeetCode】二叉树基础练习 5 道题

第一题:单值二叉树 题目介绍: 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回true;否则返回false。 //题目框架 bool isUnivalTree(struct TreeNode* root){ }…

【24】Verilog进阶 - 序列检测2

VL35 状态机-非重叠的序列检测 1 思路 状态机嘛,也是比较熟悉的朋友啦, 我就火速写出了STG。如下黑色所示: 2 初版代码 `timescale 1ns/1nsmodule sequence_test1(input wire clk ,input wire rst ,input wire data ,output reg flag ); //*************code**********…

系统架构:经典三层架构

引言 经典三层架构是分层架构中最原始最典型的分层模式,其他分层架构都是其变种或扩展,例如阿里的四层架构模式和DDD领域驱动模型。阿里的 四层架构模型在三层基础上增加了 Manager 层,从而形成变种四层模型;DDD架构则在顶层用户…