Sysmon工具使用

一、Sysmon简介

日常的应急响应中,经常会遇到一些情况。比如远程上去的时候已经没有了现象,又或是恶意流量每隔几个小时就发一两个包,失分头疼。
Sysmon作为强大轻便的监视和记录工具,可以记录系统的各种活动。通过收集系统上发现的事件,可以了解到恶意程序再操作系统上进行了哪些操作。可选择记录网络连接,包括每个连接的源进程、IP 地址、端口号、主机名和端口名。记录注册表和文件的操作记录。
Sysmon同时具有windows版和linux版。

二、事件记录

  1. 参考微软官方文档,Sysmon可记录系统发生的事件,并以事件ID分类。在windows操作系统下,在 Vista 和更高版本中,事件存储Applications and Services Logs/Microsoft/Windows/Sysmon/Operational中。而在早期版本系统上,事件被写入系统事件日志,事件时间戳采用 UTC 标准时间,Sysmon主要记录以下日志:

Event ID 1: Process creation 进程创建
Event ID 2: A process changed a file creation time 进程更改了文件创建时间
Event ID 3: Network connection 网络连接
Event ID 4: Sysmon service state changed Sysmon 服务状态已更改
Event ID 5: Process terminated 进程终止
Event ID 6: Driver loaded 已加载驱动程序
Event ID 7: Image loaded 文件镜像已加载
Event ID 8: CreateRemoteThread 创建远程线程
Event ID 9: RawAccessRead
Event ID 10: ProcessAccess 进程访问
Event ID 11: FileCreate 文件创建
Event ID 12: RegistryEvent (Object create and delete) 注册表事件
EVENT ID 12: REGISTRYEVENT (OBJECT CREATE AND DELETE)
Event ID 13: RegistryEvent (Value Set) 注册值设置
Event ID 14: RegistryEvent (Key and Value Rename)注册表键值设置
Event ID 15: FileCreateStreamHash 文件创建流哈希
Event ID 16: ServiceConfigurationChange sysmon配置文件更改
Event ID 17: PipeEvent (Pipe Created) 管道创建
Event ID 18: PipeEvent (Pipe Connected)管道连接
Event ID 19: WmiEvent (WmiEventFilter activity detected)
Event ID 21: WmiEvent (WmiEventConsumerToFilter activity detected)
Event ID 22: DNSEvent (DNS query) DNS查询
Event ID 23: FileDelete (File Delete archived) 已归档文件删除
Event ID 24: ClipboardChange (New content in the clipboard) 剪切板的新内容
Event ID 25: ProcessTampering (Process image change) 进程镜像文件修改
Event ID 26: FileDeleteDetected (File Delete logged) 记录文件删除
Event ID 255: Error Sysmon报错

  1. 在应急响应的情况下,主要抓住:文件、进程、启动项、注册表、计划任务、网络连接、DNS请求这几个方面进行重点分析,能够找出大部分恶意软件的行为并最终解决问题。

三、Sysmon安装

windows下的安装

下载链接:https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
在这里插入图片描述
使用CMD或者powershell命令行调用即可。

使用默认设置安装:
sysmon -accepteula -i  安装必须使用 -accepteula 接受EULA
其他参数:
sysmon   -accepteula  -i  config.xml 安装时自定义配置文件
切换配置文件
sysmon -c  newconfig.xml
切换到默认配置文件 
sysmon -c -- 
查看所有命令配置选项
sysmon -s
卸载sysmon
sysmon -u


安装sysmon,并指定配置文件成功
在这里插入图片描述
可以看到事件ID:22 谷歌浏览器请求googleapi域名

windows 8.1或者server 2012 以下系统安装sysmon失败,可以尝试更新补丁kb4474419之后再安装。

Linux安装

自行编译安装比较容易出现各种报错,可以参考github文档:
https://github.com/Sysinternals/SysmonForLinux/blob/main/INSTALL.md
这里以kali linux 2021为例,使用debian 11的方法进行安装

1. Register Microsoft key and feed
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/debian/11/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

2. Install SysmonForLinux
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install sysmonforlinux

在这里插入图片描述
安装成功使用sudo tail -f /var/log/syslog | /opt/sysmon/sysmonLogView 可以查看日志:
在这里插入图片描述

四、 配置文件

上一步安装使用的 -i 选项,其实是指定了一个sysmon的事件过滤配置文件。通过调整事件过滤标签可以过滤出自己想要的日志。配置文件的编写这里不作深入讨论,直接使用github上安全大佬的配置文件就可以。
我使用的是这个:
https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml
在这里插入图片描述
注:图片来自微软sysmon官网

五、 使用实例

这里选择workminer病毒进行实验,kali linux 出现workminer流量,访问域名:xmr.crypto-pool.fr。
在这里插入图片描述
导出Sysmon日志直接搜索域名xmr.crypto-pool.fr,可以直接定位到挖矿进程创建日志,挖矿程序启动路径。
在这里插入图片描述
往前可以进一步回溯,看到系统启动项被修改的信息
在这里插入图片描述
病毒文件位置,执行的用户
在这里插入图片描述
病毒文件最终执行的命令。
在这里插入图片描述

六、 关于Sysmon绕过

简单的理解,sysmon是对windows API的操作进行监控,会生成日志。部分情况下如果操作不涉及这些API则有可能会被绕过,sysmon无法生成事件。
在这里插入图片描述
举例: 使用python脚本请求恶意域名
在这里插入图片描述
Sysmon只记录了python的操作,DNS请求并无记录。
在这里插入图片描述
参考链接:
https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
https://github.com/Sysinternals/SysmonForLinux/blob/main/INSTALL.md
https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml
https://github.com/trustedsec/SysmonCommunityGuide

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐