更新於 2024/12/14閱讀時間約 12 分鐘

事件記錄檔工具程式

上回介紹免費程式FullEventLogView.exe,可以對事件檢視器的紀錄檔作維護,今回說明另一個公用工具程式 wevtuti,亦可對各個事件紀錄檔查詢,維護,這是Windows的內部指令程式,不必再下載,可以直接輸入執行


功能:

可讀取關於系統事件記錄檔與發行者的相關資訊、安裝與解除安裝事件資訊清單,並可執行查詢,以及匯出、封存和清除事件記錄檔。


使用方式:

(1) cmd 內,輸入命令,直接執行

可使用簡短 (例如,el ) 或完整版的命令與選項名稱。命令、選項及選項值不區分大小寫。

(2) 將命令內容設計後,作成bat執行


語法:

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 清除記錄檔。


實例說明:

1. 列出記錄檔名稱

Cmd 內輸入 wevtutil el

執行後,即列出全部記錄檔名稱,如下

AMSI/Debug

AirSpaceChannel

Analytic

Application

DirectShowFilterGraph

DirectShowPluginControl

Els_Hyphenation/Analytic

EndpointMapper

FirstUXPerf-Analytic

ForwardedEvents

General Logging

HardwareEvents

共1158個log 紀錄檔名稱


2. 取得記錄檔設定資訊,讀取記錄名為system

Cmd 內輸入 wevtutil gl System

執行後,即列出system記錄檔資訊,如下

name: System
enabled: true
type: Admin
owningPublisher:
isolation: System
channelAccess: O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x3;;;BO)(A;;0x5;;;SO)(A;;0x1;;;IU)(A;;0x3;;;SU)(A;;0x1;;;S-1-5-3)(A;;0x2;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)
logging:
logFileName: %SystemRoot%\System32\Winevt\Logs\System.evtx
retention: false
autoBackup: false
maxSize: 20971520
publishing:
fileMax: 1
  1. 取得記錄檔狀態資訊,記錄名為Application

Cmd 內輸入  wevtutil gli Application

執行後,即列出application記錄檔狀態資訊,如下

creationTime: 2024-10-26T15:53:28.9743911Z
lastAccessTime: 2024-12-12T13:55:43.4272512Z
lastWriteTime: 2024-12-12T13:55:43.4272512Z
fileSize: 4263936
attributes: 2080
numberOfLogRecords: 6438
oldestRecordNumber: 1

4. 從記錄檔查詢事件,查詢條件:Application記錄之最近2筆事件

Cmd 內輸入  wevtutil qe Application /c:2 /rd:true /f:text

執行後,即列出application記錄之最近2筆事件資訊,如下

Event[0]:
Log Name: Application
Source: Validity USDK
Date: 2024-12-13T14:50:38.000
Event ID: 6
Task: N/A
Level: 警告
Opcode: N/A
Keyword: 傳統
User: N/A
User Name: N/A
Computer: admin-HP
Description:
User identification failed: Result:0x00000134.

Event[1]:
Log Name: Application
Source: Validity USDK
Date: 2024-12-13T14:49:06.000
Event ID: 6
Task: N/A
Level: 警告
Opcode: N/A
Keyword: 傳統
User: N/A
User Name: N/A
Computer: admin-HP
Description:
User identification failed: Result:0x00000134.

 5. 匯出記錄檔

5.1    查詢條件: 2024-12-12T00:09:20 以後至現在 EventID =86 or 1000之Application 事件紀錄,查詢後結果出力檔案

 Cmd 內輸入   

 wevtutil.exe epl Application D:\EventLog_Out\app-log.evtx /ow:true /q:"*[System[(EventID=86 or EventID=1000) and TimeCreated[@SystemTime>='2024-12-12T00:09:20.000Z']]]"

執行後,即匯出查詢條件之application記錄事件資訊至如下檔案

  D:\EventLog_Out\app-log.evtx

 

5.2查詢條件: 24小時內 level =1 or 2之system 事件紀錄,查詢後結果出力檔案

 Cmd 內輸入:

  wevtutil.exe epl system  D:\EventLog_Out\\sys_log.evtx /ow:true /q:" *[System[(Level=1 or Level=2) and TimeCreated[timediff(@SystemTime) <= 86400000]]]" 

  執行後,匯出查詢條件,即Level 是 Critical or Error之system記錄事件資訊至如下檔案,D:\EventLog_Out\sys-log.evtx

打開出力的紀錄檔 sys-log.evtx,顯示如下:

[註] 參數值說明

24H*60分*60秒*1000=86400000,若為10小時內即36000000

Event Level(層級) 定義:

Level =1 Critical

這個等級會對應至嚴重錯誤,也就是造成重大失敗的嚴重錯誤。

Level =2 Error

這個層級新增表示問題的標準錯誤。

Level =3 Warning

這個等級會加入警告事件 (例如,磁碟容量快不夠時,所發行的事件)。

Level =4 Informational

這個等級會加入非錯誤的告知性事件或訊息。 這些事件有助於追蹤應用程式的進度或狀態。

Level =5 Verbose

這個等級會加入冗長的事件或訊息。 它會讓所有事件記錄下來。

Level =0 LogAlways

未對事件進行任何層級篩選。 當做啟用事件的層級篩選使用


6. 清除記錄檔

6.1紀錄檔名Setup,先備份後,清除

Cmd 內輸入:

wevtutil.exe epl setup D:\EventLog_Out\setup-log2.evtx /ow:true /q:"*"

-->先匯出,備份至setup-log2.evtx

Cmd 內輸入:

 wevtutil.exe cl setup /bu:D:\EventLog_Out\backup-setup-20241213.evtx

--> cl刪除時,會先備份至backup-setup-20241213.evtx

C:\Users>wevtutil cl setup /bu:D:\EventLog_Out\backup-setup-20241213.evtx

無法清除記錄檔 setup。

存取被拒。

-->執行結果,出現如上,存取被拒

***解決方法:

將指令作成bat,以系統管理員身分執行即可

執行後,會先備份出力後,再刪除Setup 記錄名之事件資訊,


6.2若須將系統全部紀錄檔刪除,可參考cmd如下 (本例沒有備份,紀錄檔全部刪除):

FOR /F "tokens=*" %%i in ('wevtutil.exe el') DO (wevtutil.exe cl "%%i" )                 


***全部紀錄檔刪除前,先做好備份,備份方法可參考如下:

XCOPY C:\Windows\System32\winevt\Logs\*.* D:\backup-evt /Y /Q /H /R /J

總結

我們利用Windows內建的命令提示字元(cmd) 來查詢,維護,刪除事件紀錄日誌,除了定期監視檢查事件記錄資訊,研讀究查事件發生的原因,尤其是Event Level 為critical or error層級者,需警慎對待處理,以便預知風險,避免系統故障發生,但也要留意session、cookie、暫存檔,Cache等狀態。因為攻擊者駭入後,也會試圖清除存在於網路上或本機上的行為軌跡。

---by linct-----

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.