基于AD Event日志实时检测GPO后门
2022-10-24 08:4:3 Author: Bypass(查看原文) 阅读量:13 收藏

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
实时告警效果如下图:


文章来源: http://mp.weixin.qq.com/s?__biz=MzA3NzE2MjgwMg==&mid=2448908900&idx=1&sn=3ef4c2bb4815da5559eceac5126384b5&chksm=8b55f239bc227b2f0c8d8a08dd9eaef9f1b2326e7646733a607ac00782ade8a499f5e6854494#rd
如有侵权请联系:admin#unsafe.sh