首先看一下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属性离线保存的更多相关文章

  1. DW(四):Azure域控服务器配置

    polybase集群要求使用相同的域账号,本节介绍选择用Azure虚拟机搭建自己的内网DNS服务器和域控 创建虚拟网络polybase,创建名为DNS的子网,如下图: 创建虚拟机,选择polybase ...

  2. 一次完整的从webshell到域控的探索之路

    前言 内网渗透测试资料基本上都是很多大牛的文章告诉我们思路如何,但是对于我等小菜一直是云里雾里. 于是使用什么样的工具才内网才能畅通无阻,成了大家一直以来的渴求. 今天小菜我本着所有师傅们无私分享的精 ...

  3. windows server 2008额外域控提升为主域控

    windows server 2008额外域控提升为主域控 ---图形界面操作方法 https://blog.csdn.net/tladagio/article/details/79618338 wi ...

  4. 域控场景下windows安全日志的分析--审计认证行为和命令的历史记录

    https://www.cnblogs.com/KevinGeorge/p/8563458.html 一.域控windows安全日志基本操作 1.打开powershell或者cmd 1 #gpedit ...

  5. Windows Server 2012部署第一台域控

    windows server 2012在部署DC方面有了一些改变,不但在操作上有一些改变,而且有了新的DC克隆的功能.本文就先来体验一下如何将一台windows server 2012 RTM服务器提 ...

  6. 服务器搭建域控与SQL Server的AlwaysOn环境过程(四)配置AlwaysOn

    0 引言 这一篇才真正开始搭建AlwaysOn,前三篇是为搭建AlwaysOn 做准备的. 步骤 1.3 配置AlwaysOn 请先使用本地用户Administrator登录这两个集群节点并执行下面的 ...

  7. Windows server 2012 利用ntdsutil工具实现AD角色转移及删除域控方法

    场景1:主域控制器与辅助域控制器运行正常,相互间可以实现AD复制功能.需要把辅助域控制器提升为主域控制器 ,把主域控制器降级为普通成员服务器:这种场景一般应用到原主域控制器进行系统升级(先转移域角色, ...

  8. 域渗透——获得域控服务器的NTDS.dit文件

    0x00 前言 在之前的文章<导出当前域内所有用户hash的技术整理>曾介绍过通过Volume Shadow Copy实现对ntds.dit文件的复制, 可用来导出域内所有用户hash.本 ...

  9. 001.AD域控简介及使用

    一 AD概述 1.1 AD简介 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系. 当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可 ...

随机推荐

  1. [组件封装]微信小程序-图片批量上传照片墙

    描述 批量上传图片, 可设置最大上传个数, 可删除, 可设置默认值. 效果 源码 pictures-wall.wxml <view class="picturesWall"& ...

  2. Consider defining a bean named 'authenticator' in your configuration.

    SpringBoot整合Shiro时出错: 异常日志: o.s.b.d.LoggingFailureAnalysisReporter: *************************** APPL ...

  3. django复习 以及源码

    django请求生命周期 在浏览器上输入网址会发生什么事?(地址会朝我对应的ip地址发送get请求,get请求遵循http协议)先进入实现了wsgi协议的web服务器---->进入django- ...

  4. windows10 64位 安装mysql服务端 并使用navicat客户端链接 掉的一堆坑

    1.目的 安装mysql服务端 并使用navicat客户端链接 2.过程 1)下载mysql服务端 下载过程(参考https://blog.csdn.net/youxianzide/article/d ...

  5. JUC 中提供的限流利器-Semaphore(信号量)

    在 JUC 包下,有一个 Semaphore 类,翻译成信号量,Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源.Semaphore 跟锁 ...

  6. OLED的使用-4线SPI驱动

    一 .OLED屏 1.OLED屏(七针) 2.OLED电路图 3.0.96'OLED简介 该模块特点: 1.三色可选,模块有两种单色和黄蓝双色两种颜色可选,单色为纯白色和纯蓝色,双 色为黄蓝双色: 2 ...

  7. R语言基本操作

    is.na and is.element is.na can use which, it finds specific rows, is.element can't, it is designed t ...

  8. 学界!关于GAN的灵魂七问

    根据一些指标显示,关于生成对抗网络(GAN)的研究在过去两年间取得了本质的进步.在图像合成模型实践中的进步快到几乎无法跟上. 但是,根据其他指标来看,实质性的改进还是较少.例如,在应如何评价生成对抗网 ...

  9. 配置centOS下的Python

    Linux下Python版本升级: 1. 首先确认Linux操作系统中自带的python 版本时候与自己所需要的版本一致 所有的python版本都在https://www.python.org/ftp ...

  10. Thread --三大特性 原子性,可见性,有序性

    原子性.可见性.有序性 什么是原子性 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行. 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元, ...