前一段时间做windows数据采集程序,通过notify进行文件变化监控,cpu和内存占用太高,不太适用,windows的文件过滤驱动也没有研究过。今天一位大牛向我推荐了sysmon,下面是实践的流程步骤。
通过sysmon监视器监控文件变化、nxlog读取sysmon日志,推送到相应tcp服务端的实践。
关注本公众账号,输入关键词sysmon获取本文的所有软件下载
一、sysmon安装配置
系统监视器(Sysmon)是Windows系统服务和设备驱动程序,用来监视系统活动并将其记录在window事件日记中。
1.1 安装
https://download.sysinternals.com/files/Sysmon.zip
Sysmon64.exe -accepteula -i <configfile>
Sysmon64.exe -c <configfile>
sysmon64.exe –c --
Sysmon64.exe -u
启动停止服务
键盘上按下ctrl+r,弹出的窗口输入services.msc打开服务,查找sysmon64进行停止/启动操作
1.2 配置
配置信息可参考
https://github.com/SwiftOnSecurity/sysmon-config
指令说明
ProcessCreate 进程创建
FileCreateTime 文件创建时间更改
NetworkConnect 检测到网络连接
ProcessTerminate 进程终止
DriverLoad 驱动程序已加载
ImageLoad 镜像加载
CreateRemoteThread 已检测到创建远程线程
RawAccessRead 检测到原始访问读取
ProcessAccess 已访问的进程
FileCreate 文件创建
RegistryEvent 添加或删除注册表对象
RegistryEvent 注册表值设置
RegistryEvent 注册表对象已重命名
FileCreateStreamHash 已创建文件流
PipeEvent 管道创建
PipeEvent 管道已连接
WmiEvent 检测到WmiEventFilter活动 -- WmiEventFilter activity detected
WmiEvent 检测到WmiEventConsumer活动 -- WmiEventConsumer activity detected
WmiEvent 检测到WmiEventConsumerToFilter活动 -- WmiEventConsumerToFilter activity
DnsQuery DNS查询
1.3 查看运行
键盘上按下ctrl+r,弹出的窗口输入eventvwr.msc打开事件查看器
在打开的事件查看器中依次选择应用程序和服务日志
>Microsoft
>Windows
>Sysmon
sysmon日志存储地址:
C:WindowsSystem32winevtLogsMicrosoft-Windows-Sysmon%4Operational.evtx
二、nxlog安装配置
2.1 安装
nxlog下载地址:
https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition
windows下可直接下载安装包msi文件,直接安装就可。
2.2 配置
找到nxlog的安装目录,打开conf下的nxlog.conf文件,配置如下:
# 输入端sysmon事件日志
<Input in>
Module im_msvistalog
ReadFromLast True
Query <QueryList> <Query Id="0"> <Select Path="Microsoft-Windows-Sysmon/Operational">*</Select> </Query></QueryList>
</Input>
# 输出端tcp服务接收
<Output out>
Module om_tcp
Host 127.0.0.1
Port 514
</Output>
<Route 1>
Path in => out
</Route>
键盘上按下ctrl+r,弹出的窗口输入services.msc打开服务,查找nxlog进行停止启动服务。
三、golang实现的接收服务
package main
import (
"bufio"
"fmt"
"log"
"net"
)
func main() {
listen, err := net.Listen("tcp", "127.0.0.1:514")
if err != nil {
log.Fatal(err)
}
for {
accept, err := listen.Accept()
if err != nil {
log.Fatal(err)
}
scanner := bufio.NewScanner(accept)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}
}
# 生成可执行文件
go build -o sysmonview.log
# 运行程序
sysmonview.exe
四、查看效果
-
启动sysmon服务
-
启动nxlog服务
-
启动sysmonview.exe程序
-
创建一个文本文件
能够跟踪磁盘文件变化,同时cpu、内存占用量也不高。
原文始发于微信公众号(数据安全治理技术):sysmon+nxlog监控win下磁盘文件变化
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论