0x0、概述
evtx文件是微軟從 Windows NT 6.0(Windows Vista 和 Server 2008) 開始采用的一種全新的日志文件格式。在此之前的格式是 evt 。evtx由Windows事件查看器創(chuàng)建,包含Windows記錄的事件列表,以專有的二進(jìn)制XML格式保存。
0x1、EVTX文件結(jié)構(gòu)
evtx文件主要由三部分組成:
file header (文件頭)
chunks (數(shù)據(jù)塊)
trailing empty values (尾部填充空值)
File Header(文件頭):
文件頭長度為4KB(4096bytes),其結(jié)構(gòu)如下:
偏移長度(Bytes)值描述
0x008"ElfFile\x00"標(biāo)志位/簽名
0x088
第一個(gè)區(qū)塊編號(hào)(存在時(shí)間最久的區(qū)塊編號(hào))
0x108
當(dāng)前區(qū)塊編號(hào)(塊的編號(hào)從0開始)
0x188
下一條事件記錄的ID
0x204128文件頭有效部分的大小
0x2421次要版本
0x2623主要版本
0x2824096文件頭的大小
0x2A2
區(qū)塊的數(shù)量
0x2C76
未知 (空值)
0x784
文件標(biāo)志
0x7C4
文件頭前 120 bytes 的CRC32校驗(yàn)和
0x803968
未知 (空值)
我們可以使用Hex編輯器打開一個(gè)evtx文件查看一下:
Chunk(塊):
每個(gè)塊的大小是 65536 bytes(64KB),主要由三部分組成:
chunk header 塊頭
array of event records 事件記錄組
unused space 未使用的空間
chunk頭長度為512bytes,其結(jié)構(gòu)如下:
偏移長度(Bytes)值描述
0x008"ElfChnk\x00"標(biāo)志位/簽名
0x088
基于日志編號(hào)的第一條日志記錄的ID
0x108
基于日志編號(hào)的最后一條日志記錄的ID
0x188
基于文件編號(hào)的第一條日志記錄的ID
0x208
基于文件編號(hào)的最后一條日志記錄的ID
0x284128chunk頭大小
0x2C4
最后一條日志記錄的偏移量(相對(duì)于塊頭的起始偏移量)
0x304
下一條日志記錄的偏移量(相對(duì)于塊頭的起始偏移量)
0x344
事件記錄數(shù)據(jù)的 CRC32 校驗(yàn)和
0x3864
Unknown (空值)
0x784
Unknown (flags?)
0x7C4
塊頭CRC32校驗(yàn)和(塊頭前120個(gè)字節(jié)和128至512字節(jié)的數(shù)據(jù)的CRC32校驗(yàn)和)
Event record(事件記錄):
事件記錄的長度非固定長度,其結(jié)構(gòu)如下:
偏移長度(Bytes)值描述
0x004"\x2a\x2a\x00\x00"標(biāo)志位/簽名
0x044
事件記錄的長度
0x088
記錄ID
0x108
日志記錄的寫入時(shí)間(FILETIME)
0x18不確定
基于二進(jìn)制XML編碼的信息
不確定4
記錄長度(副本)
由上面的信息,可知evtx日志文件包含一個(gè)4KB的文件頭加后面一定數(shù)量的64KB大小的塊,一個(gè)塊中記錄一定數(shù)量(大約100條)的事件記錄。每個(gè)塊是獨(dú)立的,不受其他塊影響。不會(huì)出現(xiàn)一條事件記錄的數(shù)據(jù)存在于兩個(gè)塊中。每條記錄包含一個(gè)基于二進(jìn)制XML編碼的信息。每條事件記錄包含其創(chuàng)建時(shí)間與事件 ID(可以用于確定事件的種類),因此可以反映某個(gè)特定的時(shí)間發(fā)生的特定的操作,取證人員可以根據(jù)日志文件來發(fā)現(xiàn)犯罪的過程。
evtx日志文件大概的結(jié)構(gòu)如下所示:
在windows事件查看器中查看:
0x2、EVTX文件的存儲(chǔ)
Windows事件日志文件保存在%SystemRoot%\System32\Winevt\Logs路徑中。
常見日志文件主要有三個(gè),分別是:System.evtx 、Application.evtx 和Security.evtx。分別是系統(tǒng)日志、應(yīng)用程序日志和安全日志。
System.evtx
記錄操作系統(tǒng)自身組件產(chǎn)生的日志事件,比如驅(qū)動(dòng)、系統(tǒng)組件和應(yīng)用軟件的崩潰以及數(shù)據(jù)丟失錯(cuò)誤等等。
Application.evtx
記錄應(yīng)用程序或系統(tǒng)程序運(yùn)行方面的日志事件,比如數(shù)據(jù)庫程序可以在應(yīng)用程序日志中記錄文件錯(cuò)誤,應(yīng)用的崩潰記錄等。
Security.evtx
記錄系統(tǒng)的安全審計(jì)日志事件,比如登錄事件、對(duì)象訪問、進(jìn)程追蹤、特權(quán)調(diào)用、賬號(hào)管理、策略變更等。Security.evtx也是取證中最常用到的。
默認(rèn)情況下,當(dāng)一個(gè)evtx文件的記錄滿了,日志服務(wù)會(huì)覆蓋最開始的記錄,從頭開始寫入新的記錄。也就是相當(dāng)于一個(gè)循環(huán)記錄的緩存文件。
0x3、Evtx日志分析
Windows 用 Event ID來標(biāo)識(shí)事件的不同含義,拿Security日志來說,一些常見的Event ID 如下:
事件ID描述
4608Windows 啟動(dòng)
4609Windows 關(guān)機(jī)
4616系統(tǒng)時(shí)間發(fā)生更改
4624用戶成功登錄到計(jì)算機(jī)
4625登錄失敗。使用未知用戶名或密碼錯(cuò)誤的已知用戶名嘗試登錄。
4634用戶注銷完成
4647用戶啟動(dòng)了注銷過程
4648用戶在以其他用戶身份登錄時(shí),使用顯式憑據(jù)成功登錄到計(jì)算機(jī)
4703令牌權(quán)限調(diào)整
4704分配了用戶權(quán)限
4720已創(chuàng)建用戶賬戶
4725賬戶被禁用
4768請(qǐng)求Kerberos身份驗(yàn)證票證(TGT)
4769請(qǐng)求Kerberos服務(wù)票證
4770已續(xù)訂Kerberos服務(wù)票證
4779用戶在未注銷的情況下斷開了終端服務(wù)器會(huì)話
1、通過Windows事件查看器分析日志
通過Windows事件查看器可以查看當(dāng)前主機(jī)的事件日志,也可以打開保存的 evtx文件。
可以通過點(diǎn)擊、篩選、查找等多種方式查看事件日志
篩選器提供了豐富的篩選方式:
2、通過工具分析Evtx
Log Parser
Log Parser(是微軟公司自己開發(fā)的日志分析工具,它功能強(qiáng)大,使用簡單,可以分析基于文本的日志文件、XML 文件、CSV(逗號(hào)分隔符)文件,以及操作系統(tǒng)的事件日志、注冊(cè)表、文件系統(tǒng)、Active Directory。它使用類似 SQL 語句一樣查詢分析這些數(shù)據(jù),還可以把分析結(jié)果以圖表的形式展現(xiàn)出來。
Log Parser下載地址:
https://www.microsoft.com/en-us/download/details.aspx?id=24659使用方法:
logparser -i:輸入文件的格式 -o:輸出文件的格式 "查詢語句 和文件路徑"例子:
查詢登錄成功的事件:
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM E:\Security.evtx where EventID=4624"
還有其他的語法,具體可以查看其幫助信息
>LogParser.exe
Microsoft (R) Log Parser Version 2.2.10
Copyright (C) 2004 Microsoft Corporation. All rights reserved.
Usage: LogParser [-i:<input_format>] [-o:<output_format>] <SQL query> |
file:<query_filename>[?param1=value1+...]
[<input_format_options>] [<output_format_options>]
[-q[:ON|OFF]] [-e:<max_errors>] [-iw[:ON|OFF]]
[-stats[:ON|OFF]] [-saveDefaults] [-queryInfo]
LogParser -c -i:<input_format> -o:<output_format> <from_entity>
<into_entity> [<where_clause>] [<input_format_options>]
[<output_format_options>] [-multiSite[:ON|OFF]]
[-q[:ON|OFF]] [-e:<max_errors>] [-iw[:ON|OFF]]
[-stats[:ON|OFF]] [-queryInfo]
-i:<input_format> : one of IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID,
HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW,
NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS, COM (if
omitted, will guess from the FROM clause)
-o:<output_format> : one of CSV, TSV, XML, DATAGRID, CHART, SYSLOG,
NEUROVIEW, NAT, W3C, IIS, SQL, TPL, NULL (if omitted,
will guess from the INTO clause)
-q[:ON|OFF] : quiet mode; default is OFF
-e:<max_errors> : max # of parse errors before aborting; default is -1
(ignore all)
-iw[:ON|OFF] : ignore warnings; default is OFF
-stats[:ON|OFF] : display statistics after executing query; default is
ON
-c : use built-in conversion query
-multiSite[:ON|OFF] : send BIN conversion output to multiple files
depending on the SiteID value; default is OFF
-saveDefaults : save specified options as default values
-restoreDefaults : restore factory defaults
-queryInfo : display query processing information (does not
execute the query)
Examples:
LogParser "SELECT date, REVERSEDNS(c-ip) AS Client, COUNT(*) FROM file.log
WHERE sc-status<>200 GROUP BY date, Client" -e:10
LogParser file:myQuery.sql?myInput=C:\temp\ex*.log+myOutput=results.csv
LogParser -c -i:BIN -o:W3C file1.log file2.log "ComputerName IS NOT NULL"
Help:
-h GRAMMAR : SQL Language Grammar
-h FUNCTIONS [ <function> ] : Functions Syntax
-h EXAMPLES : Example queries and commands
-h -i:<input_format> : Help on <input_format>
-h -o:<output_format> : Help on <output_format>
-h -c : Conversion help
Log Parser Studio
logparser的GUI版本。
下載地址:
https://techcommunity.microsoft.com/t5/exchange-team-blog/log-parser-studio-2-0-is-now-available/ba-p/593266其界面如下:
Event Log Explorer
Event Log Explorer 是一個(gè)非常好用的Windows 日志分析工具,下載地址:
https://eventlogxp.com/LogParser Lizard
LogParser Lizard 是一個(gè)功能豐富的Windows 日志分析軟件,可以通過類似SQL查詢語句對(duì)日志篩選查詢進(jìn)行分析。
下載地址:
https://lizard-labs.com/log_parser_lizard.aspxEvtx Explorer/EvtxECmd
具有標(biāo)準(zhǔn)化CSV、XML和json輸出的事件日志(Evtx)解析器!
下載地址:
https://ericzimmerman.github.io/#!index.md使用方法:
EvtxECmd.exe -f 日志文件 --xml 輸出路徑
解析的xml文件結(jié)構(gòu)如下:
0x4、Evtx取證實(shí)戰(zhàn)
題目來源:Cynet應(yīng)急響應(yīng)挑戰(zhàn)賽
描述:GOT Ltd 的人力資源主管King-Slayer認(rèn)為他的電腦上有可疑活動(dòng)。
2020 年 2 月 8 日,15:00 左右,他發(fā)現(xiàn)桌面上出現(xiàn)了一個(gè)帶有 kiwi標(biāo)志的文件。據(jù)他描述,該文件首次出現(xiàn)在他的桌面后不久就突然消失了。那天晚些時(shí)候,他開始收到消息告訴他需要重新激活 Windows Defender。他激活了 Windows Defender,幾個(gè)小時(shí)后又收到了同樣的消息。
他決定將這件事告訴他在 IT 部門的朋友——Chris。Chris立即將此事報(bào)告給了 GOT 的網(wǎng)絡(luò)安全部門。
該公司的 CISO 立即打電話求助我們,GOT有限公司總部設(shè)在瑞士,CISO 向我們發(fā)送了來自 King-Slayer的 PC 和域控制器的所有事件日志文件。他希望我們查出異常:
提示:
用戶帳戶 (KingSlayer) 是他電腦上的本地管理員。
域名 -> GOT.Com
DC 服務(wù)器名稱 -> WIN-IL7M7CC6UVU
Jaime(King Slayer)的主機(jī)名->DESKTOP-HUB666E(172.16.44.135)
提交攻擊者使用的域用戶帳戶(King-Slayer除外)以及他使用此用戶帳戶訪問的主機(jī)的IP地址。
我們拿到的文件包括DC服務(wù)的日志和主機(jī)日志文件:
給出的文件還有一個(gè)提示就是PassTheHash ,表明攻擊者使用了該技術(shù)。
傳遞哈希是一種黑客技術(shù),它允許攻擊者使用用戶密碼的基礎(chǔ)NTLM或LanMan哈希對(duì)遠(yuǎn)程服務(wù)器或服務(wù)進(jìn)行身份驗(yàn)證,而不是像通常情況下那樣要求使用關(guān)聯(lián)的明文密碼。它取代了僅竊取哈希值并使用該哈希值進(jìn)行身份驗(yàn)證而竊取明文密碼的需要。--via 維基百科
通過日志交叉比對(duì)和篩選查找,我們確定了在2020-2-9 21:59左右,有異常登錄行為
注意:Windows EVTX 的FILETIME 是 UTC時(shí)間,注意轉(zhuǎn)化為瑞士當(dāng)?shù)貢r(shí)間。
我們發(fā)現(xiàn)用戶Daenerys在2020年2月9日21:59 (當(dāng)?shù)貢r(shí)間15:59)通過SMB協(xié)議登錄到WIN-IL7M7CC6UVU(域控制器),而且使用了PSExec.exe 利用Deanerys用戶登錄了域控服務(wù)器。攻擊者可能使用了Mimikatz拿到了Daenerys用戶的哈希,然后用于橫向移動(dòng)滲透到DC。