系统实训
Windows系統日志簡介
Windows操作系統在其運行的生命周期中會記錄其大量的日志信息,這些日志信息包括:Windows事件日志(Event Log),Windows服務器系統的IIS日志,FTP日志,Exchange Server郵件服務,MS SQL Server數據庫日志等。處理應急事件時,客戶提出需要為其提供溯源,這些日志信息在取證和溯源中扮演著重要的角色。
Windows事件日志文件實際上是以特定的數據結構的方式存儲內容,其中包括有關系統,安全,應用程序的記錄。每個記錄事件的數據結構中包含了9個元素(可以理解成數據庫中的字段):日期/時間、事件類型、用戶、計算機、事件ID、來源、類別、描述、數據等信息。應急響應工程師可以根據日志取證,了解計算機上上發生的具體行為。
查看系統日志方法,Windows系統中自帶了一個叫做事件查看器的工具,它可以用來查看分析所有的Windows系統日志。打開事件查看器方法:開始->運行->輸入eventvwr->回車的方式快速打開該工具。使用該工具可以看到系統日志被分為了兩大類:Windows日志和應用程序和服務日志。早期版本中Windows日志只有,應用程序,安全,系統和Setup,新的版本中增加了設置及轉發事件日志(默認禁用)。
系統內置的三個核心日志文件(System,Security和Application)默認大小均為20480KB(20MB),記錄事件數據超過20MB時,默認系統將優先覆蓋過期的日志記錄。其它應用程序及服務日志默認最大為1024KB,超過最大限制也優先覆蓋過期的日志記錄。
Windows事件日志中共有五種事件類型,所有的事件必須擁有五種事件類型中的一種,且只可以有一種。五種事件類型分為:
1.?????信息(Information)
信息事件指應用程序、驅動程序或服務的成功操作的事件。
2.?????警告(Warning)
警告事件指不是直接的、主要的,但是會導致將來問題發生的問題。例如,當磁盤空間不足或未找到打印機時,都會記錄一個“警告”事件。
3.?????錯誤(Error)
錯誤事件指用戶應該知道的重要的問題。錯誤事件通常指功能和數據的丟失。例如,如果一個服務不能作為系統引導被加載,那么它會產生一個錯誤事件。
4.?????成功審核(Success audit)
成功的審核安全訪問嘗試,主要是指安全性日志,這里記錄著用戶登錄/注銷、對象訪問、特權使用、賬戶管理、策略更改、詳細跟蹤、目錄服務訪問、賬戶登錄等事件,例如所有的成功登錄系統都會被記錄為“ 成功審核”事件。
5.?????失敗審核(Failure audit)
失敗的審核安全登錄嘗試,例如用戶試圖訪問網絡驅動器失敗,則該嘗試會被作為失敗審核事件記錄下來。
事件日志文件存儲位置(Vista/Win7/Win8/Win10/Server2008/Server 2012及之后的版本)
| Windows日志 | 系統 | 包含系統進程,設備磁盤活動等。事件記錄了設備驅動無法正常啟動或停止,硬件失敗,重復IP地址,系統進程的啟動,停止及暫停等行為。 | System.evtx |
| 安全 | 包含安全性相關的事件,如用戶權限變更,登錄及注銷,文件及文件夾訪問,打印等信息。 | Security.evtx | |
| 應用程序 | 包含操作系統安裝的應用程序軟件相關的事件。事件包括了錯誤、警告及任何應用程序需要報告的信息,應用程序開發人員可以決定記錄哪些信息。 | Application.evtx | |
| 應用程序及服務日志 | Microsoft | Microsoft文件夾下包含了200多個微軟內置的事件日志分類,只有部分類型默認啟用記錄功能,如遠程桌面客戶端連接、無線網絡、有線網路、設備安裝等相關日志。 | 詳見日志存儲目錄對應文件 |
| Microsoft Office Alerts | 微軟Office應用程序(包括Word/Excel/PowerPoint等)的各種警告信息,其中包含用戶對文檔操作過程中出現的各種行為,記錄有文件名、路徑等信息。 | OAerts.evtx | |
| Windows PowerShell | Windows自帶的PowerShell應用的日志信息。 | Windows PowerShell.evtx | |
| Internet Explorer | IE瀏覽器應用程序的日志信息,默認未啟用,需要通過組策略進行配置。 | Internet Explorer.evtx |
ReadEventLogA函數
- 2018年12月5日
- 2分鐘閱讀時長
從指定的事件日志中讀取指定數量的條目。該函數可用于按時間順序或反向時間順序讀取日志條目。
句法
C ++復制
BOOL ReadEventLogA(HANDLE hEventLog,DWORD dwReadFlags,DWORD dwRecordOffset,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,DWORD *pnBytesRead,DWORD *pnMinNumberOfBytesNeeded );參數
hEventLog
要讀取的事件日志的句柄。該?OpenEventLog函數返回該句柄。
dwReadFlags
使用以下標志值指示如何讀取日志文件。此參數必須包含以下值之一(標志是互斥的)。
| EVENTLOG_SEEK_READ 0×0002 | 從dwRecordOffset參數中指定的記錄開始讀取。 如果函數無法確定日志文件的大小,則此選項可能無法用于大型日志文件。有關詳細信息,請參閱知識庫文章,177199。 |
| EVENTLOG_SEQUENTIAL_READ 0×0001 | 按順序讀取記錄。 復制 If this is the first read operation, the EVENTLOG_FORWARDS_READ EVENTLOG_BACKWARDS_READ flags determines which record is read first. |
?
您必須指定以下標志之一以指示連續讀取操作的方向(標志是互斥的)。
| EVENTLOG_FORWARDS_READ 0x0004 | 按時間順序(從最舊到最新)讀取日志。 復制 The default. |
| EVENTLOG_BACKWARDS_READ ×0008 | 按相反的時間順序(從最新到最舊)讀取日志。 |
dwRecordOffset
應該開始讀取操作的日志條目的記錄號。除非dwReadFlags包含EVENTLOG_SEEK_READ標志,否則將忽略此參數。
lpBuffer
應用程序分配的緩沖區,它將接收一個或多個EVENTLOGRECORD結構。即使nNumberOfBytesToRead參數為零,此參數也不能為NULL。
此緩沖區的最大大小為0x7ffff字節。
nNumberOfBytesToRead
lpBuffer緩沖區的大小,以字節為單位。此函數將讀取適合緩沖區的任意數量的日志條目;?該函數不會返回部分條目。
pnBytesRead
指向變量的指針,該變量接收函數讀取的字節數。
pnMinNumberOfBytesNeeded
指向接收lpBuffer緩沖區所需大小的變量的指針。此值僅在此函數返回零時有效,?GetLastError返回ERROR_INSUFFICIENT_BUFFER。
回報價值
如果函數成功,則返回值為非零。
如果函數失敗,則返回值為零。要獲取擴展錯誤信息,請調用?GetLastError。
備注
當此函數成功返回時,事件日志中的讀取位置將根據讀取的記錄數進行調整。
注意???此源的已配置文件名也可能是其他源的已配置文件名(多個源可作為單個日志下的子項存在)。因此,此函數可能會返回由多個源記錄的事件。
?
總結
- 上一篇: eclipse部署web项目
- 下一篇: 超好用的Windows管理器工具