Windows安全日志解析工具 – 作者:凯信特安全团队

Windows安全日志解析工具

可解析windows系统目录下的安全日志文件 ( 需获取管理员权限 ),也可采用手动添加文件的方式进行解析,解析后的文件为XML,HTML两种格式,HTML已采用Bootstrap框架进行界面可视化优化,可直接查看重点日志数据,解析后的HTML数据文件保存在执行文件下的logs/文件夹下 ( 自动创建 ),XML数据文件保存在执行文件下的logs/xml/文件夹下,本工具采用Python语言开发。

功能特点

  • 日志文件可视化解析
  • 原始数据保存为XML文件
  • 管理员运行可直接解析系统日志
  • 可采用手动添加文件或目录方式进行解析

参数解析

shell optional arguments:

-h, --help

show this help message and exit

-s, --system

读取并解析指定的windows日志

-f FILE, --file FILE

指定一个evtx文件进行解析

-d DIR, --dir DIR

指定一个目录,解析目录下所有evtx文件(默认为系统日志文件夹)

源码结构

─import # 引用模块

─argparse # 参数解析模块

─parse_logs # evtx日志文件解析模块

─XML_parse # XML数据解析模块

─save_data # 数据保存模块

__main__ # 主模块

功能详情

  • argparse
  • ——参数解析模块
    • 所需模块:argparse

    • 功能: 

    • -h --help : 显示参数帮助文档

    • -s --system : 读取并解析系统日志,需手动选择解析文件

    • -f --file : 指定日志文件进行解析,如执行:python tool.py -f D:/Application.evtx

    • -d --dir : 指定目录,解析目录下所有日志文件,如执行:python tool.py -f D:/log/

    • parse_logs——evtx日志文件解析模块

    • 所需模块:Evtx,contextlib,mmap
    • 功能:利用python-evtx模块解析.evtx文件数据,遍历事件,将事件解析为XML数据格式,单个事件顶级标签为,返回单个文件解析的所有XML数据。
  • XML_parse——XML数据解析模块
    • 所需模块:xml.dom.minidom
    • 功能:将 XML 数据在内存中解析成一个树,通过对树的操作来操作 XML。返回一个字典列表,列表长度为文件内事件数,字典内保存获取的数据。
  • save_data—— 数据保存模块
    • 所需模块:os,codecs,string.Template
    • 功能:通过传入的mod参数判断保存数据格式
    • XML下:
      1. 判断是否存在log/xml/文件夹,不存在则创建
      2. 写入与evtx文件同名的XML文件
      3. 为XML文件添加顶级标签
      4. 写入parse_logs返回的XML数据
    • HTML下:
      1. 利用字符串模板,将提前定义好的html文件模板字符串的变量进行替换
      2. 循环遍历XML_parse返回的列表,将变量绑定至HTML文件
      3. 单个列表绑定一个table表格
      4. 写入数据
  • __main__——程序入口
    1. 判断参数
    2. 遍历目录(如解析单个文件则没有此功能)
    3. 将.evtx文件解析为XML数据
    4. 将XML数据保存为XML文件
    5. 将XML文件数据解析为DOM树,获取数据并返回一个字典列表
    6. 将字典列表数据通过字符串模板写入HTML文件内

程序演示

执行--help参数:

图片.png
执行--system参数:​文件选择界面:

图片.png图片.png执行--file参数:
图片.png自动创建文件夹及文件:

图片.png

XML文档内容:

图片.pngHTML文档内容:

图片.png执行--dir参数:

图片.png

已知缺陷

  • 采用阻塞式I/O开发,在解析大文件或目录下多个文件时程序运行较慢。

来源:freebuf.com 2019-03-18 17:25:36 by: 凯信特安全团队

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论