Windows安全日志分析
0x00 引言
在應急響應初步階段,我們會對系統日志、中間件安全日志、惡意文件等進行收集。接下來便是要進一步對這些文件進行分析:對惡意文件逆向、日志文件分析、梳理入侵時間線和入侵路徑等。本文主要對Windows安全日志進行舉例分析。
環境信息:
系統版本:Windows Server 2008 R2 IP地址:192.168.64.140 用戶名:win-92uodoq3eg2\administrator
0x01 基本介紹
Windows的日志文件主要有系統日志、應用程序日志、安全日志這三類,另外,根據不同的系統服務配置可能還會產生其他的日志文件,如Powershell日志、WWW日志、FTP日志、DNS服務器日志等。這些日志文件由Windows的EventLog服務生成并記錄,EventLog服務由Windows服務管理器(%SystemRoot%\system32\services.exe)啟動并管理。
在默認情況下, Windows日志僅僅記錄一些特定日志,因為Windows日志中每種日志的大小默認為20M,超過大小之后會覆蓋最早的日志記錄。如果我們需要記錄詳細的安全日志,則需要通過修改本地策略或者在高級審核策略配置(gpedit.msc)中來啟用其他項的日志記錄功能。
1.1 打開方式
1.1.1 日志文件打開
Windows安全日志存儲在C:\Windows\System32\winevt\Logs,該目錄下存在許多evtx日志文件,windows安全日志文件主要記錄在Security.etvx中,雙擊即可打開該文件查看windows安全日志。(Windows 2000 / Server2003 / Windows XP 安全日志默認位置在C:\WINDOWS\System32\config\SecEvent.Evt)

1.1.2 運行eventvwr
通過WIN+R鍵調出運行界面后,在界面中執行eventvwr,可打開windows日志管理器,選擇安全項即可查看windows系統安全日志。


1.1.3 服務器管理器
右鍵單擊計算機,點擊管理打開服務器管理器,診斷-事件查看器-Windows日志-安全


1.2 日志位置
Windows 2000 / Server2003 / Windows XP :%SystemRoot%\System32\Winevt\Logs\*.evtx Windows Vista / 7 / 10 / Server2008 及以上版本:%SystemRoot%\System32\Config\*.evtx
1.3 日志分類
Windows主要有以下三類日志記錄系統事件:應用程序日志、系統日志和安全日志。每種日志默認大小20M,超過大小后會覆蓋最早的日志記錄
應用程序日志、系統日志,存儲著故障排除信息,對于系統管理員更為有用;安全日志,記錄著事件審計信息,包括用戶驗證(登錄、遠程訪問等)和特定用戶在認證后對系統做了什么,對于應急響應來說,更有幫助,本文主要對安全日志進行分析研究。
系統日志:系統日志包含由Windows系統組件記錄的事件,記錄系統進程和設備驅動程序的活動。由它審核的系統事件包括啟動失敗的設備驅動程序、硬件錯誤、重復的IP地址以及服務啟動、暫停和停止。系統日志也記錄啟動期間要加載的驅動程序或其他系統組件的故障,記錄的事件類型也是預先確定的。
默認位置: %SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志:安全日志記錄各種系統審核和安全處理,包括用戶權限的變化、文件和目錄的訪問、打印以及用戶系統登陸和注銷,如有效或無效的登陸嘗試、與資源使用有關的事件。管理員有按需要指定安全日志中要記錄的事件類型,安全日志只有系統管理員可以訪問。
默認位置: %SystemRoot%\System32\Winevt\Logs\Security.evtx
應用程序日志:應用程序日志包含計算機系統中的用戶程序和商業程序在運行時出現的錯誤活動,它審核的事件包括所有應用程序產生的錯誤以及其他報告的信息,如性能監視審核的事件或一般程序事件。記錄事件的種類大致有:硬盤使用情況、數據庫文件的文件錯誤、設備驅動程序加載失敗、用戶登錄系統失敗計數等。
默認位置: %SystemRoot%\System32\Winevt\Logs\Application.evtx
其他日志
Windows遠程管理日志:Windows遠程管理(WinRM)日志記錄了Windows遠程管理服務的所有操作
Microsoft-Windows-WinRM/Operational.evtx Microsoft-Windows-WinRM/Analytic.etl Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/perational.evtx Microsoft-Windows-TerminalServices-RemoteConnectionManager/perational.evtx Microsoft-Windows-TerminalServices-LocalSessio
PowerShell日志:在執行任何PowerShell命令或腳本時,無論是本地還是通過遠程處理,Windows都會將事件寫入以下三個日志文件:
Windows PowerShell.evtx Microsoft-Windows-PowerShell/Operational.evtx Microsoft-Windows-PowerShell/Analytic.etl
1.4 結構組成
1.4.1 組成
每條安全日志由以下結構組成:


在事件管理器 “查看”菜單上,單擊“添加/刪除列”。可顯示或隱藏事件屬性。

1.4.2 屬性
下表列出常見的事件屬性。

0x02 登錄事件分析
2.1 登錄類型
當我們分析用戶登錄記錄的時候就會發現,在Windows系統的安全日志中,有一個“登錄類型”的說明。其實這個登陸類型就是記錄了用戶登錄到Windows系統的方式,以下簡單介紹幾種常見的:

2.2.1 交互式登錄(2)
如下圖 為Administrator用戶 通過鍵盤輸入密碼正常登錄到windows的日志,登錄類型為 2

一般登錄的進程名為
C:\Windows\System32\winlogon.exe

2.1.2 網絡連接 (3)
這里使用IPC連接方式
使用192.168.64.1 IPC連接 192.168.64.140
net use \\192.168.64.140\ipc$ "1" /user:"administrator"


從安全日志可看到源IP,登錄用戶等信息
2.1.3服務啟動(5)
以下是一個服務啟動后的日志,登錄類型為 5

服務啟動進程名為
C:\Windows\System32\services.exe

2.1.4 解鎖(7)
鎖屏后嘗試解鎖


2.1.5 遠程桌面連接(10)
通過Win 10(192.168.64.1)使用safefox賬戶對Win 2008進行遠程桌面連接(192.168.64.140)


2.2 子狀態碼
4625登錄失敗日志會存在子狀態碼的屬性,通過改屬性,我們可以對登錄失敗原因進行分析

例如下圖中,通過子狀態碼 0xc000006a 可以得知,登錄失敗的具體原因是用戶名是正確的,但密碼是錯誤的。

0x03 事件ID分析
事件ID是Windows日志的基本屬性之一,通過事件ID可以分析事件類型,以下是常見的幾種事件ID

其中需要重點關注的有4624,4625,4720,4726,4700,1102等。
0x04 場景日志分析
4.1 系統正常啟動
開機時,常常會產生大量的安全日志:

其中,【事件ID 4608】表示Windows正在啟動。之后伴隨著一條特殊的登陸成功記錄,為什么說特殊呢?因為這一條【事件ID 4624】登陸成功記錄中的登陸類型為:0

之后便是許多登陸類型為5的登陸成功記錄。

這個很好理解,上面說到登陸類型5,代表是服務賬戶登陸,而我們的Winows系統啟動時,就會有許多服務啟動,因此會有許多服務賬戶登陸記錄。然后是啟動防火墻驅動、啟動防火墻等其他系統事件。
當Windows系統初始化完成后,就到我們的登陸界面了。當我們通過登陸界面登陸時,會產生4條記錄如下:

【事件ID 4776】計算機試圖驗證帳戶的憑據。記錄了登陸用戶名、來源機器名。
【事件ID 4648】試圖使用顯式憑據登錄。同樣記錄了登陸用戶名、來源機器名、來源地址。進程名為:C:\Windows\System32\winlogon.exe
【事件ID 4624】登陸成功。登陸類型2,也就是在本地鍵盤上進行的登錄。
【事件ID 4672】為新登錄分配了特殊權限。記錄了登陸用戶名、登陸用戶權限。
其中,4684表示我們是通過登陸界面登陸的。而其他三條,是正常使用賬號密碼進行登陸都會產生的。也就是說,登錄一次產生3條日志:驗證憑據、登陸成功、分配權限。
總結:4608啟動-4624(0)首次-4624(5)服務啟動-4624(5)-4624(5)-4776登錄-4648-4624-4672
4.2 賬戶管理
在安全日志4720中可以查看攻擊者創建的用戶,即使是隱藏用戶都可以查看到。4726則是可以查看到被刪除的用戶。該事件日志中還可以查看該任務的發起者。
4.2.1 創建新賬戶
創建普通賬戶xiansec

創建新賬戶會有以下日志生成,其中4720創建用戶帳戶是創建新賬戶產生的日志
4728 已向啟用了安全性的全局組中添加某個成員。
4720 已創建用戶帳戶。
4722 已啟用用戶帳戶。
4738 已更改用戶帳戶。
4732 已向啟用了安全性的本地組中添加某個成員。
通過4720日志可以查看創建新賬戶的發起人信息

4.2.2 刪除賬戶
刪除普通賬戶xiansec

刪除賬戶會有以下日志生成,其中4726日志是刪除賬戶產生的日志
4733 已從啟用了安全性的本地組中刪除某個成員。
4729 已從啟用了安全性的全局組中刪除某個成員。
4726 已刪除用戶帳戶。
通過4726日志可以查看刪除賬戶的發起人信息

4.3 RDP爆破
4.3.1 RDP正常成功登錄

連接成功


查看安全日志:
和4.1 系統正常啟動一樣有4條日志信息,只有登陸類型不一樣,為10

【事件ID 4776】計算機試圖驗證帳戶的憑據。記錄了登陸用戶名、來源機器名。 【事件ID 4648】試圖使用顯式憑據登錄。同樣記錄了登陸用戶名、來源機器名、來源地址。 【事件ID 4624】登陸成功。登陸類型10,遠程桌面登錄。 【事件ID 4672】為新登錄分配了特殊權限。記錄了登陸用戶名、登陸用戶權限。
4.3.2 RDP正常失敗登錄
故意輸錯密碼


查看日志
只有一條審核失敗日志4625

4.3.3 RDP爆破登錄
使用超級弱口令檢查工具V1.0 Beta28進行爆破 這里故意將線程調低 方便日志分析

爆破成功

使用字典共15條密碼,正確密碼在最后一條,爆破15次,最后一次成功,完成4個日志動作 4624登錄-4672-4776-4648
4.4 IPC連接
執行命令如下:
net use \\192.168.64.140 /u:admin 123 #密碼錯誤 net use \\192.168.64.140 /u:admin 12 #密碼錯誤 net use \\192.168.64.140 /u:admin 1 #密碼正確

分析日志

兩次4625 審核失敗日志 4624(3)登錄成功 記錄了來源IP,來源主機名,登陸的用戶名等信息。
4.5 SMB爆破
使用超級弱口令檢查工具V1.0 Beta28模擬進行爆破

分析日志

存在大量4625的登錄失敗日志 且登錄類型為3,登錄進程:為NtLmSsp

登錄成功會產生一條登錄類型為3的4624登錄成功日志,同時會有4672,4676事件ID日志生成
4.6 日志清除
在windows中,若運維人員開啟了記錄所有安全日志項,那么攻擊者在拿到該服務器權限后 的所有操作都可以在該安全日志中被記錄到。所以清空該Security日志肯定是一個善后的必然選擇。
打開windows日志 清除日志


清除日志會生成一條事件ID為1102 日志清除的日志

日志詳情

此條日志會記錄清除日志操作的賬戶名
0x05 總結
本文主要對Windows安全日志進行了分析與研究,從日志的分類、登錄事件分析以及場景日志分析等方面進行了研究。總的來說,windows安全日志對于應急人員是重要且基礎的分析項,對其進行深入學習研究有助于應急排查工作。