目录
Sysmon(系统监视器)是由windows sysinternals 出品的Sysinternals 系列工具中的一个
它是windows系统服务和设备驱动程序,一旦安装在系统上,便会在运行期间监视系统活动并且将其记录到windows事件日志中
可以使用相关的日志收集工具收集事件并且随后进行分析,就可以实现识别单个主机的潜在恶意活动
因为信息都会保存在Windows eventlog中,因此使用SIEM(安全信息和事件管理)工具可以更加轻松的收集信息,使用配置文件创建规则并且指定即可
在实际的攻防对抗中:
红队和渗透测试人员首先需要判断目标系统中市是否存在Sysmon
如果发现目标主机安装了Sysmon,请勿在这台主机上做过多的曹组,因为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]
一般可以通过进程名、服务名、驱动名等来判断计算机是否安装了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)执行一下命令可以通过服务的描述信息来搜索到相应的服务
Sysmon事件ID255:详细的错误消息DiverCommunication
Windows系统事件1:从源FilterManager中声明 "File System Filter <DiverName>"
Windodws 安全事件ID4672:SeloadedDriverPrivileges被授予STSTEM以外的账户
Sysmon事件ID1/Windows安全事件4688:该事件是Sysmon中驱动程序错误发生之前的最后一个事件,与驱动程序卸载相关的异常高完整性进程
攻击者在获得主机权限后,会检测是否存在sysmon等终端日志记录工具,如果存在则攻击者会通过技术手段绕过日志检测,以增大安全人员的溯源的难度。可以使用一下方法来避免攻击者发现终端上的sysmon进程:
修改Sysmon驱动名
修改Sysmon文件名
修改Sysmon服务名
修改Sysmon释放的资源文件路径
修改服务描述:可以通过windows API、注册表、Windows服务管理器直接修改
修改注册表项:HKCU\Software\Sysinternals,可以在安装结束后删除相关项