Windows 事件日志文件——EVTX文件

概述:.evtx 是 Windows 事件日志文件的扩展名。这些文件通常包含系统或应用程序的操作信息,如系统警告、错误、信息事件等。这些文件主要被系统管理员用来进行故障排查和系统监控。

Windows 事件查看器是查看 .evtx 文件的主要工具,你可以在 Windows 的控制面板或者通过在 “运行” 对话框中输入 eventvwr.msc 来打开它。在事件查看器中,你可以查看、导出和清除事件日志,还可以创建和管理事件订阅。

.evtx 文件是二进制文件,所以直接用文本编辑器打开它们并不能看到有用的信息。有一些第三方工具,如 NirSoft 的 MyEventViewer 或 Log Parser,可以解析 .evtx 文件并以更易于理解的格式显示事件。

evtx文件概述

概述

.evtx是Windows事件日志文件的扩展名,全称为Windows XML事件日志格式。
Windows事件日志用于记录系统和应用程序在运行过程中发生的不同事件。.evtx文件采用XML格式来存储这些事件信息。每个evtx文件通常对应一个特定的日志类型,如:
• System.evtx - 记录系统事件
• Application.evtx - 记录应用程序事件
• Security.evtx - 记录安全审核事件

如何查看

.evtx文件可以使用事件查看器(Windows Event Viewer)来查看和分析。我们还可以使用PowerShell、evtparser等工具来解析evtx文件,例如:

  1. 获取evtx文件中的事件ID为1000的所有事件:
1
Get-WinEvent -Path application.evtx | Where {$_.Id -eq "1000"}
  1. 根据evtx文件中的事件消息筛选事件:
1
Get-WinEvent -Path application.evtx | Where {$_.Message -like "*some message*"}
  1. 导出evtx文件中的所有事件到CSV文件:
1
Get-WinEvent -Path application.evtx | Export-CSV -Path events.csv
  1. 使用evtparser解析evtx文件
    evtparser.py application.evtx > events.log
    evtx文件的主要作用是进行系统监控、安全审计和事件分析。通过分析evtx文件,我们可以:

    • 了解系统或应用程序的运行状况和遇到的问题

    • 检测系统或应用程序的潜在安全威胁

    • 分析某个时间段内的系统事件,查找可能导致问题的变化

    • 审计对系统的访问和更改等

所以,熟悉evtx文件格式和如何分析evtx文件是信息安全人员和系统管理员的重要技能之一。

EVTX 文件结构

evtx文件主要由三部分组成:

  • file header (文件头)
  • chunks (数据块)
  • trailing empty values (尾部填充空值)

File Header(文件头):

文件头长度为4KB(4096bytes),其结构如下:

偏移 长度(Bytes) 描述
0x00 8 “ElfFile\x00” 标志位/签名
0x08 8 第一个区块编号(存在时间最久的区块编号)
0x10 8 当前区块编号(块的编号从0开始)
0x18 8 下一条事件记录的ID
0x20 4 128 文件头有效部分的大小
0x24 2 1 次要版本
0x26 2 3 主要版本
0x28 2 4096 文件头的大小
0x2A 2 区块的数量
0x2C 76 未知 (空值)
0x78 4 文件标志
0x7C 4 文件头前 120 bytes 的CRC32校验和
0x80 3968 未知 (空值)

Chunk(块):

每个块的大小是 65536 bytes(64KB),主要由三部分组成:

  • chunk header 块头
  • array of event records 事件记录组
  • unused space 未使用的空间

chunk头长度为512bytes,其结构如下:

偏移 长度(Bytes) 描述
0x00 8 “ElfChnk\x00” 标志位/签名
0x08 8 基于日志编号的第一条日志记录的ID
0x10 8 基于日志编号的最后一条日志记录的ID
0x18 8 基于文件编号的第一条日志记录的ID
0x20 8 基于文件编号的最后一条日志记录的ID
0x28 4 128 chunk头大小
0x2C 4 最后一条日志记录的偏移量(相对于块头的起始偏移量)
0x30 4 下一条日志记录的偏移量(相对于块头的起始偏移量)
0x34 4 事件记录数据的 CRC32 校验和
0x38 64 Unknown (空值)
0x78 4 Unknown (flags?)
0x7C 4 块头CRC32校验和(块头前120个字节和128至512字节的数据的CRC32校验和)

Event record(事件记录):

事件记录的长度非固定长度,其结构如下:

偏移 长度(Bytes) 描述
0x00 4 “\x2a\x2a\x00\x00” 标志位/签名
0x04 4 事件记录的长度
0x08 8 记录ID
0x10 8 日志记录的写入时间(FILETIME)
0x18 不确定 基于二进制XML编码的信息
不确定 4 记录长度(副本)

由上面的信息,可知evtx日志文件包含一个4KB的文件头加后面一定数量的64KB大小的块,一个块中记录一定数量(大约100条)的事件记录。每个块是独立的,不受其他块影响。不会出现一条事件记录的数据存在于两个块中。每条记录包含一个基于二进制XML编码的信息。每条事件记录包含其创建时间与事件 ID(可以用于确定事件的种类),因此可以反映某个特定的时间发生的特定的操作,取证人员可以根据日志文件来发现犯罪的过程。

evtx日志文件大概的结构如下所示:

evtx结构说明

EVTX文件的存储

Windows事件日志文件保存在%SystemRoot%\System32\Winevt\Logs路径中。

常见日志文件主要有三个,分别是:System.evtxApplication.evtxSecurity.evtx。分别是系统日志、应用程序日志和安全日志。

  • System.evtx

    记录操作系统自身组件产生的日志事件,比如驱动、系统组件和应用软件的崩溃以及数据丢失错误等等。

  • Application.evtx

    记录应用程序或系统程序运行方面的日志事件,比如数据库程序可以在应用程序日志中记录文件错误,应用的崩溃记录等。

  • Security.evtx

    记录系统的安全审计日志事件,比如登录事件、对象访问、进程追踪、特权调用、帐号管理、策略变更等。Security.evtx也是取证中最常用到的。

默认情况下,当一个evtx文件的记录满了,日志服务会覆盖最开始的记录,从头开始写入新的记录。也就是相当于一个循环记录的缓存文件。

image-20210721142106536

Evtx日志分析

WindowsEvent ID来标识事件的不同含义,拿Security日志来说,一些常见的Event ID 如下:

事件ID 描述
4608 Windows 启动
4609 Windows 关机
4616 系统时间发生更改
4624 用户成功登录到计算机
4625 登录失败。使用未知用户名或密码错误的已知用户名尝试登录。
4634 用户注销完成
4647 用户启动了注销过程
4648 用户在以其他用户身份登录时,使用显式凭据成功登录到计算机
4703 令牌权限调整
4704 分配了用户权限
4720 已创建用户账户
4725 账户被禁用
4768 请求Kerberos身份验证票证(TGT)
4769 请求Kerberos服务票证
4770 已续订Kerberos服务票证
4779 用户在未注销的情况下断开了终端服务器会话

1、通过Windows事件查看器分析日志

通过Windows事件查看器可以查看当前主机的事件日志,也可以打开保存的 evtx文件。

image-20210721160559304

可以通过点击、筛选、查找等多种方式查看事件日志

筛选

筛选器提供了丰富的筛选方式:

image-20210721161013112

2、通过工具分析Evtx

Log Parser

Log Parser(是微软公司自己开发的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它使用类似 SQL 语句一样查询分析这些数据,还可以把分析结果以图表的形式展现出来。

Log Parser下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659

使用方法:

1
logparser -i:输入文件的格式 -o:输出文件的格式 "查询语句 和文件路径"

例子:

查询登录成功的事件:

1
LogParser.exe -i:EVT -o:DATAGRID  "SELECT *  FROM E:\Security.evtx where EventID=4624"

Log Parser Studio

logparser的GUI版本。

下载地址:https://techcommunity.microsoft.com/t5/exchange-team-blog/log-parser-studio-2-0-is-now-available/ba-p/593266

其界面如下:

image-20210721163556793

LogParser Lizard

LogParser Lizard 是一个功能丰富的Windows 日志分析软件,可以通过类似SQL查询语句对日志筛选查询进行分析。

下载地址:https://lizard-labs.com/log_parser_lizard.aspx


Windows 事件日志文件——EVTX文件
https://hodlyounger.github.io/2024/01/23/A_OS/Windows/文件与结构体/【WIN】EVTX文件/
作者
mingming
发布于
2024年1月23日
许可协议