官术网_书友最值得收藏!

2.5 日志分析

1.Windows系統(tǒng)

1)日志概述

在Windows系統(tǒng)中,日志文件包括:系統(tǒng)日志、安全性日志及應(yīng)用程序日志,對(duì)于應(yīng)急響應(yīng)工程師來說這三類日志需要熟練掌握,其位置如下。

在Windows 2000 專業(yè)版/Windows XP/Windows Server 2003(注意日志文件的后綴名是evt)系統(tǒng)中:

系統(tǒng)日志的位置為C:\WINDOWS\System32\config\SysEvent.evt;

安全性日志的位置為C:\WINDOWS\System32\config\SecEvent.evt;

應(yīng)用程序日志的位置為C:\WINNT\System32\config\AppEvent.evt。

在Windows Vista/Windows 7/Windows 8/Windows 10/Windows Server 2008及以上版本系統(tǒng)中:

系統(tǒng)日志的位置為%SystemRoot%\System32\Winevt\Logs\System.evtx;

安全性日志的位置為%SystemRoot%\System32\Winevt\Logs\Security.evtx;

應(yīng)用程序日志的位置為%SystemRoot%\System32\Winevt\Logs\Application.evtx。

(1)系統(tǒng)日志。

系統(tǒng)日志主要是指Windows系統(tǒng)中的各個(gè)組件在運(yùn)行中產(chǎn)生的各種事件。這些事件一般可以分為:系統(tǒng)中各種驅(qū)動(dòng)程序在運(yùn)行中出現(xiàn)的重大問題、操作系統(tǒng)的多種組件在運(yùn)行中出現(xiàn)的重大問題及應(yīng)用軟件在運(yùn)行中出現(xiàn)的重大問題等。這些重大問題主要包括重要數(shù)據(jù)的丟失、錯(cuò)誤,以及系統(tǒng)產(chǎn)生的崩潰行為等。事件ID為8033的系統(tǒng)日志詳情如圖2.5.1所示。

img

圖2.5.1 事件ID為8033的系統(tǒng)日志詳情

(2)安全性日志。

安全性日志與系統(tǒng)日志不同,安全性日志主要記錄了各種與安全相關(guān)的事件。構(gòu)成該日志的內(nèi)容主要包括:各種登錄與退出系統(tǒng)的成功或不成功的信息;對(duì)系統(tǒng)中各種重要資源進(jìn)行的各種操作,如對(duì)系統(tǒng)文件進(jìn)行的創(chuàng)建、刪除、更改等操作。事件ID為513的安全性日志詳情如圖2.5.2所示。(注意:由于系統(tǒng)版本不同,部分“安全性”日志也可寫為“安全”日志。)

img

圖2.5.2 事件ID為513的安全性日志詳情

(3)應(yīng)用程序日志。

應(yīng)用程序日志主要記錄各種應(yīng)用程序所產(chǎn)生的各類事件。例如,系統(tǒng)中SQL Server數(shù)據(jù)庫(kù)程序在受到暴力破解攻擊時(shí),日志中會(huì)有相關(guān)記錄,該記錄中包含與對(duì)應(yīng)事件相關(guān)的詳細(xì)信息。事件ID為18456的應(yīng)用程序日志詳情如圖2.5.3所示。

除了上述日志,Windows系統(tǒng)還有其他的日志,在進(jìn)行應(yīng)急響應(yīng)和溯源時(shí)也可能用到。

在Windows 2000專業(yè)版/Windows XP/Windows Server 2003系統(tǒng)中,只有應(yīng)用程序、安全性及系統(tǒng)三類日志,如圖2.5.4所示。

在Windows 7/Windows 8/Windows 10/Windows Server 2008/Windows Server 2012等系統(tǒng)中進(jìn)行應(yīng)急響應(yīng)時(shí),除了會(huì)用到應(yīng)用程序、安全性及系統(tǒng)三類日志,還會(huì)用到其他日志,如Dhcp、Bits-Client等,這些日志存儲(chǔ)在“%SystemRoot%\ System32\Winevt\Logs”目錄下,如圖2.5.5所示。

img

圖2.5.3 事件ID為18456的應(yīng)用程序日志詳情

img

圖2.5.4 應(yīng)用程序、安全性及系統(tǒng)三類日志

img

圖2.5.5 其他日志

還可以在【運(yùn)行】對(duì)話框中輸入【eventvwr】命令,打開【事件查看器】窗口,查看相關(guān)的日志,如圖2.5.6所示。

img

圖2.5.6 【事件查看器】窗口

在應(yīng)急響應(yīng)中還經(jīng)常使用PowerShell日志,圖2.5.7是典型的PowerShell日志詳細(xì)情況。

img

圖2.5.7 典型的PowerShell日志詳細(xì)情況

2)日志常用事件ID

Windows系統(tǒng)中的每個(gè)事件都有其相應(yīng)的事件ID,表2.5.1是應(yīng)急響應(yīng)中常用的事件ID,其中舊版本指Windows 2000 專業(yè)版/Windows XP/Windows Server 2003,新版本指Windows Vista/Windows 7/Windows 8/Windows 10/Windows Server 2008等。

表2.5.1 應(yīng)急響應(yīng)中常用的事件ID

img

成功/失敗登錄事件提供的有用信息之一是用戶/進(jìn)程嘗試登錄(登錄類型),Windows系統(tǒng)將此信息顯示為數(shù)字,表2.5.2是數(shù)字及其對(duì)應(yīng)說明。

表2.5.2 數(shù)字及其對(duì)應(yīng)說明

img

表2.5.3是登錄相關(guān)日志事件ID對(duì)應(yīng)的描述。

表2.5.3 登錄相關(guān)日志事件ID對(duì)應(yīng)的描述

img

表2.5.4是常用啟動(dòng)事件相關(guān)日志事件ID對(duì)應(yīng)的描述。

表2.5.4 常用啟動(dòng)事件相關(guān)日志事件ID對(duì)應(yīng)的描述

img

表2.5.5是日志被清除相關(guān)日志事件ID對(duì)應(yīng)的描述。

表2.5.5 日志被清除相關(guān)日志事件ID對(duì)應(yīng)的描述

img

3)日志分析

日志分析就是在眾多的日志中找出自己需要的日志,一般Windows系統(tǒng)中日志的分析主要有以下幾種方法。

(1)通過內(nèi)置的日志篩選器進(jìn)行分析。

使用日志篩選器可以對(duì)記錄時(shí)間、事件級(jí)別、任務(wù)類別、關(guān)鍵字等信息進(jìn)行篩選,如圖2.5.8所示。

img

圖2.5.8 日志篩選器

(2)通過PowerShell對(duì)日志進(jìn)行分析。

在使用PowerShell進(jìn)行日志分析時(shí),需要有管理員權(quán)限才可以對(duì)日志進(jìn)行操作。

通過PowerShell進(jìn)行查詢最常用的兩個(gè)命令是【Get-EventLog】和【Get-WinEvent】,兩者的區(qū)別是【Get-EventLog】只獲取傳統(tǒng)的事件日志,而【Get-WinEvent】是從傳統(tǒng)的事件日志(如系統(tǒng)日志和應(yīng)用程序日志)和新Windows事件日志技術(shù)生成的事件日志中獲取事件,其還會(huì)獲取Windows事件跟蹤(ETW)生成的日志文件中的事件。注意,【Get-WinEvent】需要Windows Vista、Windows Server 2008或更高版本的Windows系統(tǒng),還需要Microsoft .NET Framework 3.5及以上的版本。總體來說,【Get-WinEvent】功能更強(qiáng)大,但是對(duì)系統(tǒng)和.NET的版本有更多要求。

以下列舉部分實(shí)例,讀者可以根據(jù)語(yǔ)法及相關(guān)幫助文檔編寫更多功能。

使用【Get-EventLog Security-InstanceId 4625】命令,可獲取安全性日志下事件ID為4625(失敗登錄)的所有日志信息,如圖2.5.9所示。

注意,使用【Get-WinEvent】和【Get-EventLog】命令的查詢語(yǔ)句是不同的。使用【Get-WinEvent-FilterHashtable @{LogName='Security';ID='4625'}】命令,也可獲取安全性日志下事件ID為4625的所有日志信息,如圖2.5.10所示。

img

圖2.5.9 日志篩選

img

圖2.5.10 日志篩選

通過設(shè)置起始時(shí)間和終止時(shí)間變量,可查詢指定時(shí)間內(nèi)的事件。先設(shè)置起始時(shí)間變量StartTime和終止時(shí)間變量EndTime,再使用【Get-WinEvent】命令,可查詢這段時(shí)間內(nèi)的系統(tǒng)日志情況,執(zhí)行結(jié)果如圖2.5.11所示。

img

圖2.5.11 執(zhí)行結(jié)果

通過邏輯連接符可對(duì)多種指定日志ID進(jìn)行聯(lián)合查詢。例如,使用【Get-WinEvent-LogName system|Where-Object {$_.ID-eq "12"-or $_.ID-eq "13"}】命令,可對(duì)Windows啟動(dòng)和關(guān)閉日志進(jìn)行查詢,如圖2.5.12所示。

img

圖2.5.12 聯(lián)合查詢

(3)通過相關(guān)的日志工具進(jìn)行分析查詢。以下列舉其中幾個(gè)常用工具。

FullEventLogView:FullEventLogView是一個(gè)輕量級(jí)的日志檢索工具,其是綠色版、免安裝的,檢索速度比Windows系統(tǒng)自帶的檢索工具要快,展示效果更好,如圖2.5.13所示。

img

圖2.5.13 FullEventLogView工具

Event Log Explorer:Event Log Explorer是一個(gè)檢測(cè)系統(tǒng)安全的軟件,可查看、監(jiān)視和分析事件記錄,包括安全性、系統(tǒng)、應(yīng)用程序和其Windows系統(tǒng)事件記錄,如圖2.5.14所示。

img

圖2.5.14 Event Log Explorer工具

Log Parser:Log Parser是微軟公司推出的日志分析工具,其功能強(qiáng)大,使用簡(jiǎn)單,可以分析基于文本的日志文件、XML文件、CSV(逗號(hào)分隔符)文件,以及操作系統(tǒng)的事件日志、注冊(cè)表、文件系統(tǒng)、Active Directory等。其可以像使用 SQL 語(yǔ)句一樣查詢分析數(shù)據(jù),甚至可以把分析結(jié)果以各種圖表的形式展現(xiàn)出來。

查看登錄成功的所有事件:使用【LogParser.exe-i:EVT-o:DATAGRID "SELECT * FROM C:\Security.evtx where EventID=4624"】命令,可查看事件ID為4624,即登錄成功的所有事件,如圖2.5.15所示。

img

圖2.5.15 使用Log Parser工具查看登錄成功的所有事件

指定登錄時(shí)間范圍的事件:使用【LogParser.exe-i:EVT-o:DATAGRID "SELECT * FROM C:\Security.evtx where TimeGenerated>'2018-01-01 23:59:59' and TimeGenerated<'2019-06-01 23:59:59' and EventID=4625"】命令,可查看從2018年1月1日23時(shí)59分59秒到2019年6月1日23時(shí)59分59秒,事件ID為4625,即登錄失敗的所有事件,如圖2.5.16所示。

img

圖2.5.16 使用Log Parser工具查看指定登錄時(shí)間范圍的事件

提取登錄成功用戶的用戶名和IP地址:使用【LogParser.exe-i:EVT-o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN (Message,38,' ') as Loginip FROM c:\Security.evtx where EventID=4624"】命令,可查看事件ID為4624(即登錄成功的用戶)的用戶名和IP信息,如圖2.5.17所示。

img

圖2.5.17 使用Log Parser工具提取登錄成功用戶的用戶名和IP地址

查看系統(tǒng)歷史開關(guān)機(jī)記錄:使用【LogParser.exe-i:EVT-o:DATAGRID "SELECT TimeGenerated,EventID,Message FROM C:\System.evtx where EventID=12 or EventID=13"】命令,可查看系統(tǒng)歷史開關(guān)機(jī)記錄,如圖2.5.18所示。

img

圖2.5.18 使用Log Parser工具查看系統(tǒng)歷史開關(guān)機(jī)記錄

2.Linux系統(tǒng)

1)日志概述

Linux系統(tǒng)中的日志一般存放在目錄“/var/log/”下,具體的日志功能如下。

/var/log/wtmp:記錄登錄進(jìn)入、退出、數(shù)據(jù)交換、關(guān)機(jī)和重啟,即last。

/var/log/cron:記錄與定時(shí)任務(wù)相關(guān)的日志信息。

/var/log/messages:記錄系統(tǒng)啟動(dòng)后的信息和錯(cuò)誤日志。

/var/log/apache2/access.log:記錄Apache的訪問日志。

/var/log/auth.log:記錄系統(tǒng)授權(quán)信息,包括用戶登錄和使用的權(quán)限機(jī)制等。

/var/log/userlog:記錄所有等級(jí)用戶信息的日志。

/var/log/xferlog(vsftpd.log):記錄Linux FTP日志。

/var/log/lastlog:記錄登錄的用戶,可以使用命令lastlog查看。

/var/log/secure:記錄大多數(shù)應(yīng)用輸入的賬號(hào)與密碼,以及登錄成功與否。

/var/log/faillog:記錄登錄系統(tǒng)不成功的賬號(hào)信息。

通過查看相關(guān)的日志文件可以獲取相關(guān)的日志信息。以下列舉常用的日志使用方法。

使用【cat/var/log/cron】命令,可查看任務(wù)計(jì)劃相關(guān)的操作日志,如圖2.5.19所示。

img

圖2.5.19 查看任務(wù)計(jì)劃相關(guān)的操作日志

使用【cat/var/log/messages】命令,可查看整體系統(tǒng)信息,其中也記錄了某個(gè)用戶切換到root權(quán)限的日志,如圖2.5.20所示。

使用【cat/var/log/secure】命令,可查看驗(yàn)證和授權(quán)方面的信息,如sshd會(huì)將所有信息(包括失敗登錄)記錄在這里,如圖2.5.21所示。

img

圖2.5.20 查看整體系統(tǒng)信息

img

圖2.5.21 查看驗(yàn)證和授權(quán)方面的信息

使用【ls-alt/var/spool/mail】命令,可查看郵件相關(guān)日志記錄文件,如圖2.5.22所示。

img

圖2.5.22 查看郵件相關(guān)日志記錄文件

使用【cat/var/spool/mail/root】命令,可發(fā)現(xiàn)針對(duì)80端口的攻擊行為(當(dāng)Web訪問異常時(shí),及時(shí)向當(dāng)前系統(tǒng)配置的郵箱地址發(fā)送報(bào)警郵件),如圖2.5.23所示。

img

圖2.5.23 報(bào)警郵件日志查看

2)日志分析

對(duì)于Linux系統(tǒng)日志的分析主要使用【grep】、【sed】、【sort】和【awk】等命令。常用查詢?nèi)罩久罴肮δ苋缦隆?/p>

【tail-n 10 test.log】命令:查詢最后10行的日志。

【tail-n+10 test.log】命令:查詢10行之后的所有日志。

【head-n 10 test.log】命令:查詢頭10行的日志。

【head-n-10 test.log】命令:查詢除了最后10行的其他所有日志。

在*.log日志文件中統(tǒng)計(jì)獨(dú)立IP地址個(gè)數(shù)的命令如下。

【awk '{print $1}' test.log|sort|uniq|wc-l】

【awk '{print $1}'/access.log|sort|uniq-c|sort-nr|head-10】

查找指定時(shí)間段日志的命令如下。

【sed-n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log】

【grep '2014-12-17 16:17:20' test.log】

定位有多少IP地址在暴力破解主機(jī)root賬號(hào)的命令如下。

【cat/var/log/secure |awk '/Accepted/{print $(NF-3)}'|sort|uniq-c|awk '{print $2"="$1;}'(CentOS)】

查看登錄成功的IP地址的命令如下。

【cat/var/log/auth.log |awk '/Failed/{print $(NF-3)}'|sort|uniq-c|awk '{print $2"="$1;}' ) (ubuntu)】

查看登錄成功日期、用戶名、IP地址的命令如下。

【grep "Accepted "/var/log/secure|awk '{print $1,$2,$3,$9,$11}'】

3.其他日志

除了可對(duì)Windows和Linux系統(tǒng)日志進(jìn)行分析,還可對(duì)Web日志、中間件日志、數(shù)據(jù)庫(kù)日志、FTP日志等進(jìn)行分析。日志分析的方法一般是結(jié)合系統(tǒng)命令及正則表達(dá)式,或者利用相關(guān)成熟的工具進(jìn)行分析,分析的目的是提取相關(guān)特征規(guī)則,對(duì)攻擊者的行為進(jìn)行分析。

需要重點(diǎn)排查的其他日志常見位置如下。

1)IIS日志的位置

%SystemDrive%\inetpub\logs\LogFiles;

%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日志的位置

默認(rèn)在/usr/local/nginx/logs目錄下,access.log代表訪問日志,error.log代表錯(cuò)誤日志。若沒有在默認(rèn)路徑下,則可以到nginx.conf配置文件中查找。

4)Tomcat日志的位置

默認(rèn)在TOMCAT_HOME/logs/目錄下,有catalina.out、catalina.YYYY-MM-DD.log、localhost.YYYY-MM-DD.log、localhost_access_log.YYYY-MM-DD.txt、host-manager.YYYY-MM-DD.log、manager.YYYY-MM-DD.log等幾類日志。

5)Vsftp日志的位置

在默認(rèn)情況下,Vsftp 不單獨(dú)記錄日志,而是統(tǒng)一存放到/var/log/messages中。但是可以通過編輯/etc/vsftp/vsftp.conf配置文件來啟用單獨(dú)的日志。在日志啟用后,可以訪問vsftpd.log和xferlog。

6)WebLogic日志的位置

在默認(rèn)情況下,WebLogic有三種日志,分別是access log、server log和domain log。

access log的位置是$MW_HOME\user_projects\domains\<domain_name>\servers\ <server_name>\logs\access.log。

server log的位置是$MW_HOME\user_projects\domains\<domain_name>\servers\ <server_name>\logs\<server_name>.log。

domain log的位置是$MW_HOME\user_projects\domains\<domain_name>\servers\ <adminserver_name>\logs\<domain_name>.log。

7)數(shù)據(jù)庫(kù)日志

(1)Oracle數(shù)據(jù)庫(kù)查看方法如下。

使用【select * from v$logfile】命令,可查詢?nèi)罩韭窂健T谀J(rèn)情況下,日志文件記錄在$ORACLE/rdbms/log目錄下。使用【select * from v$sql】命令,可查詢之前使用過的SQL。

(2)MySQL數(shù)據(jù)庫(kù)查看方法如下。

使用【show variables like 'log_%'】命令,可查看是否啟用日志,如果日志已開啟,則默認(rèn)路徑為/var/log/mysql/。使用【show variables like 'general'】命令,可查看日志位置。

(3)MsSQL數(shù)據(jù)庫(kù)查看方法如下。

一般無法直接查看,需要登錄到SQL Server Management Studio,在“管理—SQL Server日志”中進(jìn)行查看。

主站蜘蛛池模板: 崇阳县| 沛县| 建阳市| 亳州市| 万州区| 武定县| 教育| 郓城县| 西充县| 平泉县| 南靖县| 常德市| 彭阳县| 吉林省| 铜川市| 轮台县| 法库县| 肃宁县| 迁西县| 常熟市| 二连浩特市| 瑞安市| 双辽市| 梨树县| 巴彦县| 三都| 木里| 沙坪坝区| 当雄县| 梧州市| 隆德县| 聊城市| 江源县| 建瓯市| 贡嘎县| 武川县| 太和县| 大姚县| 岐山县| 安顺市| 绥滨县|