Windows 事件日志本地采集与 JSON 格式转换方案
本文章介绍一种将 Windows 事件日志 (.evtx) 文件进行本地采集、转换为 JSON 格式并进行一系列处理的方案,以便于后续分析和应用。
一、方案概述
本方案主要包含以下几个阶段:
采集阶段: 直接从本地计算机获取原始 EVTX 日志文件。
转换阶段: 使用 EvtxECmd.exe 工具将 EVTX 文件转换为 JSON 格式。
筛选与解析阶段: 根据预设的事件 ID 筛选 JSON 数据,提取关键信息并重构。
合并阶段: 将相同事件 ID 的数据合并到同一文件中。
格式化阶段: 统一数据类型为字符串,提高一致性和可读性。
增强阶段: 尝试提取 IP 地址信息,并添加 logip 字段。
二、详细流程
2.1 准备阶段
输入: 包含原始 EVTX 日志文件的文件夹 raw_evtx_logs。
工具: EvtxECmd.exe (下载地址: https://github.com/EricZimmerman/evtx 或 https://download.ericzimmermanstools.com/net6/EvtxECmd.zip)
2.2 转换阶段
过程: 遍历 raw_evtx_logs 文件夹,使用 EvtxECmd.exe 将每个 EVTX 文件转换为对应的 JSON 文件。
输出: 转换后的 JSON 文件存放在 converted_json 文件夹。
2.3 筛选与解析阶段
过程: 读取 converted_json 文件夹中的所有 JSON 文件,根据预设的事件 ID 列表筛选事件,提取关键数据并重组。
输出: 按事件 ID 分类,将筛选解析后的数据保存到 filtered_events 文件夹下的不同 JSON 文件中,文件名包含原始文件名和事件 ID。
2.4 合并阶段
过程: 读取 filtered_events 文件夹中的 JSON 文件,将相同事件 ID 的数据合并。
输出: 按事件 ID 分类,将合并后的数据保存到 merged_events 文件夹下的不同 JSON 文件中。
2.5 格式化阶段
过程: 读取 merged_events 文件夹中的 JSON 文件,将所有数据统一格式化为字符串类型。
输出: 格式化后的 JSON 文件保存到 formatted_events 文件夹。
2.6 增强阶段 (添加 IP 信息)
过程: 读取 formatted_events 文件夹中的 JSON 文件,尝试从原始信息中提取 IP 地址,并添加 logip 字段。
输出: 添加了 logip 字段的最终 JSON 文件保存到 final_events 文件夹。
三、结果
程序运行后,将在当前目录下生成以下文件夹:
converted_json: 原始 EVTX 文件转换后的 JSON 文件。
filtered_events: 按事件 ID 筛选和解析后的 JSON 文件。
merged_events: 按事件 ID 合并后的 JSON 文件。
formatted_events: 格式化后的 JSON 文件。
final_events: 添加了 logip 字段的最终 JSON 文件,可用于后续分析。
四、代码实现
完整的代码实现请参考:https://github.com/iying-nl/winlogEVTXtract
后续文章将介绍设计过程中遇到的知识点
标签:文件,Windows,ID,安全,JSON,文件夹,阶段,日志,events From: https://www.cnblogs.com/o-O-oO/p/18594486原创 鹰鹰网安