日志分析
Windows
windows中,日志檔案包括:系統日志、安全性日志及應用程式日志,對于應急響應工程師來說這三類日志需要熟練掌握。
windows XP/windows server 2003,日志位置如下:
系統日志:
C:\Windows\System32\config\SysEvent.evt
安全性日志:
C:\Windows\System32\config\SecEvent.evt
應用程式日志:
C:\Windows\System32\config\AppEvnet.evt
windows vista/windows 7/windows8/windows10/Windows server2008之後,日志位置:
系統日志為
C:\Windows\System32\winevt\Logs\System.evtx
安全性日志為
C:\Windows\System32\winevt\Logs\Security.evtx
應用程式日志為
C:\Windows\System32\winevt\Logs\Application.evtx
或者打開”運作“,輸入 eventvwr.msc
系統日志
系統日志指windows系統中的各個元件在運作中産生的各種事件,這些事件一般可以分為:系統中各種驅動程式在運作中出現的重大問題、作業系統的多種元件在運作中出現重大問題及應用軟體在運作中出現的重大問題等,這些重大問題主要包括重要資料的丢失、錯誤,以及系統産生的崩潰行為等
安全性日志
安全性日志與系統日志不同,安全性日志主要記錄了各種與安全相關的事件。構成該日志的内容主要包括:各種登入與退出系統的成功或不成功的資訊;對系統中各種重要資源進行的各種操作,如對系統檔案進行建立、删除、更改等操作
應用程式日志
應用程式日志主要記錄各種應用程式産生的各類事件,例如系統中的SQL server資料庫程式在受到暴力破解攻擊時,日志會有相關記錄,該記錄中包含對應事件相關的詳細資訊
其他日志
在應急響應中經常也會用到 PowerShell 日志
日志分析
日志分析就是在衆多日志中找出自己需要的日志
(1)通過内置的日志篩選器進行分析:使用日志篩選器可以對記錄時間、事件級别、任務類别、關鍵字等資訊進行篩選
(2)使用 Powershell 對日志進行分析
在使用powershell進行日志分析時,需要管理者權限,常用的指令:
- Get-EventLog:隻擷取傳統事件日志
- Get-WinEvent:從傳統事件日志和新windows 事件日志技術生成的事件日志中擷取事件 ,還會擷取windows 事件跟蹤(ETW)生成的日志檔案中的事件,需要windows vista/windows server2008及更高版本的windows系統,還需要 .NET Framework 3.5 及以上版本
例如擷取安全性日志下事件ID為4624(登入成功)的所有日志資訊:
get-eventlog security -instanceid 4624
• 例如:
get-winevent -filterhashtable @{logname='security';id='4624'}
linux
linux系統中日志一般存放在目錄 /var/log/ 下,具體功能如下:
- /var/log/wtmp:記錄登入進入、退出、資料交換、關機和重新開機,即last,是一個二進制檔案,可以使用last檢視
- /var/log/cron:記錄與定時任務相關的日志資訊
- /var/log/messages:記錄系統啟動後的資訊和錯誤日志,cat /var/log/messages
- /var/log/apache2/access.log:記錄Apache的通路日志
- /var/log/auth.log:記錄系統授權資訊,包括使用者登入和使用的權限機制等
- /var/log/userlog: 記錄所有等級使用者資訊的日志
- /var/log/xferlog(vsftpd.log):記錄linux FTP的日志
- /var/log/lastlog: 記錄登入的使用者,可以使用指令lastlog檢視,
- /var/log/secure : 記錄大多數應用輸入的賬戶和密碼,以及登入成功與否
- /var/log/faillog: 記錄登入系統不成功的賬号資訊
- ls -alt /var/spool/mail : 檢視郵件相關記錄檔案
- cat /var/spool/mail/root :可發現對80端口的攻擊行為(當web通路異常時,及時向目前系統配置的郵箱位址發送報警郵件)
對linux系統日志分析主要使用 grep sed sort awk 等指令
檢視最後10行日志 :
tail -n 10 test.log
檢視10之後的所有日志
tail -n +10 test.log
查詢頭10行的日志
head -n 10 test.log
查詢除了最後10條的所有日志
head -n -10 test.log
其他日志
1、IIS日志的位置
%SystemDrive%\inetpub\logs\LogsFiles
%SystemRoot%\System32\LogFiles\W3SVC1
%SystemDrive%\inetpub\logs\LogFiles\W3SVC1
%SystemDrive%\Windows\System32\LogFiles\HTTPERR
2、Apache日志的位置
/var/log/httpd/access.log
/var/log/apache/access.log
/var/log/apache2/access.log
/var/log/httpd-access.log
3、Nginx日志位置
預設在 /usr/local/nginx/logs 目錄下,accessl.log 代表通路日志,error.log 代表錯誤日志,若沒有在預設路徑下,則可以到 nginx.conf 配置檔案中查找
4、Tomcat日志的位置
預設在 TOMCAT_HOME/logs/目錄下,有 catalina.out、catalina.YYYY-MM-DD.log 、 localhost.YYYY-MM-DD.log、 localhost_access_log.YYYY-MM-DD.txt、hostmanager.YYYY-MM-DD.log、manager.YYYY-MM-DD.log 等幾類日志
5、Weblogic日志的位置
在預設情況下,WebLogic 有三種日志,分别是 access log 、 server log 和 domain log
access log 的位置是
$MW_HOME\user_projects\domains\<domain_name>\server\<server_name>\logs
\access.log
server log 的位置是
$MW_HOME\user_projects\domains\<domain_name>\server\<server_name>\logs
\<server_name>.log
domain log 的位置是
$MW_HOME\user_projects\domains\<domain_name>\server\<adminserver_name
>\logs\<domain_name>.log
6、資料庫日志
Oracle資料庫檢視方法如下:使用 select * from v$logfile 指令,可查詢日志路徑,在預設情況下,日志檔案記錄在 $ORACLE/rdbms/log 。 使用 select * from v$sql 指令,查詢之前用過的SQL
MySQL 資料庫檢視方法如下:使用 show variables like '%log_%' 指令,可檢視是否啟用日志,如果日志已開啟,則預設路徑為 /var/log/mysql ,使用 show variables like '%general%' 指令,可檢視日志位置
MsSQL 資料庫檢視方法如下:一般無法直接檢視,需要登入到 SQL Server Management Studio ,在 “管理-SQL Server 日志” 中進行檢視