win32审核事件读取

PowerShell 导出Windows 日志为.evtx 格式

现在我们尝试将“应用程序(Application)”路径下,所有消息(Level=4),EventID=1001,并且在一个小时内产生的windows事件日志导出到:D:\1001.evtx。

然后在PowerShell 中这样调用:

1
PS > wevtutil epl Application D:\1001.evtx /q:"*[System[(Level=4) and (EventID=1001) and TimeCreated[timediff(@SystemTime) <= 43200000]]]"

wevtutil命令参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
C:\Users\ssc2> wevtutil
未指定命令。
Windows 事件命令行实用程序。

用于检索有关事件日志和发布者的信息,
安装和卸载事件清单,运行查询以及导出、存档和清除日志。

用法:

你可以使用短(如 ep /uni)或长(如
enum-publishers /unicode)形式的命令和选项名称。
命令、选项和选项值不区分大小写。

变量均使用大写形式。

wevtutil COMMAND [ARGUMENT [ARGUMENT] ...] [/OPTION:VALUE [/OPTION:VALUE] ...]

命令:
el | enum-logs 列出日志名称。
gl | get-log 获取日志配置信息。
sl | set-log 修改日志配置。
ep | enum-publishers 列出事件发布者。
gp | get-publisher 获取发布者配置信息。
im | install-manifest 从清单中安装事件发布者和日志。
um | uninstall-manifest 从清单中卸载事件发布者和日志。
qe | query-events 从日志或日志文件中查询事件。
gli | get-log-info 获取日志状态信息。
epl | export-log 导出日志。
al | archive-log 存档导出的日志。
cl | clear-log 清除日志。

常用选项:
/{r | remote}:VALUE
如果指定,则在远程计算机上运行该命令。VALUE 是远程计算机名称。
/im 和 /um 选项不支持远程操作。

/{u | username}:VALUE
指定一个不同的用户以登录到远程计算机。
VALUE 是 domain\user 或 user 形式的用户名。只有在指定 /r 选项时才适用。

/{p | password}:VALUE
指定的用户密码。如果未指定,
或者 VALUE 为 "*",则会提示用户输入密码。
只有在指定 /u 选项时才适用。

/{a | authentication}:[Default|Negotiate|Kerberos|NTLM]
用于连接到远程计算机的身份验证类型。默认值为 Negotiate。

/{uni | unicode}:[true|false]
使用 Unicode 显示输出。如果为 true,则使用 Unicode 显示输出。

要了解特定命令的详细信息,请键入以下命令:
wevtutil COMMAND /?

Powershell导出测试:

1
2
3
4
5
wevtutil epl Security C:\Users\ssc2\Desktop\1111.evtx /q:"*[System[(Level=4) and (EventID=4663) and TimeCreated[timediff(@SystemTime) <= 43200000]]]"    # 导出为空
wevtutil epl Application C:\Users\ssc2\Desktop\app.evtx /q:"*[System[(Level=4) and (EventID=1001) and TimeCreated[timediff(@SystemTime) <= 43200000]]]" # 正常导出
wevtutil epl Security C:\Users\ssc2\Desktop\sec.evtx /q:"*[System[(Level=4) and (EventID=4663) and TimeCreated[timediff(@SystemTime) <= 43200000]]]" # 导出为空
wevtutil epl Security C:\Users\ssc2\Desktop\sec.evtx /q:"*[System[(EventID=4663)]]" # 正常导出
wevtutil epl Security C:\Users\ssc2\Desktop\sec.evtx /q:"*[System[(EventID=4663) and TimeCreated[timediff(@SystemTime) <= 43200000]]]" # 正常导出

Security审核日志文件路径:

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

方案1:

1.导出日志(可过滤)或者读取日志

1
2
3
wevtutil epl Security C:\Users\ssc2\Desktop\sec_one_hour.evtx /q:"*[System[(EventID=4663) and TimeCreated[timediff(@SystemTime) <= 43200000]]]"
(EventID=4663) 为过滤事件id=4663
TimeCreated[timediff(@SystemTime) <= 43200000] 为一小时以内记录的事件

2.python的python-evtx+xml库操作sec.evtx

方案2:

1.使用Nxlog将Windows事件日志保存位json格式文件

2.python处理json文件

-------------本文结束感谢您的阅读-------------
0%