Python 获取WindowsEvtx日志文件并解析

Python 获取WindowsEvtx日志文件并解析

.evtx是Windows事件日志文件的扩展名,用于记录系统和应用程序的运行事件,以XML格式存储。
常见的evtx文件包括记录系统事件的System.evtx、记录应用程序事件的Application.evtx和记录安全审核事件的Security.evtx。
这些文件可通过Windows事件查看器、PowerShell和evt parser等工具查看和分析。
EVTX文件保存在特定路径中,当文件记录满时,会覆盖最开始的记录。

Security.evtx也是取证中最常用到的。

存储位置:

C:\Windows\System32\winevt\Logs\Security.evtx

在这里插入图片描述

Evtx日志分析

Windows用 Event ID来标识事件的不同含义,一些常见的Event ID 如下:

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

Windows日志 模块安装

pip install python-evtx
demo如下(随便写的):
import html
from xml.dom import minidom

import Evtx.Evtx as evtx

path = r"C:\Windows\Sysnative\winevt\Logs\Security.evtx"

with evtx.Evtx(path) as log:
    for record in log.records():
        timestamp = record.timestamp().timestamp()
        r = {}
        xml_doc = minidom.parseString(record.xml())
        # 事件ID 例如 4624登录成功,4625登录失败
        id_ = xml_doc.getElementsByTagName('EventID')[0].childNodes[0].data

        data = xml_doc.getElementsByTagName('Data')
        for d in data:
            name = d.getAttribute('Name')
            value = html.unescape(d.childNodes[0].data)

日志比较多,可以先筛选过滤Windows Security.evtx 安全日志:

wevtutil epl Security D:\Security_01.evtx /q:"*[System[(Level=4) and (EventID=4624) and TimeCreated[timediff(@SystemTime) <= 43200000]]]"

将Security路径下,所有消息D:\Security_01.evtx(Level=4),EventID=1001,
并且在一个小时内产生的windows事件日志导出到:D:\1001.evtx
注意,上面有个Application可以换成Security,Setup,System等日志路径。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值