一、Sysmon介绍
Sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具。系统监视器(Sysmon)是Windows系统服务和设备驱动程序,一旦安装在系统上,便会驻留在系统重新引导期间,以监视系统活动并将其记录到Windows事件日志中。它提供有关进程创建,网络连接以及文件创建时间更改的详细信息。可以使用相关日志收集工具,收集事件并随后对其进行分析,可以识别恶意或异常活动,并了解入侵者和恶意软件如何在您的网络上运行。
Sysmon包括以下功能:
使用完整的命令行记录当前行为的父进程的进程创建;
使用SHA1(默认值),MD5,SHA256或IMPHASH记录过程映像文件的哈希;
可以同时使用多个哈希;
在进程创建事件中包含进程GUID,即使Windows重用进程ID时也可以使事件相关;
在每个事件中都包含一个会话GUID,以允许在同一登录会话上关联事件;
使用签名和哈希记录驱动程序或DLL的加载;
日志打开以进行磁盘和卷的原始读取访问;
可选的记录网络连接,包括每个连接的源进程,IP地址,端口号,主机名和端口名。
检测文件创建时间的更改,以了解真正创建文件的时间。修改文件创建时间戳是恶意软件通常用来掩盖其踪迹的技术;
如果注册表中发生更改,则自动重新加载配置;
规则过滤以动态包括或排除某些事件;
从启动过程的早期开始生成事件,以捕获甚至复杂的内核模式恶意软件进行的活动。
二、日志事件ID解析介绍
事件ID 1:流程创建
流程创建事件提供有关新创建流程的扩展信息。完整的命令行提供了有关流程执行的上下文。ProcessGUID字段是整个域中此过程的唯一值,以简化事件关联。哈希是文件的完整哈希,其中包含HashType字段中的算法。
事件ID 2:一个进程更改了文件创建时间
当进程显式修改文件创建时间时,将注册更改文件创建时间事件。此事件有助于跟踪文件的实际创建时间。攻击者可能会更改后门的文件创建时间,以使其看起来像与操作系统一起安装。请注意,许多进程会合理地更改文件的创建时间。它不一定表示恶意活动。
事件ID 3:网络连接
网络连接事件记录计算机上的TCP / UDP连接。默认情况下禁用。每个连接都通过ProcessId和ProcessGUID字段链接到流程。该事件还包含源和目标主机名IP地址,端口号和IPv6状态。
事件ID 4:Sysmon服务状态已更改
服务状态更改事件报告Sysmon服务的状态(已启动或已停止)。
事件ID 5:进程终止
进程终止时报告进程终止事件。它提供了进程的UtcTime,ProcessGuid和ProcessId。
事件ID 6:驱动程序已加载
驱动程序加载事件提供有关在系统上加载驱动程序的信息。提供配置的哈希值以及签名信息。出于性能原因,签名是异步创建的,并指示在加载后是否删除了文件。
事件ID 7:图像已加载
图像加载事件记录在特定过程中加载模块的时间。默认情况下,此事件是禁用的,需要使用–l选项进行配置。它指示模块的加载过程,哈希和签名信息。出于性能原因,签名是异步创建的,并指示在加载后是否删除了文件。应仔细配置此事件,因为监视所有图像加载事件将生成大量事件。
事件ID 8:CreateRemoteThread
CreateRemoteThread事件检测一个进程何时在另一个进程中创建线程。恶意软件使用此技术来注入代码并隐藏在其他进程中。该事件指示源和目标进程。它提供了有关将在新线程中运行的代码的信息:StartAddress,StartModule和StartFunction。请注意,将推断StartModule和StartFunction字段,如果起始地址在已加载的模块或已知的导出函数之外,则它们可能为空。
事件ID 9:RawAccessRead
RawAccessRead事件检测进程何时使用\。\表示从驱动器进行读取操作。恶意软件通常使用此技术来对已锁定以供读取的文件进行数据泄漏,并避免使用文件访问审核工具。该事件指示源进程和目标设备。
事件ID 10:ProcessAccess
当一个进程打开另一个进程时,该进程访问事件报告,该操作通常伴随着信息查询或读写目标进程的地址空间。这样可以检测黑客工具,这些工具读取诸如本地安全机构(Lsass.exe)之类的进程的内存内容,以窃取凭据以用于“哈希传递”攻击。如果存在活动的诊断实用程序,这些实用程序会反复打开进程以查询其状态,则启用它可能会产生大量的日志记录,因此通常只应使用删除预期访问的过滤器来启用它。
事件ID 11:FileCreate
创建或覆盖文件时,将记录文件创建操作。该事件对于监视自动启动位置(如启动文件夹)以及临时目录和下载目录很有用,这些位置是恶意软件在初始感染期间掉落的常见位置。
事件ID 12:RegistryEvent(对象创建和删除)
注册表项和值的创建和删除操作映射到此事件类型,这对于监视注册表自动启动位置的更改或特定的恶意软件注册表修改很有用。
Sysmon使用注册表根键名的缩写版本,具有以下映射:
键名 | 缩写 |
HKEY_LOCAL_MACHINE | HKLM |
HKEY_USERS | HKU |
HKEY_LOCAL_MACHINE\System\ControlSet00x | HKLM\System\CurrentControlSet |
HKEY_LOCAL_MACHINE\Classes | HKCR |
事件ID 13:RegistryEvent(值集)
此注册表事件类型标识注册表值修改。该事件记录为DWORD和QWORD类型的注册表值写入的值。
事件ID 14:RegistryEvent(键和值重命名)
注册表键和值重命名操作映射到此事件类型,记录重命名的键或值的新名称。
事件ID 15:FileCreateStreamHash
此事件在创建命名文件流时记录,并生成事件,该事件记录该流所分配到的文件内容(未命名流)以及命名流的内容的哈希。有一些恶意软件变体会通过下载浏览器来删除其可执行文件或配置设置,并且该事件旨在基于基于附加了Zone.Identifier“网络标记”流的浏览器来捕获它们。
事件ID 16:ServiceConfigurationChange
此事件记录Sysmon配置中的更改-例如,更新过滤规则时。
事件ID 17:PipeEvent(已创建管道)
创建命名管道时,将生成此事件。恶意软件通常使用命名管道进行进程间通信。
事件ID 18:PipeEvent(已连接管道)
在客户端和服务器之间建立命名管道连接时,将记录此事件。
事件ID 19:WmiEvent(检测到WmiEventFilter活动)
注册WMI事件筛选器(恶意软件执行该方法)后,此事件将记录WMI名称空间,筛选器名称和筛选器表达式。
事件ID 20:WmiEvent(检测到WmiEventConsumer活动)
此事件记录WMI使用者的注册,记录使用者名称,日志和目的地。
事件ID 21:WmiEvent(检测到WmiEventConsumerToFilter活动)
当使用者绑定到过滤器时,此事件记录使用者名称和过滤器路径。
事件ID 22:DNSEvent(DNS查询)
当进程执行DNS查询时,无论结果是否成功,是否缓存,都会生成此事件。Windows 8.1已添加此事件的遥测,因此在Windows 7和更早版本中不可用。
事件ID 23:FileDelete(检测到文件删除)
文件已删除
事件ID 255:错误
Sysmon中发生错误时,将生成此事件。如果系统负载沉重,某些任务无法执行,或者Sysmon服务中存在错误,则可能发生这种情况。您可以在Sysinternals论坛或Twitter(@markrussinovich)上报告任何错误。
三、Sysmon安装
经常使用命令说明
Sysmon -i 最基本的安装命令Sysmon.exe -accepteula -i Sysmonconfig-export.xml 指定规则文件安装Sysmon.exe -c Sysmonconfig-export.xml 更新配置Sysmon.exe -u 卸载
注意:在window下安装要以管理员方式打开终端,配置文件要以XML格式存储。
Sysmon的采集日志查看:运行命令eventvwr.msc
事件查看器-->应用程序和服务日志-->Microsoft-->Windows->Sysmon-->Operational
四、与Nxlog结合进行日志收集
Sysmon监控系统并生成windows event log,Sysmon将监控到的数据保存在:C:\Windows\System32\winevt\Logs\Microsoft-Windows-Sysmon%4Operational.evtx,NXlog将windows event log传输到syslog服务器。
NXLog能够在各种不同的设备上进行各种不同格式的日志消息的采集以及处理,NXLog能够接收从TCP、UDP、文件、数据库以及其他不同来源的日志消息,例如Syslog,Windows的EventLog。
Nxlog配置文件修改:在<Input in>中添加采集的路径,以及日志服务器的IP和接收端口。如下图:
Sysmon配置文件:图中红框内规则为监控注册表内全部信息。可指定对应的注册表键名。可参考事件日志ID解析介绍,进行自定义规则编写
五、威胁场景检测告警
1.影子账户
影子账户是指系统隐藏帐户,在“控制面板-本地用户和组”里面看不见,但却有管理员权限的帐户(影子帐户可以做任何想做的事),一般存储在注册表中,多数情况下都和黑客入侵挂钩。
告警发生场景:黑客在入侵系统后常常会建立一个影子账户。之所以称其为“影子账户”,是因为这种账户用系统中提供的工具或方法都无法看到,并且无论是“用户账户”、“计算机管理”,还是命令行中,都无法删除此账户。
攻击方式:
1)通过相关攻击方式,获得管理员权限;
2)创建账户;
3)替换注册表对应文件等相关操作,使影子账户获得管理员权限。
4)删除账号,将导出的reg文件重新导入。
5)通过命令行和控制面板均发现创建的影子账号
6)使用影子账号进行登录测试
检测思路:
1) 通过查看相关主机的原始日志文件进行筛查;2) 通过日志审计工具解析原始日志;3) 收集修改对应注册表文件的日志。
日志来源:以Windows2008r2的日志统计为例:
Apr 28 15:17:14 WIN-94A29A4Q0RK MSWinEventLog 1 Microsoft-Windows-Sysmon/Operational 18629 Wed Apr 28 15:17:14 2021 1 Microsoft-Windows-Sysmon SYSTEM User Information WIN-94A29A4Q0RK Process Create (rule: ProcessCreate) Process Create: RuleName: - UtcTime: 2021-04-28 07:17:14.105 ProcessGuid: {046930C2-0BFA-6089-5F47-E30400000000} ProcessId: 1320 Image: C:\Windows\System32\net1.exe FileVersion: 6.1.7601.17514 (win7sp1_rtm.101119-1850) Description: Net Command Product: Microsoft® Windows® Operating System Company: Microsoft Corporation OriginalFileName: net1.exe CommandLine: C:\Windows\system32\net1 user test$ test123!@# /add CurrentDirectory: C:\Users\Administrator\ User: WIN-94A29A4Q0RK\Administrator LogonGuid: {046930C2-962D-6077-50BD-050000000000} LogonId: 0x5bd50 TerminalSessionId: 1 IntegrityLevel: High Hashes: SHA1=B885470C69CAEA77043B96DC1875C346EC3DA0B0,MD5=3B6928BC39E5530CEAD1E99269E7B1EE,SHA256=0F084CCC40CBF7C3C7472DDAD609B5FD31AACAFA44E23F9EC7E9E2184713B986,IMPHASH=72AA515B1963995C201E36DE48594F61 ParentProcessGuid: {046930C2-0BFA-6089-E846-E30400000000} ParentProcessId: 2824 ParentImage: C:\Windows\System32\net.exe ParentCommandLine: net user cmd$ test123!@# /add 63027
日志中包含新增的用户操作
Apr 28 15:36:28 WIN-94A29A4Q0RK MSWinEventLog 1 Microsoft-Windows-Sysmon/Operational 18914 Wed Apr 28 15:36:28 2021 13 Microsoft-Windows-Sysmon SYSTEM User Information WIN-94A29A4Q0RK Registry value set (rule: RegistryEvent) Registry value set: RuleName: - EventType: SetValue UtcTime: 2021-04-28 07:36:28.180 ProcessGuid: {046930C2-0FEF-6089-58C8-E40400000000} ProcessId: 2436 Image: C:\Windows\regedit.exe TargetObject: HKLM\SAM\SAM\DOMAINS\Account\Users\000001F4\F Details: Binary Data 63312
日志中有修改对应的键值
Apr 28 15:58:32 WIN-94A29A4Q0RK MSWinEventLog 1 Microsoft-Windows-Sysmon/Operational 199 Wed Apr 28 15:58:32 2021 1 Microsoft-Windows-Sysmon SYSTEM User Information WIN-94A29A4Q0RK Process Create (rule: ProcessCreate) Process Create: RuleName: - UtcTime: 2021-04-28 07:58:32.577 ProcessGuid: {046930C2-15A8-6089-4457-E80400000000} ProcessId: 1716 Image: C:\Windows\System32\net1.exe FileVersion: 6.1.7601.17514 (win7sp1_rtm.101119-1850) Description: Net Command Product: Microsoft® Windows® Operating System Company: Microsoft Corporation OriginalFileName: net1.exe CommandLine: C:\Windows\system32\net1 user test$ /del CurrentDirectory: C:\Users\Administrator\ User: WIN-94A29A4Q0RK\Administrator LogonGuid: {046930C2-962D-6077-50BD-050000000000} LogonId: 0x5bd50 TerminalSessionId: 1 IntegrityLevel: High Hashes: SHA1=B885470C69CAEA77043B96DC1875C346EC3DA0B0,MD5=3B6928BC39E5530CEAD1E99269E7B1EE,SHA256=0F084CCC40CBF7C3C7472DDAD609B5FD31AACAFA44E23F9EC7E9E2184713B986,IMPHASH=72AA515B1963995C201E36DE48594F61 ParentProcessGuid: {046930C2-15A8-6089-CD56-E80400000000} ParentProcessId: 2664 ParentImage: C:\Windows\System32\net.exe ParentCommandLine: net user cmd$ /del 64960.
日志中短时间内存在删除掉创建的账号操作
人工分析: 可以通过对相关设备定期检查或者对原始日志进行分析,判定设备异常。
工具分析:通过对原始日志解析日志事件类型为创建影子账户操作,解析出创建的账户名称,以及后续将对应的注册表文件进行了修改操作。并可以结合相关知识库,了解如何进行对影子账户的筛查操作,快速进行解决问题。
2、文件创建监控检测
指定监控的路径,通过Sysmon工具进行检测。本文监控C盘下的文件创建监控。
Sysmon配置文件:
在C盘下创建文件。
文件的修改
六、总结
以上本文介绍了Sysmon工具的基本使用。其中包括基本安装命令和对注册表监控的规则文件,还有和Nxlog的结合使用,对影子账户的检测定位,以及对指定的监控路径进行文件操作监控。快速的对安全威胁事件,进行响应,安全是不容忽视的。学习了解相关的检测手段,再根据分析工具。可以更好的及时发现一些威胁,从而减少以及避免相关威胁带来的损失。
相关分享(历史文章列表内):
Windows日志分析场景(一)