首页 > 其他分享 >基于AD Event日志实时检测GPO后门

基于AD Event日志实时检测GPO后门

时间:2022-11-06 23:44:06浏览次数:52  
标签:脚本 GPO AD 组策略 evil time com Event

01、简介

在一些勒索病毒的案例中,我们可以看到这样的案例,攻击者通过域控组策略下发勒索病毒加载脚本,从共享服务器下载并执行勒索病毒样本,从而导致内网大规模范围内的病毒感染事件。

在域控这种中央集权系统,通过组策略只需要更改一个组策略对象(GPO),就能影响成千上万的计算机,一旦被恶意利用后果不堪设想。

基于勒索病毒攻击感染的场景,组策略对象(GPO)的敏感操作需要实时监控,这是保持内网安全所必需的。那么,今天我们来分析一下GPO后门的方式,总结规律,制定对应的检测规则。

02、攻击过程

通过域控下发并执行脚本/软件,主要有三种方式,分别是添加启动项脚本、添加计划任务以及软件安装。

(1)通过GPO添加启动项脚本

在真实的运维场景中,为了便于管理域环境中计算机本地管理员密码,一般会使用GPO组策略下发脚本来统一修改密码。

将准备后的脚本复制到SYSVOL相应的目录下,打开组策略管理(gpmc.msc),右键组策略对象,添加登录启动项脚本:

Scripts目录包含开关机和登入登出的执行脚本,使用组策略添加开机脚本后,会在Scripts目录下生成scripts.ini。

\\evil.com\SYSVOL\evil.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\USER\Scripts\scripts.ini

(2)通过GPO添加计划任务

在首选项-控制面板设置,找到计划任务进行设置。

设置计划任务后,对应的配置文件存放在如下的地方:

\\evil.com\SYSVOL\evil.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\USER\Preferences\ScheduledTasks\ScheduledTasks.xml

(3)通过组策略软件下发

域组策略提供了批量部署软件的功能,在软件安装新建数据包策略后,在Applications目录会生成一个.aas文件。

\\evil.com\SYSVOL\evil.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\USER\Applications\xxxx.aas

03、攻击检测

基于以上攻击事实,我们可以总结出,每当攻击者通过GPO下发恶意策略时,\evil.com\SYSVOL\evil.com\Policies\ 相应的配置文件就会发现变化。

在Windows安全日志中,每次访问网络共享文件时,都会生成相应的审核日志,事件ID为5145,RelativeTargetName对应的是修改的相对目标名称,AccessList的值为%%4417的值所对应的访问权限是WriteData 或 AddFile。通过监视网络共享对象和Accesses权限,可实现GPO组策略后门的实时检测。

检测逻辑:

index=ad host=WIN-DC01 EventCode=5145 RelativeTargetName IN ("*.aas","*.xml","*scripts.ini") "访问"="WriteData (或 AddFile)" 
| stats count min(_time) as start_time max(_time) as end_time by dest user RelativeTargetName
| 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 +" GPO配置文件已被修改" +count+"次,操作账号:"+user+",相对目标名称:"+RelativeTargetName
| table start_time end_time user message
实时告警效果如下图:

标签:脚本,GPO,AD,组策略,evil,time,com,Event
From: https://www.cnblogs.com/xiaozi/p/16864652.html

相关文章

  • 论文笔记 - GRAD-MATCH: A Gradient Matching Based Data Subset Selection For Effic
    AnalysisCoreset是带有权重的数据子集,目的是在某个方面模拟完整数据的表现(例如损失函数的梯度,既可以是在训练数据上的损失,也可以是在验证数据上的损失);给出优化目标的定......
  • Head First Java 读书笔记
    第8章:接口与抽象类(深入多态)什么是抽象类?用abstract关键字声明抽象类,抽象类不能用new关键字进行实例化。在设计继承结构时,必须决定清楚什么类是抽象类,什么类是具体类。编......
  • Java 线程池之ThreadPoolExecutor学习总结
    前提javaversion"1.8.0_25"池简述软件开发活动中,我们经常会听到数据库连接池、内存池、线程池等各种“池”概念,这些“池”到底是什么东西呢?程序的世界里,我们可以将池简单......
  • Java 线程池之ThreadPoolExecutor学习总结
    前提javaversion"1.8.0_25"池简述软件开发活动中,我们经常会听到数据库连接池、内存池、线程池等各种“池”概念,这些“池”到底是什么东西呢?程序的世界里,我们可以将池简单......
  • 拓端数据tecdat|R语言时间序列平稳性几种单位根检验(ADF,KPSS,PP)及比较分析
     时间序列模型根据研究对象是否随机分为确定性模型和随机性模型两大类。随机时间序列模型即是指仅用它的过去值及随机扰动项所建立起来的模型,建立具体的模型,需解决如下三......
  • Hadoop HA
    HadoopHAHA:HighAvailable,高可用HDFS集群中NameNode存在单点故障(SPOF)。对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群瘫痪!HDFS的HA功能......
  • thread同步测试
    任务说明1.编译运行附件中的代码,提交运行结果截图,并说明程序功能2.修改代码,把同步资源个数减少为3个,把使用资源的线程增加到(你的学号%3+4)个,编译代码,提交修改后的代码......
  • thread同步测试
    一、任务要求:编译运行附件中的代码,提交运行结果截图,并说明程序功能修改代码,把同步资源个数减少为3个,把使用资源的线程增加到(你的学号%3+4)个,编译代码,提交修改后的代码......
  • thread同步测试
    1.编译运行附件中的代码,提交运行结果截图,并说明程序功能代码:#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<semaphore.h>#defineNUM5i......
  • macOS使用docker搭建hadoop集群
    启动集群安装docker下载网址:https://www.docker.com/products/docker-desktop/构建基础镜像拉取centos镜像dockerpullcentos:7.5.1804创建文件夹,将jdk安装包放入,......