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