域控安全-EventID 4662&Powershell将Schema下Objects的schemaIDGUID属性离线保存
首先看一下EventID 4662的样子

0x01 什么情况下会产生该日志呢?
该日志出现在对Active Directory Object设置SACL时会出现
0x02 为什么要监控该日志呢?
1、非法人员入侵后的异常提权(更多安全审核监控建议详见https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/appendix-a-security-monitoring-recommendations-for-many-audit-events)
2、运维过程中的错误操作溯源
0x03 该日志中每一项的含义是什么?
详细的日志含义请参考微软官网(https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4662)
0x04 需要重点关注哪些字段?
Account Name:具体操作对象是谁? 个人认为高低权限帐号均应被监控,万一是低权限帐号被提权呢?
Access Mask:具体的操作类型是什么?
Note GUID:具体操作的对象是什么?这里我们打算展开说一下
0x05 GUID
UUID的二进制编码因系统而异。许多系统完全以大端序(big-endian)编码UUID。Microsoft在其COM/OLE库中对UUID进行编组,使用混合端格式,其中UUID的前三组是小端序/小尾序(little-endian),后两组是大端序/大尾许(big-enaian),这也是为什么日志中显示出来的GUID要通过ldap filter是需要进行转换(前三组每个部分都需要更改(反转)字节顺序,而后两组不需要),例如日志中的“bf967a86-0de6-11d0-a285-00aa003049e2”放到ldap 搜索里要转换成“\ 86 \ 7a \ 96 \ bf \ e6 \ 0d \ d0 \ 11 \ a2 \ 85 \ 00 \ aa \ 00 \ 30 \ 49 \ e2”。
但是这里存在一个问题,我们一般会将日志集中(具体工具看个人习惯),然后通过例如storm此类工具进行日志分析,分析的过程中我们肯定不能一边分析一边去转换日志中的guid,然后再去查询每个guid的含义,这样会大大降低日志检索的时效性,于是我们想到了去离线这些GUID的含义,于是翻遍微软所有文档,没有一个地方有统一的汇总,看来只能自己搞了。
0x06 如何离线存储所有GUID以及对应的Object
首先,该GUID对应AD中的属性名称是schemaIDGUID,我们从AD的图形界面看到的也是八进制的格式。

我们尝试通过Powershell去检索该属性对应的值,发现出来的结果也是10进制的

这里我们需要的GUID相差甚远,所以我们需要想办法转译他们,进行人工翻译:
#将架构信息全部保存
$Schema = [ADSI]("LDAP://CN=Schema,CN=Configuration,DC=xxx,DC=xxx")
$CNs = $Schema.Children
#循环遍历所有对象的schemaIDGUID
foreach($CN in $CNs){
$name = $CN.adminDisplayName
$guidstring = $null
$a = $CN.schemaIDGUID -split " "
$b = $a.Length
for ($i = 0; $i -lt $b; $i++) {
$c = $a[$i]
#转成十进制
$number = [Convert]::ToInt32("$c", 10)
#转成十六进制
$number = $number.ToString('X')
#这块有个比较恶心的地方,Powershell输出的十六进制如果开头是0,则会去掉该0,直接显示下一个数字,下面的判断其实可以优化,可以去掉第一个if,只要不足2位直接添加0即可
if ($number -eq "") {
$number = ""
}
if ($number.Length -lt "") {
$number = "" + $number
}
#将每组10进制转换16进制后的字符进行拼接
$guidstring += $number
}
#将拼接的字符转为16进制,然后再转成guid的形式
[System.Byte[]]$byte = ($guidstring -split '(..)' | ? {$_} | % { [System.Convert]::ToInt64($_, 16)})
[System.Guid]$guid = new-object System.Guid(, $byte)
#在屏幕中输出guid以及该object对应的名称,当然也可以直接输入到文本中进行保存
Write-Host $guid,$name
通过以上方式,我们就可以得到全部架构对象的schemaIDGUID属性了,我们可以将其组成一个List,方便我们写日志监控时对日志中的guid进行快速匹配,从而清楚的了解“到底修改了什么?”
域控安全-EventID 4662&Powershell将Schema下Objects的schemaIDGUID属性离线保存的更多相关文章
- DW(四):Azure域控服务器配置
polybase集群要求使用相同的域账号,本节介绍选择用Azure虚拟机搭建自己的内网DNS服务器和域控 创建虚拟网络polybase,创建名为DNS的子网,如下图: 创建虚拟机,选择polybase ...
- 一次完整的从webshell到域控的探索之路
前言 内网渗透测试资料基本上都是很多大牛的文章告诉我们思路如何,但是对于我等小菜一直是云里雾里. 于是使用什么样的工具才内网才能畅通无阻,成了大家一直以来的渴求. 今天小菜我本着所有师傅们无私分享的精 ...
- windows server 2008额外域控提升为主域控
windows server 2008额外域控提升为主域控 ---图形界面操作方法 https://blog.csdn.net/tladagio/article/details/79618338 wi ...
- 域控场景下windows安全日志的分析--审计认证行为和命令的历史记录
https://www.cnblogs.com/KevinGeorge/p/8563458.html 一.域控windows安全日志基本操作 1.打开powershell或者cmd 1 #gpedit ...
- Windows Server 2012部署第一台域控
windows server 2012在部署DC方面有了一些改变,不但在操作上有一些改变,而且有了新的DC克隆的功能.本文就先来体验一下如何将一台windows server 2012 RTM服务器提 ...
- 服务器搭建域控与SQL Server的AlwaysOn环境过程(四)配置AlwaysOn
0 引言 这一篇才真正开始搭建AlwaysOn,前三篇是为搭建AlwaysOn 做准备的. 步骤 1.3 配置AlwaysOn 请先使用本地用户Administrator登录这两个集群节点并执行下面的 ...
- Windows server 2012 利用ntdsutil工具实现AD角色转移及删除域控方法
场景1:主域控制器与辅助域控制器运行正常,相互间可以实现AD复制功能.需要把辅助域控制器提升为主域控制器 ,把主域控制器降级为普通成员服务器:这种场景一般应用到原主域控制器进行系统升级(先转移域角色, ...
- 域渗透——获得域控服务器的NTDS.dit文件
0x00 前言 在之前的文章<导出当前域内所有用户hash的技术整理>曾介绍过通过Volume Shadow Copy实现对ntds.dit文件的复制, 可用来导出域内所有用户hash.本 ...
- 001.AD域控简介及使用
一 AD概述 1.1 AD简介 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系. 当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可 ...
随机推荐
- foobox更新日志
2020-1-31, 6.1.5.1a 版(*) 跟进汉化版修正.(*) MusicTag升级到 1.0.4.0.(*) 部分图标改良,其他优化和修正.(+) 丰富网络功能,增加一个搜索源,一个榜单源 ...
- 我用STM32MP1做了个疫情监控平台3—疫情监控平台实现
目录 1.前言 2.数据接口的获取 3.Qt界面的实现 4.在开发板上运行Qt程序 5.使用无线模块联网 6.代码下载 @ 1.前言 之前我使用桌面版本Qt实现了肺炎疫情监控平台:基于Qt的新冠肺炎疫 ...
- CSS每日学习笔记(1)
7.30.2019 1.CSS 文本属性 属性 描述 color 设置文本颜色 direction 设置文本方向. line-height 设置行高. letter-spacing 设置字符间距. t ...
- C++之 ostream详细用法
前言 在 C++中,ostream表示输出流,英文”output stream“的简称.在 C++中常见的输出流对象就是标准输出流cout,很少自定义ostream的对象,更多的是直接使用cout.那 ...
- 150多个Flutter组件详细介绍送给你
迷茫是什么,迷茫就是大事干不了,小事不想干,能力配不上欲望,才华配不上梦想. 150+Flutter组件详细介绍地址:http://laomengit.com/ 前言 我在Flutter未正式发布之前 ...
- C++ 深拷贝和浅拷贝详解
前言 在对象拷贝过程中,如果没有自定义拷贝构造函数,系统会提供一个缺省的拷贝构造函数,缺省的拷贝构造函数对于基本类型的成员变量,按字节复制,对于类类型成员变量,调用其相应类型的拷贝构造函数. 位拷贝( ...
- Journal of Proteomics Research | 构建用于鉴定蓖麻毒素的串联质谱库
文章题目:Constructing a Tandem Mass Spectral Library for Forensic Ricin Identification 构建用于鉴定蓖麻毒素的串联质谱库 ...
- Mol. Cell. Proteomics | 癌细胞衍生的小细胞外囊体通过促进HGF-Met途径促进受体细胞转移
题目:Cancer cell derived small extracellular vesicles contribute to recipient cell metastasis through ...
- 项目中用到了Redis分布式锁,了解一下背后的原理
前言 以前在学校做小项目的时候,用到Redis,基本也只是用来当作缓存.现在博主在某金融平台实习,发现Redis在生产中并不只是当作缓存这么简单.在我接触到的项目中,Redis起到了一个分布式锁的作用 ...
- xheditor图片上传
前端步骤:分为三部,这三部做完之后就能正确显示富文本了 1.下载xheditor文件,并按照如下要求进行引入: <!-- xheditor富文本的文件引入 --> <script t ...