首页 > 其他分享 >基于AD Event日志监测AdminSDHolder

基于AD Event日志监测AdminSDHolder

时间:2023-01-16 00:44:05浏览次数:53  
标签:权限 AD 对象 ACL time AdminSDHolder type Event

01、简介

AdminSDHolder是一个特殊的AD容器,通常作为某些特权组成员的对象的安全模板。Active Directory将采用AdminSDHolder对象的ACL并定期将其应用于所有受保护的AD账户和组,以防止意外和无意的修改并确保对这些对象的访问是安全的。如果攻击者能完全控制AdminSDHolder,那么它就能同时控制域内的许多组,这可以作为域内权限维持的方法。

 基于AD Event日志监测AdminSDHolder对象ACL的修改行为,从而发现可疑的AdminSDHolder对象行为。

02、利用方式

(1)AdminSDHolder对象添加ACL

使用PowerView,下载地址如下:

https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

添加用户bypass对AdminSDHolder的完全访问权限,命令如下:

Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName bypass -Verbose -Rights All

(2)执行SDProp

默认情况下,SDProp进程每60分钟在域控制器上运行一次,SDProp将域的AdminSDHolder对象的权限与域中受保护的帐户和组的权限进行比较,如果任何受保护帐户和组的权限与AdminSDHolder对象的权限不匹配,则将受保护帐户和组的权限重置为与域的AdminSDHolder对象的权限匹配。

配置完成后ACL 中的更改将在 60 分钟后自动传播,可通过更改注册表的方式设置SDProp 的时间间隔,该值的范围是从60到7200,单位为秒,键类型为DWORD可以直接使用命令行更改:

reg add hklm\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v AdminSDProtectFrequency /t REG_DWORD /d 60

 (3)登录bypass用户,可疑看到bypass非域管用户,却可以将自己添加到“域管理员”组。

 

03、攻击检测

攻击手法的核心点在于需要修改AdminSDHolder的ACL,因此我们只需要检测对AdminSDHolder的ACL的修改行为即可,可以通过5136日志来监控。

5136事件:每次修改 Active Directory 对象时,都会生成此事件,包含帐户名称、目录服务对象名称、操作类型。

安全规则:

index=ad  EventCode=5136 DN="CN=AdminSDHolder,CN=System,DC=evil,DC=com"
| rename 类型 as  type | eval  type=mvindex(type,1)
|  stats count earliest(_time) AS start_time latest(_time) AS end_time  by  dest user type | eval start_time=strftime(start_time,"%Y-%m-%d %H:%M:%S")| eval end_time=strftime(end_time,"%Y-%m-%d %H:%M:%S")
| eval message="在"+start_time+"到"+end_time+"时间内,域控服务器:"+dest +" 疑似修改AdminSDHolder对象的行为,操作类型:"+type+",操作账号: "+user+",操作次数:"+count+"次"
| table  start_time end_time user message type count

效果如下:

 

标签:权限,AD,对象,ACL,time,AdminSDHolder,type,Event
From: https://www.cnblogs.com/xiaozi/p/17053762.html

相关文章

  • java基础12 文本注释javadoc
    文本注释javadoc文本注释,javadoc:/**接回车可以生成一些注释的文档,直接看代码吧用window命令窗口执行:javadocjava文件,中间可以加一大堆的参数使得中文不乱码​......
  • adb常用命令
    USB连接电脑,打开USB调试模式。adbdevices#列出设备,包含SERIAL和设备型号adbdevices-l#列出详细信息,包含transportidadbshell<cmd>#在手机shell中执行命令......
  • 和菜鸟一起学OK6410之ADC模块
    android上跑起来时也比较灵敏了,GPIO模拟的SPI也可以工作了,看了会书,修正了会,回到宿舍也已经9点多了。想想,OK6410上还有个AD模块呢。网上找了找资料,发现还是可以去尝试下可不......
  • upload-labs通关详解
    upload-labs通关详解一、Pass-01查看源码,发现变量前有var,可以代码语言是JSsubstring():裁剪字符串lastIndexOf():返回某个子字符串在字符串中最后出现的位置varext_name=......
  • git add 命令详解
    1.前言2.gitadd基本操作3.gitadd命令参数4.gitadd背后做了什么1.前言众所周知,git中有工作区、暂存区、版本库三大组成部分工作区:电脑中能看到的目录,也就是......
  • MSF使用查看payload类型和建立反弹payload
    查看所有payload类型showpayloads共有73个结果。命名格式是:payload/平台/系统位数/类型/功能类型主要有:shell:得到一个shellDllinject:上传DLL并注入到......
  • HarmonyOS初探04——使用DevEco Studio时设置Gradle仓库镜像
    解决国内环境或者企业内网环境问题,往往访问Maven仓库比较困难,此时可以设置Gradle仓库镜像。1)         在用户目录新建一个 .gradle 文件夹,比如我的机器登录账户......
  • threading模块中的Lock、RLock以及Condition
    一、互斥锁简介互斥锁为资源引入一个状态:锁定/非锁定。某个线程要更改共享数据时,先将其锁定,此时资源的状态为“锁定”,其他线程不能更改;直到该线程释放资源,将资源的状......
  • spark RPC超时造成任务异常 Attempted to get executor loss reason for executor id
    日志信息如下Attemptedtogetexecutorlossreasonforexecutorid17atRPCaddress192.168.48.172:59070,butgotnoresponse.Markingasslavelost.java.io.......
  • caddyserver 新架构
    好久没有太关注caddyserver了,今天在查看dgraphcloud的时候发现dgraphcloud就使用了caddyserver做为自己的apiserver,然后仔细看了下新版本caddyserver的一些特性,发现......