ATT&CK视角下的信息收集:Sysmon检测

发布时间:2024年01月10日

目录

1、简介

2、使用Sysmon

3、检测Sysmon是否安装运行

4、检测Sysmon是否被卸载

5、使Sysmon在终端隐匿运行的技术


1、简介

Sysmon(系统监视器)是由windows sysinternals 出品的Sysinternals 系列工具中的一个

它是windows系统服务和设备驱动程序,一旦安装在系统上,便会在运行期间监视系统活动并且将其记录到windows事件日志中

可以使用相关的日志收集工具收集事件并且随后进行分析,就可以实现识别单个主机的潜在恶意活动

因为信息都会保存在Windows eventlog中,因此使用SIEM(安全信息和事件管理)工具可以更加轻松的收集信息,使用配置文件创建规则并且指定即可

在实际的攻防对抗中:

  1. 红队和渗透测试人员首先需要判断目标系统中市是否存在Sysmon

  2. 如果发现目标主机安装了Sysmon,请勿在这台主机上做过多的曹组,因为Sysmon会记录大多数的操作。这会增加被发现的概率

2、使用Sysmon

sysmon64.exe工具下载地址:Sysmon - Sysinternals | Microsoft Learn

执行sysmon64.exe -accepteula -i -n 命令可以启动sysmon?

下面是一些Sysmon的常见命令选项:

安装:sysmon64 -i [<configfile>]
更新配置:sysmon64 -c [<configfile>]
安装事件清单:sysmon64 -m
打印架构:sysmon64 -s
卸载:sysmon64 -u [force]

3、检测Sysmon是否安装运行

一般可以通过进程名、服务名、驱动名等来判断计算机是否安装了sysmon,但是EDR类程序会隐藏服务名称,并且不需要运行特定的进程,还可以使用特定的工具修改sysmon对应的驱动名

此时可以从注册表中查找进阶检测sysmon是否存在的方法,即使sysmon对应的服务名被修改,还有固定的描述信息,可以通过搜索该描述信息来检索对应服务

(1)安装了sysmon后,系统会启动名为sysmon的进程,可以在powershell中执行Get-Process | where Object { $_.ProcessName -eq "Sysmon64" } 命令枚举进程查看是否安装Sysmon

(2)安装了Sysmon后,系统还会创建一个名为 System Moniyor service 的服务,可以使用以下命令来枚举服务查看目标主机是否已经安装了Sysmon

(3)执行了一下命令可以通过注册表检测是否已经安装了Sysmon

(4)执行一下命令可以通过服务的描述信息来搜索到相应的服务

4、检测Sysmon是否被卸载

  • Sysmon事件ID255:详细的错误消息DiverCommunication

  • Windows系统事件1:从源FilterManager中声明 "File System Filter <DiverName>"

  • Windodws 安全事件ID4672:SeloadedDriverPrivileges被授予STSTEM以外的账户

  • Sysmon事件ID1/Windows安全事件4688:该事件是Sysmon中驱动程序错误发生之前的最后一个事件,与驱动程序卸载相关的异常高完整性进程

5、使Sysmon在终端隐匿运行的技术

攻击者在获得主机权限后,会检测是否存在sysmon等终端日志记录工具,如果存在则攻击者会通过技术手段绕过日志检测,以增大安全人员的溯源的难度。可以使用一下方法来避免攻击者发现终端上的sysmon进程:

  • 修改Sysmon驱动名

  • 修改Sysmon文件名

  • 修改Sysmon服务名

  • 修改Sysmon释放的资源文件路径

  • 修改服务描述:可以通过windows API、注册表、Windows服务管理器直接修改

  • 修改注册表项:HKCU\Software\Sysinternals,可以在安装结束后删除相关项

文章来源:https://blog.csdn.net/qq_68163788/article/details/135431671
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。