来源:https://www.blackhillsinfosec.com/a-sysmon-event-id-breakdown/
安装:https://www.ibm.com/docs/en/qradar-common?topic=sysmon-setting-up
https://support.sophos.com/support/s/article/KB-000038882?language=en_US#Example
Sysmon监视以下活动:
(1)进程创建(使用完整的命令行和散列)
(2)进程终止
(3)网络连接
(4)文件创建时间戳改变
(5)驱动/image加载
(6)创建远程线程
(7)原始磁盘访问
(8)进程内存访问

提供这个博客是为了演示按事件ID细分的Sysmon日志记录功能。这些id将在上下文中捕获,并与它们的sysmon-modular配置部分相匹配,以便进行调优。
请允许我在这里对Github上的sysmon模块库的作者说一声。Olaf慷慨地为社区提供了Sysmon可用的最佳调优平台之一和快速配置文件部署工具(稍后将对此进行解释)。github.com/olafhartong/sysmon-modular
那么,什么是Sysmon配置文件呢?配置文件(简称)提供了精确控制Sysmon写入日志内容的指令。例如,下面选择的配置文件是我为本文使用sysmon-modular构建的。

一、Event ID 1:进程创建Process Creation
前面的配置指令指出,在Event ID 1, Process Creation下,必须匹配其中一个列出的映像image。这甚至与模块的Event ID 1配置块中列出的完整的image名称列表都不太接近。此选择旨在演示sysmon模块的能力。那么,让我们安装Sysmon并进行检查。

让bitsadmin尝试为我们下载一个文件。

bitsadmin命令的简单实例化导致了以下截图中的匹配。如果您花点时间,回到模块配置,您应该会注意到另一个有趣的花絮。每个image的配置部分包括一个潜在的MITRE ATT&CK map。如下所示,使用Bitsadmin.exe映像匹配T1197、BITS作业(https://attack.mitre.org/techniques/T1197/)。

二、Event ID 2:进程更改文件创建时间 Process Changed a File Creation Time
Event ID 2在我的经验中并没有什么用处,尽管它可能对取证调查有用。这种技术被称为“Timestomping”,下面列出的文章包括MITRE页面和一篇拥有PoC的SpectreOps文章。这里最后要注意的是,模块化repo引用了MITRE T1099,它已经被弃用由T1070.006代替。父技术现在是“在主机上移除指示器Indicator Removal on Host”,子技术是“timestomp”。详情请见另一篇博客。https://posts.specterops.io/revisiting-ttps-timestomper-622d4c28a655,https://attack.mitre.org/techniques/T1070/006/
三、Event ID 3:网络连接Network Connections
Event ID 3用于记录网络连接。从模块化配置中建立的映像名称和连接类型将导致映射技术。在下面的截图中,我们可以看到一个从工作站到另一个子网外的IP的RDP连接。虽然这是一个良性连接,但我们确实看到MITRE ATT&CK技术映射到T1021(远程服务)。

四、Event id 4,5: Sysmon服务更改Sysmon Service Changes
EventID 4不可过滤。当Sysmon服务状态发生变化时,将报告此事件。

Sysmon event ID 5 似乎是一个罕见的事件。我可以通过重新启动Sysmon服务来触发此事件。

根据对模块配置文件的回顾,必须从userland、temp或\Windows\temp加载和卸载image。

五、Event ID 6:驱动加载Driver Loaded
ID 6事件也很罕见。它被描述为“驱动程序已加载”Driver Loaded,这个特定网络上的系统在过去24小时内没有报告Sysmon Event ID 6。
六、Event ID 7:image加载Image Loaded
Event ID 7涵盖了Image Loaded操作和实例化它们的进程。

这个事件被映射到T1073 (DLL Side-Loading),它已经被弃用由T1574.002代替。本例中的父技术是Hijack Execution Flow,子技术列示为DLL Side-Loading。
链接:
https://attack.mitre.org/techniques/T1574/002/
虽然从技术上来说MS Defender是“侧加载”一个DLL,但这是引入事件调优理论的一个很好的机会。在这种情况下,我们应该检查模块化配置目录和结构,并确保我们理解了sysmon-modular是如何设计来处理这种情况的。以下面的截图为例,其中有一个exclude和一个include语句——这些语句必须存在于单独的RuleGroups中。

为了从事件ID 7配置块中排除mpcmrun .exe映像,我们必须创建一个完全新的RuleGroup,否则,在配置文件更新时,将抛出一个错误。另一项注意事项是,没有显式的“Event ID ##”配置部分,规则由我们可以与sysmon操作日志匹配的清单处理(如下所示)。

例如,要为已识别的规则创建新的RuleGroups,我们可以使用类似于下面的语法。
<RuleGroup name="" groupRelation="or">
<ImageLoad onmatch=”exclude”>
<!-- This section is for Event ID 7 exclusions -->
</ImageLoad>
</RuleGroup>
<RuleGroup name="" groupRelation="or">
<RegistryEvent onmatch=”include”>
<!-- This section is for Event IDs 12,13,14 inclusions -->
</RegistryEvent>
</RuleGroup>
七、Event ID 8: CreateRemoteThread
现在继续到Event ID 8, CreateRemoteThread。这个事件ID也很少见,但在为这个博客分析的系统上每天都会发生一次。其中一个事件是一个图形graphics驱动程序。

另一个事件是值得调查的,如下所示。

八、Event ID 9: RawAccessRead
Event ID 9被列为RawAccessRead事件。Randy Franklin Smith (ultimatewindowssecurity.com fame)将此事件描述为“一个进程使用\\.\ denotation从驱动器进行读取操作”时报告的事件。在进一步阅读之后,sysmon的Sysinternals网站上也列出了这些内容。系统没有报告任何事件ID 9。
链接:
https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=90009
https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
九、EventID 10: ProcessAccess
Event ID 10是一个非常有趣的事件,被列为ProcessAccess。当一个image请求一个“priv”来访问另一个进程时,就会发生这种情况。如下一个截图所示,MS Defender要求快速查看LSASS,系统授予适当的访问权限。

链接:https://cyberwardog.blogspot.com/2017/03/chronicles-of-threat-hunter-hunting-for_22.html
十、Event ID 11:文件创建事件File Creation Events
Event ID 11包括文件创建事件。这在侦查、取证和调查中非常有用。有了一些基本的创建规则,Sysmon EID11可以为用户域中的写操作提供一个早期警告系统。
快速回到这里,提供“userland”的定义。
Userland 或用户空间(名词):
在计算上下文中,这可以指在管理或内核上下文中的低权限进程中运行的所有代码。对于受限环境,用户应该有限制权限写入工作站的磁盘,通常位置包括C:\users\%username%,或者在某些情况下重定向用户位置到网络共享。
如下面的截图所示,.bat和.cmd文件创建事件被记录到磁盘上。

然后将.cmd和.bat文件的创建记录到磁盘。

十一、Event id 12、13、14:注册表对象Registry Objects
这些Event id与registry events相关。
RegObject添加/删除(HKLM / HKU)
RegValue设置(DWORD / QWORD添加)
RegObject重命名
registry events的配置参数的选择如下所示。

Event id 12和13相对常见,可能需要一些调优。在创建这个博客时,我没有看到Event ID 14事件。
十二、Event ID 15: FileCreateStreamHash
Event ID 15涵盖了与文件流相关的事件,通常是通过web浏览器进行下载。如下所示,我们看到chrome.exe从CrackMap档案中下载了build_collector.py文件。注意,sysmon的Sysinternals页面中,事件内容中突出显示的zone.identifier文件被称为“web标记”。

PowerShell下载不能用这个特定的事件ID捕获,但如果正确地调整配置文件以捕获.zip文件,则可以用event ID 11捕获PowerShell下载。
十三、Event ID 16: Sysmon配置更改Sysmon Config Change
要解释的一个非常简单的事件ID是EID16: Sysmon Config Change。

十四、事件id 17和18:管道事件Event IDs 17 and 18: Pipe Events
这些事件id与管道事件相关。
事件ID 17:已创建管道
事件ID 18:管道连接
Pentest工具、恶意软件工具和许多其他软件经常利用SMB协议。管道是SMB客户机建立到远程可用进程的连接的一种方法。监控这些事件显然是有价值的。

Sysmon模块对这些事件id的配置是排除第一个操作。结果配置文件中列出了一些常见的管道事件违犯者,如下所示。

链接:
https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-use-named-pipes-for-network-interprocess-communication
https://book.hacktricks.xyz/pentesting/pentesting-smb
十五、Event id 19、20、21:WMI事件
EID19 WMIEventFilters
EID20 WMIEventConsumer
EID21 WMIEventConsumertoFilter
WMI事件可能是嘈杂的,并将取决于环境。启用WMI的完整日志记录可能会产生大量日志。模块化的默认配置参数包括在生成的事件内容中列出的任何EventFilters、EventConsumers或EventConsumertoFilters的事件。

在试图让wmic打开命令shell时,我无法使用命令行生成匹配的事件。

对于WMIC和相关事件的噪声,Olaf可能已经实现了最好的解决方案。可能需要进行额外的调查,不过此时建议以这种方式捕获WMI事件。
链接:
https://redcanary.com/threat-detection-report/techniques/windows-management-instrumentation
十五、Event ID 22: DNSEvents
DNS事件很有用,当与事件ID 3结合时,网络连接和文件写入事件可以帮助生成完整的画面。然而……就像网络上的很多东西一样,它们可能非常嘈杂。模块化的方法是排除已知的域并记录其余的域。

在这个实验系统中,大约20%的Sysmon日志事件是EID22,因此很明显,该事件需要对其有效性进行审查。在日志记录、威胁搜索、ETW、调查等宏大计划中,我可能会在这里错误地依赖解析器的日志、基于代理的防御和它的日志记录功能,而不是端点。

十六、Event ID 23:FileDelete
Sysmon活动大家庭的另一个很酷的成员就是这个!就像取证调查员可能会说的,“给我看看恶意软件。”很多黑客会在事后清理,当文件在定义的空间(用户域)中创建并随后被删除时,这个工具让我们有机会保留归档副本,因此事件ID为23 - filedelete。

在回顾sysmon模块的配置结构之前,这个事件比我想象的更难触发。让我们回顾一下,例如,配置的\下载\部分。

我试图创建匹配这些扩展名的文件(EID 11捕获),然后删除它们。这并没有导致预期的事件。在查看了这些groupreation配置参数之后,似乎逻辑上的“and”操作符是问题所在。在修改配置文件并更新本地操作安装之后,我能够在这些定义的条件下触发EID23。截至2020年12月28日,模块化库可以使用拉请求来修复这个逻辑缺陷。修复就像下面所示的那样简单(“或”“不是”和”)。

筛选的事件日志的选择如下所示。

最后,按照Sysmon配置的指示,将从用户区删除的文件复制到RestrictedContainer。

十七、Event ID 24:剪贴板更改Clipboard Changes
这个事件最初被怀疑的审查,因为…嗯…剪贴板内容的副本可能会在另一个存档位置结束。该内容将包括密码和其他敏感材料,因此应采取谨慎的做法。

十八、Event ID 25:进程篡改Process Tampering
Sysmon版本13增加了进程篡改,以解决Johnny Shaw的进程herpaderping技术(基于空心hollowing等)。为了确认这将捕获技术,在编译项目之后,我使用了已编译的ProcessHerpaderping.exe文件并执行它。

如上面的截图所示,我使用ProcessHerpaderping.exe和mimikatz.exe构建了一个名为sysmon.exe的文件,其中填充了lsass.exe的签名位。
这导致捕获!!!!我们现在都能发现篡改过程。

但是,让我们快速地看一下这个进程的逆向。首先,我们回顾了事件ID 25,进程篡改。但是,第一个事件(event ID 1)捕获了一个进程创建事件。如下所示,我们还可以看到部分命令行。可能的IOC?下面的截图很抱歉,为了便于阅读,我裁切了它-但是,这里的整个命令:
.\ProcessHerpaderping.exe mimikatz.exe sysmon25.exe C:\Windows\System32\lsass.exe

我们还可以在事件ID 11: File Creation中看到这个进程创建的.exe。

通过查看事件查看器,可以清楚地看到一些标记在执行前消失了,至少我们应该能够帮助取证团队找出发生了什么。
还有一个。
Event ID 255: Errors

就是这样。这是一个漫长的旅程,我要感谢一些人,是他们使这一切成为可能。
网友评论