banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

Windows XML事件日志(EVTX)解析

evtx 日志描述#

windows 下的 evtx 日志存放位置

%SystemRoot%\System32\Winevt\Logs\

image.png

主要日志包括应用程序、安全、系统日志等,日志默认大小 20484K(20M),超出的部分将覆盖过期的日志。

通过 windows 自带的事件查看器可以查看对应的日志。

image.png

随机点击一个事件 ID 为 4624 的事件,大体内容如下,切换到 xml 视图,可以查看 xml 格式日志。

image.png

evtx_dump#

通过工具去解析 evtx 的日志

下载对应版本:

https://github.com/omerbenamram/evtx/releases

evtx_dump <evtx_file> 以xml形势转储

evtx_dump -o json <evtx_file> 以json格式转储

evtx_dump -f <output_file> -o json <input_file> 输出到指定文件

配合 fd(https://github.com/cha0ran/fd-zh)使用,便于批量处理

fd -e evtx -x evtx_dump -o jsonl 将所有evtx后缀结尾的文件转储到单独的json文件中

fd -e evtx -x evtx_dump '{}' -f '{.}.xml 创建一个与evtx对应的xml文件,然后内容到对应的xml文件中

fd -a -e evtx | xargs -I input sh -c "evtx_dump -o jsonl input | jq --arg path "input" '. + {path: \$path}'"

-e:文件后缀
-a:搜索隐藏文件或目录
xargs -I input sh -c “command”:传入input变量,并将其交给command执行
jq --arg path “input” ‘. + {path: \$path}’:将path变量追加至输出的json文件中

提取#

从 evtx 文件中提取 EventID

evtx_dump temp_scheduled_task_4698_4699.evtx -o jsonl | jq '.Event.System.EventID'

对 EventID 进行排序并统计个数

evtx_dump Security.evtx -o jsonl | jq '.Event.System.EventID' | sort | uniq

image.png

查看事件 ID 可以知道当前日志中大部分日志的状态。如上 5379 表示 Microsoft Windows Defender 防病毒软件有关的事件,该事件记录了 Windows Defender 的相应策略信息,指示 Defender 定期扫描或更新情况。4625 表示登录失败,且只有一条日志,那说明不存在登录暴力破解的尝试。4672 代表管理员登录,同时以管理员的身份进行操作的日志也会记录成 4672,类似于 linux 下面的 sudo,一次 sudo 记录一条日志。

可以和事件 ID 进行一一对比,判断相关事件的影响。

提取多个字段

evtx_dump temp_scheduled_task_4698_4699.evtx -o jsonl | jq '.Event.System.EventID','.Event.System.Computer'

事件 id 参考:windows 应急响应手册笔记记录

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。