日期:2024.05.14 作者:nothing 介紹:本文介紹了 windows
日志分析工具-LogParser
的基礎(chǔ)用法。
前段時(shí)間遇到幾次windows
的應(yīng)急響應(yīng),主要是病毒類事件,且時(shí)間過長(zhǎng),病毒已不再運(yùn)行,無(wú)法提取到實(shí)時(shí)的信息,于是只能從windows
日志中分析入侵痕跡。
windows
日志文件一般比較大,如果人工分析的話,效率太低,且容易忽略細(xì)節(jié),那么高效分析windows
安全日志,提取出我們想要的有用信息,就顯得尤為關(guān)鍵,分析過程中使用到了微軟官方出的LogParser
工具,下面介紹一些基礎(chǔ)使用方法。
系統(tǒng)日志
記錄系統(tǒng)中硬件、軟件和系統(tǒng)問題的信息,用戶可以通過它來檢查錯(cuò)誤發(fā)生的原因或者尋找受到攻擊時(shí)攻擊者留下的痕跡。
日志的默認(rèn)位置為:
C:\Windows\System32\winevt\Logs\System.evtx
應(yīng)用程序日志
記錄程序在運(yùn)行過程中的日志信息。
日志的默認(rèn)位置為
C:\Windows\System32\winevt\Logs\Application.evtx
安全日志
登錄日志、對(duì)象訪問日志、進(jìn)程追蹤日志、特權(quán)使用、賬號(hào)管理、策略變更、系統(tǒng)事件。
日志的默認(rèn)位置為:
C:\Windows\System32\winevt\Logs\Security.evtx
同時(shí)在默認(rèn)路徑下,還包含很多其他的日志,用來記錄機(jī)器運(yùn)行期間一些軟件、服務(wù)等運(yùn)行事件。
在windows
日志中,使用Event ID
來表示發(fā)生事件的類型,任務(wù)類別表示類型概要,下面是一些常見事件的說明:
事件ID | 事件說明 |
---|---|
4624 | 登錄成功 |
4625 | 登錄失敗 |
4634 | 注銷成功 |
4720 | 創(chuàng)建用戶 |
4726 | 刪除用戶 |
4732 | 用戶組屬變更 |
1102 | 安全日志清除 |
104 | 其他日志清除 |
其中登錄成功的Event ID
中,還有一個(gè)LogonType
狀態(tài)屬性,代表了不同的登錄類型。
登錄類型 | 描述 | 說明 |
---|---|---|
2 | 交互式登錄(Interactive) | 用戶在本地進(jìn)行登錄。 |
3 | 網(wǎng)絡(luò)(Network) | 最常見的情況就是連接到共享文件夾或共享打印機(jī)時(shí)。 |
4 | 批處理(Batch) | 通常表明某計(jì)劃任務(wù)啟動(dòng)。 |
5 | 服務(wù)(Service) | 每種服務(wù)都被配置在某個(gè)特定的用戶賬號(hào)下運(yùn)行。 |
7 | 解鎖(Unlock) | 屏保解鎖。 |
8 | 網(wǎng)絡(luò)明文(NetworkCleartext) | 登錄的密碼在網(wǎng)絡(luò)上是通過明文傳輸?shù)模鏔TP。 |
9 | 新憑證(NewCredentials) | 使用帶/Netonly參數(shù)的RUNAS命令運(yùn)行一個(gè)程序。 |
10 | 遠(yuǎn)程交互,(RemoteInteractive) | 通過終端服務(wù)、遠(yuǎn)程桌面或遠(yuǎn)程協(xié)助訪問計(jì)算機(jī)。 |
11 | 緩存交互(CachedInteractive) | 以一個(gè)域用戶登錄而又沒有域控制器可用 |
關(guān)于更多的Event ID
的說明,在微軟官網(wǎng)上有相關(guān)的資料,鏈接如下:
https://learn.microsoft.com/zh-cn/windows-server/identity/ad-ds/plan/appendix-l--events-to-monitor
一般來講,使用系統(tǒng)自帶的事件管理器即可查看日志,打開事件管理器一般有兩種方式:
1、開始>windows
管理工具>事件查看器
2、win r
打開運(yùn)行窗口,輸入eventvwr.msc
即可打開
打開以后是如下界面:
日志的數(shù)量相對(duì)較多,可以使用自帶的篩選功能,對(duì)想要查看的Event ID
進(jìn)行篩選。
例如想要查看下登錄成功的事件,輸入ID 4624
即可查看。
登錄類型為5
,就表明該次登錄為服務(wù)程序進(jìn)行的登錄認(rèn)證,無(wú)用戶交互,一般來講是比較安全的。
如上面的案例,用windwos
自帶的事件查看器進(jìn)行篩選時(shí),無(wú)法精準(zhǔn)地篩選出具體登錄類型的事件,這時(shí)就需要額外的輔助工具來對(duì)日志進(jìn)行篩選輔助分析。
Log Parser
(是微軟公司出品的日志分析工具,它功能強(qiáng)大,使用簡(jiǎn)單,可以分析基于文本的日志文件、XML
文件、CSV
(逗號(hào)分隔符)文件,以及操作系統(tǒng)的事件日志、注冊(cè)表、文件系統(tǒng)、Active Directory
。它可以像使用SQL
語(yǔ)句一樣查詢分析這些數(shù)據(jù),甚至可以把分析結(jié)果以各種圖表的形式展現(xiàn)出來。
下載地址:
https://www.microsoft.com/en-us/download/details.aspx?id=24659
安裝完成后的路徑如下:
C:\Program Files (x86)\Log Parser 2.2
將該路徑添加到環(huán)境變量中。
添加完成后打開powershell
,輸入LogParser.exe
,輸出如下結(jié)果,證明添加成功。
LogParser
基本的查詢語(yǔ)句如下:
LogParser.exe –i:EVT –o:DATAGRID 'SELECT * FROM c:\xx.evtx'
LogParser
的優(yōu)勢(shì)在于,可以采用SQL
語(yǔ)句的形式對(duì)日志內(nèi)容進(jìn)行精確分割查詢,相比于自帶的事件查看器使用XML
格式的語(yǔ)句進(jìn)行精確查詢來說,學(xué)習(xí)難度更低,速度也相對(duì)更快,也可同時(shí)查詢多個(gè)log
。
以下是在應(yīng)急響應(yīng)過程中常用的集中查詢語(yǔ)句。
登錄失敗
在Security
日志中Event ID
為4625
代表身份驗(yàn)證失敗,類型3
代表從網(wǎng)絡(luò)登錄。但Logon Type 3
并不一定是RDP
登錄失敗日志,可能是共享資源或打印機(jī)之類的網(wǎng)絡(luò)登錄,并且一些該類型的日志并不能獲取到源IP
。
LogParser -i:EVT -o:DATAGRID '
SELECT TimeGenerated AS 登錄時(shí)間
, EXTRACT_TOKEN(Strings, 5, '|') AS 用戶名
, EXTRACT_TOKEN(Strings, 13, '|') AS 計(jì)算機(jī)名
, EXTRACT_TOKEN(Strings, 10, '|') AS 登錄類型
, EXTRACT_TOKEN(Strings, 19, '|') AS 源IP
, EXTRACT_TOKEN(Strings, 17, '|') AS 請(qǐng)求進(jìn)程ID
, EXTRACT_TOKEN(Strings, 18, '|') AS 請(qǐng)求進(jìn)程名
FROM Security
WHERE eventid = 4625
AND 登錄類型 LIKE '3'
OR 登錄類型 LIKE '10'
'
登錄成功
在Security
日志中Event ID
為4624
,類型為10 或 7
,其中7
代表會(huì)話重連(鎖屏狀態(tài)下重新登錄)。
LogParser -i:EVT -o:DATAGRID '
SELECT TimeGenerated AS 登錄時(shí)間
, EXTRACT_TOKEN(Strings, 5, '|') AS 用戶名
, EXTRACT_TOKEN(Strings, 11, '|') AS 計(jì)算機(jī)名
, EXTRACT_TOKEN(Strings, 8, '|') AS 登錄類型
, EXTRACT_TOKEN(Strings, 18, '|') AS 登錄源IP
, EXTRACT_TOKEN(Strings, 16, '|') AS 請(qǐng)求進(jìn)程ID
, EXTRACT_TOKEN(Strings, 17, '|') AS 請(qǐng)求進(jìn)程名
FROM Security
WHERE eventid = 4624
AND 用戶名 NOT LIKE '%$'
AND 登錄類型 LIKE '3'
OR 登錄類型 LIKE '10'
'
日志文件名:Microsoft-Windows-PowerShell%4Operational.evtx
注意:針對(duì)程序的操作日志,無(wú)法直接查詢,需要將文件復(fù)制到別處,修改名稱后進(jìn)行查詢。
LogParser.exe -i:evt -o:DATAGRID '
SELECT TimeGenerated AS 時(shí)間, ComputerName AS 計(jì)算機(jī)名, Sid
, EXTRACT_TOKEN(Strings, 2, '|') AS 命令行, EXTRACT_TOKEN(Strings, -1, '|') AS path
FROM your.evtx
WHERE eventid = 4104
'
其中,命令行部分為執(zhí)行的具體命令,path
為執(zhí)行的文件路徑,若直接在命令行中執(zhí)行,則無(wú)文件路徑。
需要注意的是,由于切割部分使用的是管道符'|'
,執(zhí)行的代碼中也可能存在此符號(hào),所以可能會(huì)出現(xiàn)命令行部分復(fù)制出來的代碼不完整的情況,在此情況下,若想獲得完整的powershell
執(zhí)行代碼,修改語(yǔ)句為:
LogParser.exe -i:evt -o:DATAGRID '
SELECT TimeGenerated AS 時(shí)間, ComputerName AS 計(jì)算機(jī)名, Sid
, Strings
FROM your.evtx
WHERE eventid = 4104
'
自行從Strings
中提取第三部分的代碼即可。
LogParser.exe -i:EVT -o:datagrid '
select TimeGenerated as 創(chuàng)建時(shí)間
,extract_token(Strings,0,'|') as 被創(chuàng)建用戶名
,extract_token(Strings,4,'|') as 創(chuàng)建者
from Security where eventid=4720
'
LogParser.exe -i:EVT -o:datagrid '
select TimeGenerated as 刪除時(shí)間
,extract_token(Strings,0,'|') as 被刪除用戶名
,extract_token(Strings,4,'|') as 刪除者
from Security where eventid=4726
'
本文只是簡(jiǎn)單介紹了一些用法,網(wǎng)上還有很多人在應(yīng)急響應(yīng)過程中總結(jié)提煉出來的語(yǔ)句。在真實(shí)應(yīng)急響應(yīng)中,熟練地使用一些工具,可以提高應(yīng)急效率,更快更準(zhǔn)確地定位問題,才能更好地發(fā)現(xiàn)系統(tǒng)防護(hù)中的薄弱點(diǎn)。
參考鏈接:
https://bypass007.github.io/Emergency-Response-Notes/LogAnalysis/%E7%AC%AC1%E7%AF%87%EF%BC%9AWindow%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90.html
https://zgao.top/LogParser%E8%A7%A3%E6%9E%90windows%E7%B3%BB%E7%BB%9F%E6%97%A5%E5%BF%97%E5%B8%B8%E7%94%A8sql%E5%90%88%E9%9B%86/
聯(lián)系客服