概述:.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的所有事件:
Get-WinEvent -Path application.evtx | Where {$_.Id -eq "1000"}
  1. 根据evtx文件中的事件消息筛选事件:
Get-WinEvent -Path application.evtx | Where {$_.Message -like "*some message*"}
  1. 导出evtx文件中的所有事件到CSV文件:
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)描述
0x008”ElfFile\x00”标志位/签名
0x088第一个区块编号(存在时间最久的区块编号)
0x108当前区块编号(块的编号从0开始)
0x188下一条事件记录的ID
0x204128文件头有效部分的大小
0x2421次要版本
0x2623主要版本
0x2824096文件头的大小
0x2A2区块的数量
0x2C76未知 (空值)
0x784文件标志
0x7C4文件头前 120 bytes 的CRC32校验和
0x803968未知 (空值)

Chunk(块):

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

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

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

偏移长度(Bytes)描述
0x008”ElfChnk\x00”标志位/签名
0x088基于日志编号的第一条日志记录的ID
0x108基于日志编号的最后一条日志记录的ID
0x188基于文件编号的第一条日志记录的ID
0x208基于文件编号的最后一条日志记录的ID
0x284128chunk头大小
0x2C4最后一条日志记录的偏移量(相对于块头的起始偏移量)
0x304下一条日志记录的偏移量(相对于块头的起始偏移量)
0x344事件记录数据的 CRC32 校验和
0x3864Unknown (空值)
0x784Unknown (flags?)
0x7C4块头CRC32校验和(块头前120个字节和128至512字节的数据的CRC32校验和)

Event record(事件记录):

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

偏移长度(Bytes)描述
0x004”\x2a\x2a\x00\x00”标志位/签名
0x044事件记录的长度
0x088记录ID
0x108日志记录的写入时间(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描述
4608Windows 启动
4609Windows 关机
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

使用方法:

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

例子:

查询登录成功的事件:

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