上回介紹免費程式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
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-----