sysmon安装配置及其使用,EDR一些防御case肯定是要看的
原文:https://www.jianshu.com/p/43bf5aadfd28
我自己安装成功以后,可以看到采集的日志,运行powershell以后生成的日志:
sysmon安装配置及其使用
sysmon是微软团队出品的一款日志搜集工具,这里记录下其安装配置使用方法
环境
- Windows 10 64位
软件下载
进入到微软官方下载地址点击链接下载sysmon
:
软件安装
下载好的软件进行解压,解压完成后如图所示:
在电脑开始菜单输入cmd
搜索,选择以管理员身份运行
(一定要选择管理员权限运行,否则后续安装会报错):
在cmd
命令窗口输入命令安装sysmon
(该路径为sysmon
存放路径):
C:\Users\User\Downloads\Sysmon\Sysmon64.exe -i
然后就能看到出现了安装界面:
点击agree
,安装完成:
软件配置
配置文件参考博客编写即可,编写完成后在命令行窗口输入命令配置sysmon
:
C:\Users\User\Downloads\Sysmon\Sysmon64.exe -c <config.xml文件路径>
由于这里不需要配置规则,保持默认配置即可:
C:\Users\User\Downloads\Sysmon\Sysmon64.exe -c --
软件使用
键盘同时按下win
+r
,在弹出的窗口输入eventvwr.msc
打开事件查看器:
在打开的事件查看器中依次选择应用程序和服务日志
>Microsoft
>Windows
>Sysmon
:
在sysmon
日志中选取信息,点击详细信息即可查看到详细日志信息:
这里给出事件ID对应的事件类型:
EventType | 译文 | EventId |
---|---|---|
Sysmon Service Status Changed | sysmon服务状态改变 | 0 |
ProcessCreate | 进程创建 | 1 |
FileCreateTime | 文件创建时间更改 | 2 |
NetworkConnect | 网络连接 | 3 |
Service State Change | 服务状态改变 | 4 |
ProcessTerminate | 进程终止 | 5 |
DriverLoad | 驱动程序加载 | 6 |
ImageLoad | 镜像加载 | 7 |
CreateRemoteThread | 创立远程线程 | 8 |
RawAccessRead | 检测到原始访问读取 | 9 |
ProcessAccess | 已访问的进程 | 10 |
FileCreate | 文件创建 | 11 |
Registry object added or deleted | 添加或删除注册表对象 | 12 |
Registry Create | 注册表值设置 | 13 |
Registry Rename | 注册表对象重命名 | 14 |
FileCreateStreamHash | 已创建文件流 | 15 |
Sysmon Config Change | sysmon配置更改 | 16 |
Named Pipe Create | 命名管道创建 | 17 |
Named Pipe Connected | 命名管道连接 | 18 |
WMI Event Filter | 检测到WMI Event Filter活动 | 19 |
WMI Event Consumer | 检测到WMI Event Consumer活动 | 20 |
WMI Consumer to Filter | 检测到WMI Consumer to Filter活动 | 21 |
DNS Query | DNS查询 | 22 |
File Delete | 文件删除 | 23 |
Clipboard Capture | 剪贴板捕获 | 24 |
Process Tampering | 进程篡改 | 25 |
File Delete Detected | 检测到文件删除 | 26 |
Error | 错误 | 255 |
关于Event ID
更详细的介绍见Github
日志导出
如果想要将日志信息导出,则可按照以下流程进行。
首先,下载大佬的脚本
然后打开powershell
,运行命令导入脚本:
Import-Module .\Export-WinEvents.ps1
其中,空格后面的部分为要引入的脚本路径(本句表示脚本在当前目录下),注意此处为反斜杠表示分隔符
然后,运行命令清空当前的sysmon
日志:
@('Microsoft-Windows-Sysmon/Operational') | Clear-WinEvents
最后,运行命令导出日志:
$FromDate = get-date;
@('Microsoft-Windows-Sysmon/Operational') | Export-WinEvents -EndDate $FromDate -OutputPath "SecurityDataset_$(get-date -format yyyy-MM-ddTHHmmssff).json" -Verbose
其中,@()
内的代表日志的类型,可以为多个;而-OutputPath
后引号内的参数为导出的日志文件的路径和名称
参考资料
本文参考了以下文档,可自行拓展查看: