版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第12章電子數(shù)據(jù)取證綜合案例分析12.1案情簡(jiǎn)介12.2案件的證據(jù)固定12.3數(shù)據(jù)分析過程12.4分析漏洞原因12.5調(diào)查結(jié)果與評(píng)價(jià)
12.1案情簡(jiǎn)介
12.1.1主要案情
2015年6月9日,P2P金融網(wǎng)站的網(wǎng)站管理人員接到用戶投訴,稱其賬戶中的資金不翼而飛。管理員開始誤以為是系統(tǒng)錯(cuò)誤,經(jīng)嘗試排查后未發(fā)現(xiàn)明顯異常,在排查過程中又接到多名用戶投訴,同樣聲稱其賬戶中的資金不知去向。管理員此刻才意識(shí)到系統(tǒng)可能被黑客入侵,于是立即停止運(yùn)行服務(wù)器中的Web服務(wù)和數(shù)據(jù)庫服務(wù),向警方報(bào)案以確定攻擊者、攻擊方法、攻擊來源、攻擊時(shí)間等。
12.1.2取證要求
委托方提取委托要求如下:
(1)對(duì)被攻擊服務(wù)器中的網(wǎng)站、數(shù)據(jù)庫、日志等涉案相關(guān)數(shù)據(jù)進(jìn)行證據(jù)固定。
(2)對(duì)上述證據(jù)固定結(jié)果進(jìn)行分析,提取攻擊者IP、攻擊時(shí)間、攻擊方法。
(3)提取攻擊者使用的銀行卡、身份證等信息并分析攻擊者轉(zhuǎn)移資金的方法。
(4)對(duì)攻擊者的攻擊行為進(jìn)行分析,找出攻擊者使用的漏洞,并分析漏洞形成原因。
12.1.3主要難點(diǎn)問題
近年來,隨著司法機(jī)關(guān)對(duì)黑客類案件打擊力度的不斷增強(qiáng),惡意的網(wǎng)站攻擊者對(duì)打擊手段也有所了解,具有了一定的反偵察意識(shí)。黑客在作案時(shí)經(jīng)常使用代理服務(wù)器進(jìn)行過渡,以隱藏自己的真實(shí)IP地址。同時(shí),在進(jìn)行這類金融類犯罪時(shí),會(huì)有一個(gè)長期潛伏和準(zhǔn)備的過程,盡可能地隱藏自己在被入侵系統(tǒng)中的存在感,減少對(duì)系統(tǒng)環(huán)境的破壞或修改,從而避免引起系統(tǒng)管理員的察覺。這種作案方式往往會(huì)導(dǎo)致更大的損失,與以破壞系統(tǒng)為目的的入侵類案件的手法有明顯區(qū)別。
12.2案件的證據(jù)固定
根據(jù)委托人的要求、案件類型及與委托方詳細(xì)的溝通后,初步達(dá)成以下取證與分析步驟:
(1)了解被入侵服務(wù)器的相關(guān)參數(shù)及運(yùn)行狀態(tài)。
(2)根據(jù)服務(wù)器的具體狀況選擇合適的證據(jù)固定工具,制訂證據(jù)固定計(jì)劃。
(3)根據(jù)證據(jù)固定計(jì)劃對(duì)被入侵服務(wù)器中所有涉案數(shù)據(jù)進(jìn)行證據(jù)固定操作。
(4)對(duì)證據(jù)固定結(jié)果進(jìn)行分析,提取入侵時(shí)間、地點(diǎn)、IP、工具、方法等相關(guān)信息。
(5)出具應(yīng)急響應(yīng)報(bào)告、計(jì)算機(jī)司法鑒定報(bào)告,對(duì)可能存在的系統(tǒng)漏洞提供合理修補(bǔ)建議。
12.2.1了解被入侵服務(wù)器的相關(guān)參數(shù)及運(yùn)行狀態(tài)
在正式取證之前,需要對(duì)目標(biāo)服務(wù)器進(jìn)行一個(gè)大概了解,并根據(jù)目標(biāo)服務(wù)器的情況制訂證據(jù)固定計(jì)劃。對(duì)被入侵服務(wù)器情況介紹如下:
(1)被入侵服務(wù)器屬于阿里云服務(wù)器,委托方提供了該服務(wù)器的IP地址、連接用戶名及密碼。
(2)被入侵服務(wù)器操作系統(tǒng)是Linux,可直接使用SSH客戶端遠(yuǎn)程登錄。
(3)被入侵服務(wù)器Web服務(wù)是Apache,使用的編程語言為PHP。
(4)被入侵服務(wù)器后端數(shù)據(jù)庫是MySQL。
12.2.2制訂證據(jù)固定計(jì)劃
對(duì)服務(wù)器的遠(yuǎn)程證據(jù)固定大致包括以下3個(gè)步驟:
(1)收集被入侵服務(wù)器的系統(tǒng)信息,包括進(jìn)程、端口、歷史命令執(zhí)行記錄、系統(tǒng)日志、磁盤、內(nèi)存等信息。
(2)提取被入侵服務(wù)器Web應(yīng)用配置和相關(guān)數(shù)據(jù)。
(3)提取被入侵服務(wù)器數(shù)據(jù)庫配置和相關(guān)數(shù)據(jù)。
12.2.3選擇證據(jù)固定工具
本案涉及Linux服務(wù)器的遠(yuǎn)程數(shù)據(jù)固定,選擇的工具包括屏幕錄像工具、遠(yuǎn)程SSH連接工具、遠(yuǎn)程文件下載工具、服務(wù)器系統(tǒng)信息提取工具等。
選擇使用系統(tǒng)提供的工具來完成對(duì)Linux操作系統(tǒng)基本信息、進(jìn)程、網(wǎng)絡(luò)、端口等信息的提取,包括登錄日志提取工具last、網(wǎng)絡(luò)配置管理工具ifconfig、網(wǎng)絡(luò)數(shù)據(jù)抓包工具tcpdump、網(wǎng)絡(luò)端口信息工具netstat等。此外,用到的工具還包括以下幾種:
(1)屏幕錄像軟件FSCapture。屏幕錄像的好處是交互性更好,后續(xù)屏幕展示的清晰度要遠(yuǎn)高于數(shù)碼攝像機(jī)。
(2)遠(yuǎn)程連接工具或軟件PuTTY。PuTTY是Windows桌面環(huán)境中連接類Linux終端服務(wù)的首選工具之一。
(3)遠(yuǎn)程文件下載工具WinScp。使用WinScp可通過SSH協(xié)議直接操作遠(yuǎn)程Linux服務(wù)器中的文件,進(jìn)行上傳、下載、增加、刪除等操作,使用方便、直觀,易操作。
(4)
MySQL數(shù)據(jù)庫的固定工具M(jìn)ySqldump。MySqldump是MySQL數(shù)據(jù)庫系統(tǒng)中自帶的數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)工具。
12.2.4連接到遠(yuǎn)程服務(wù)器
此處選擇的連接工具是PuTTY,從上下載程序安裝包,安裝包MD5值為983d8c71dd6eeed78012112b85734318。
運(yùn)行安裝完成的PuTTY工具,彈出的配置對(duì)話框如圖12-1所示。
圖12-1配置對(duì)話框
設(shè)置遠(yuǎn)程服務(wù)器的IP地址,單擊“Open”按鈕進(jìn)入登錄界面,輸入用戶名及對(duì)應(yīng)的密碼,即可進(jìn)入系統(tǒng)。
啟動(dòng)屏幕錄像軟件FSCapture,勾選“FullScreen”單選按鈕,再單擊“Record”按鈕,如圖12-2所示。
圖12-2屏幕錄像軟件FSCapture
遠(yuǎn)程固定正式開始前需進(jìn)行時(shí)間校準(zhǔn),啟動(dòng)瀏覽器,訪問網(wǎng)絡(luò)授時(shí)網(wǎng)站http://time.,該網(wǎng)站中會(huì)動(dòng)態(tài)顯示當(dāng)前北京標(biāo)準(zhǔn)時(shí)間,如圖12-3所示。
圖12-3網(wǎng)絡(luò)授時(shí)網(wǎng)站
12.2.5固定所有用戶歷史執(zhí)行記錄
Linux操作系統(tǒng)有一個(gè)特性,即默認(rèn)會(huì)將用戶在終端環(huán)境下執(zhí)行過的命令記錄全部存儲(chǔ)在該用戶對(duì)應(yīng)的用戶數(shù)據(jù)目錄的特定文件中,如.bash_history文件。該文件是一個(gè)純文本文件,可使用文本編輯器工具打開、查找、分析。文件名的第1個(gè)字符“.”表明這是一個(gè)默認(rèn)被系統(tǒng)隱藏的特殊文件,使用ls命令列出目錄中所有文件時(shí),默認(rèn)不會(huì)列出使用“.”開頭的文件,除非使用的是“-a”選項(xiàng)(該選項(xiàng)的作用是列出指定目錄中所有文件及目錄,包括默認(rèn)不顯示的系統(tǒng)文件、特殊文件)。
.bash_history可以通過$HISTSIZE環(huán)境變量設(shè)置保存記錄數(shù)的大小,根據(jù)Linux發(fā)行版的不同其大小設(shè)置不一樣,其中CentOS的默認(rèn)設(shè)置是1000條記錄,所以在超過1000條記錄時(shí)就會(huì)發(fā)生記錄被覆蓋的情況。通常情況下,調(diào)查人員在執(zhí)行證據(jù)固定過程中會(huì)優(yōu)先固定那些易失性數(shù)據(jù)及可能存在被修改可能的數(shù)據(jù)。
遠(yuǎn)程服務(wù)器一直處于運(yùn)行狀態(tài),即系統(tǒng)處于不斷變化的過程中,而且對(duì)證據(jù)的固定過程本身也會(huì)引起服務(wù)器的狀態(tài)變化和內(nèi)存數(shù)據(jù)的修改。RFC3227中列出了各種動(dòng)態(tài)信息的級(jí)別以及獲取的優(yōu)先級(jí)。
在本案例中,就應(yīng)該在減少對(duì)原始數(shù)據(jù)破壞的情況下,優(yōu)先獲取服務(wù)器中可能會(huì)變化的動(dòng)態(tài)數(shù)據(jù),同時(shí)做好數(shù)據(jù)的完整性校驗(yàn),調(diào)查人員在現(xiàn)場(chǎng)的所有操作要經(jīng)得起后續(xù)的證據(jù)審核。
12.2.6固定系統(tǒng)時(shí)間
對(duì)象系統(tǒng)的時(shí)間可能會(huì)與當(dāng)前位置的標(biāo)準(zhǔn)時(shí)間存在一定誤差,尤其是那些比較老的系統(tǒng)或者管理員沒有開啟時(shí)間同步功能的系統(tǒng),幾分、幾秒的誤差就可能會(huì)給后續(xù)的調(diào)查分析帶來很多麻煩,所以調(diào)查人員在開始就應(yīng)該注意記錄和校準(zhǔn)該誤差。
在固定開始時(shí)記錄固定開始時(shí)間,在固定結(jié)束時(shí)記錄固定結(jié)束時(shí)間是一個(gè)好習(xí)慣。本書作者在實(shí)際案例中一般都會(huì)在固定開始時(shí)執(zhí)行語句“date>date_start.log”,將當(dāng)前系統(tǒng)時(shí)間直接保存到date_start.log文件中;在固定結(jié)束后再執(zhí)行語句“date>date_end.log”,將固定結(jié)束時(shí)間保存至data_end.log文件中。這樣在后期撰寫證據(jù)固定與分析報(bào)告時(shí)會(huì)直接引用這兩個(gè)時(shí)間值,以免后面記憶混亂。
在固定系統(tǒng)時(shí)間的同時(shí)需要記錄當(dāng)前時(shí)區(qū)的標(biāo)準(zhǔn)時(shí)間與服務(wù)器時(shí)間的誤差并記錄在文件或某個(gè)日志中。提取當(dāng)前時(shí)區(qū)標(biāo)準(zhǔn)時(shí)間一般有兩個(gè)辦法:一是直接訪問授時(shí)服務(wù)器域名,如果沒有條件直接訪問授時(shí)服務(wù)器,則可以通過手機(jī)撥打時(shí)間查詢電話號(hào)碼12117,通過語音方式獲取當(dāng)前時(shí)區(qū)比較精準(zhǔn)的時(shí)間。將獲取結(jié)果與服務(wù)器時(shí)間進(jìn)行比較并記錄下兩者之間的誤差值。
12.2.7固定進(jìn)程信息
系統(tǒng)進(jìn)程信息屬于易失信息的一種,在黑客入侵類案件的分析中尤其重要。Linux操作系統(tǒng)中提取進(jìn)程信息可通過ps命令完成。執(zhí)行指令“psaux>ps.log”,可將當(dāng)前系統(tǒng)啟動(dòng)的進(jìn)程列表信息保存到ps.log文件中,如圖12-4所示。
圖12-4當(dāng)前系統(tǒng)啟動(dòng)的進(jìn)程列表信息
12.2.8固定網(wǎng)絡(luò)連接信息
網(wǎng)絡(luò)連接信息屬于易失性信息的一種,對(duì)于黑客入侵類案件同樣重要。在Linux操作系統(tǒng)中可通過內(nèi)置命令netstat提取網(wǎng)絡(luò)連接信息,需要注意的是,在Centos7.0后的版本中netstat被ss命令所取代,不過兩者使用的參數(shù)是類似的。執(zhí)行指令“netstat-apn>netstat.log”,可將當(dāng)前系統(tǒng)中進(jìn)程正在連接或監(jiān)聽的網(wǎng)絡(luò)端口列表保存到netstat.log文件中,如圖12-5所示。
圖12-5當(dāng)前系統(tǒng)中進(jìn)程正在連接或監(jiān)聽的網(wǎng)絡(luò)端口列表
12.2.9固定磁盤信息
提取目標(biāo)系統(tǒng)中的磁盤信息可幫助調(diào)查人員快速了解目標(biāo)系統(tǒng)中的數(shù)據(jù)量,同時(shí)對(duì)系統(tǒng)數(shù)據(jù)的大致分布做出分析工作量預(yù)估和數(shù)據(jù)分布的初步推測(cè),哪個(gè)分區(qū)保存的是應(yīng)用數(shù)據(jù)、哪個(gè)分區(qū)保存的是數(shù)據(jù)庫、哪個(gè)分區(qū)保存的是日志等。在Linux操作系統(tǒng)中可通過執(zhí)行指令“df-h>df.log”提取系統(tǒng)中可使用的分區(qū)信息,如圖12-6所示。
圖12-6系統(tǒng)中可使用的分區(qū)信息
執(zhí)行指令“fdisk-l>fdisk.log”可提取當(dāng)前系統(tǒng)中的磁盤、各分區(qū)大小、開始扇區(qū)、結(jié)束扇區(qū)等信息,如圖12-7所示。
圖12-7當(dāng)前系統(tǒng)中的磁盤、各分區(qū)大小、開始扇區(qū)、結(jié)束扇區(qū)等信息
執(zhí)行指令“mount>mount.log”可提取系統(tǒng)中文件系統(tǒng)加載點(diǎn)信息,如圖12-8所示。
圖12-8系統(tǒng)中文件系統(tǒng)加載點(diǎn)信息
12.2.10固定網(wǎng)卡信息
在Linux操作系統(tǒng)中可通過執(zhí)行指令“ifconfig>ifconfig.log”提取目標(biāo)系統(tǒng)的網(wǎng)卡、IP地址綁定等信息。
在一些案例中存在一臺(tái)服務(wù)器綁定多個(gè)IP地址的情況,使用多個(gè)IP地址主要用于分流或防止某個(gè)IP出現(xiàn)故障導(dǎo)致服務(wù)器無法提供正常服務(wù)的現(xiàn)象的產(chǎn)生,而備用IP地址可繼續(xù)提供服務(wù)。多個(gè)IP也可以將不同類型的數(shù)據(jù)發(fā)送到不同的通道,達(dá)到有效區(qū)別不同類型數(shù)據(jù)、提高網(wǎng)絡(luò)性能的目的。
12.2.11固定用戶信息
Linux操作系統(tǒng)中用戶信息、登錄密碼相關(guān)的數(shù)據(jù)保存在?/etc/passwd和/etc/shadow文件中,這兩個(gè)文件都是文本文件。其中,shadow文件內(nèi)容結(jié)構(gòu)如圖12-9所示。
圖12-9
shadow文件內(nèi)容結(jié)構(gòu)
該文件中第1列保存用戶ID,第2列是加密后的密碼。關(guān)于第2列,如果:
(1)該列留空,即“::”,則表示該用戶沒有密碼。
(2)該列為“!”或“*”,則表示該用戶無法使用密碼登錄,但是其他的登錄方式是不受限制的,如SSH公鑰認(rèn)證方式、su方式。
(3)該列以“!”或“!!”開頭,則表示該用戶被鎖定。
(4)該列為“!!”,即“:!!:”,則表示該用戶從來沒有設(shè)置過密碼。
(5)格式為“$id$salt$hashed”,則表示該用戶設(shè)置了登錄密碼。其中,“$id$”的id表示密碼的加密算法,“$1$”表示使用MD5算法,“$2a$”表示使用Blowfish算法,“$2y$”是另一算法長度的Blowfish,“$5$”表示SHA-256算法,而“$6$”表示SHA-512算法。
12.2.12固定用戶登錄日志信息
用戶登錄日志在黑客類案件中有著舉足輕重的作用。Linux操作系統(tǒng)對(duì)于用戶“成功”“失敗”登錄狀態(tài)的日志分別使用了不同的文件來保存。成功登錄日志記錄保存在/var/log/wtmp文件中,該文件屬于二進(jìn)制結(jié)構(gòu)特殊文件,文件頭及部分內(nèi)容如圖12-10所示。
圖12-10
wtmp文件的文件頭及部分內(nèi)容
wtmp文件中的內(nèi)容可通過執(zhí)行l(wèi)ast指令查看,在目標(biāo)系統(tǒng)中執(zhí)行“l(fā)ast>last.log”,可以將系統(tǒng)中用戶成功登錄的日志保存到last.log文件中,部分登錄記錄如圖12-11所示。
圖12-11部分登錄記錄
12.2.13固定Apache應(yīng)用數(shù)據(jù)
在Linux操作系統(tǒng)中,Apache是常用的Web服務(wù)器之一,經(jīng)常以httpd服務(wù)的形式運(yùn)行。通過“servicehttpdstart”或“servicehttpdstop”命令可以啟動(dòng)或關(guān)閉服務(wù)。
默認(rèn)情況下Apache的安裝路徑為?/usr/,Apache服務(wù)配置文件默認(rèn)保存在?/etc/httpd/conf目錄中。配置文件中的DocumentRoot參數(shù)定義了Web目錄的根路徑,如圖12-12所示。
圖12-12目標(biāo)網(wǎng)站的日志保存在logs/jiudai-access.log文件中
12.2.14固定Apache日志
Apache服務(wù)配置文件http.conf中,LogPath屬性定義了Web服務(wù)器訪問日志默認(rèn)保存路徑,該日志文件路徑也可以由虛擬主機(jī)配置文件中的CustomLog參數(shù)指定,如圖12-13所示。
圖12-13
CustomLog參數(shù)
12.2.15固定數(shù)據(jù)庫
在復(fù)雜的Web應(yīng)用中,后端可能會(huì)通過數(shù)據(jù)庫服務(wù)持久化保存應(yīng)用數(shù)據(jù)。具體的數(shù)據(jù)庫選擇并不統(tǒng)一,在證據(jù)固定時(shí)期,調(diào)查人員可以根據(jù)Web應(yīng)用中的配置文件找到數(shù)據(jù)庫服務(wù)器的IP地址、用戶名、密碼等信息。
在本案例中,調(diào)查人員通過分析Web應(yīng)用中的數(shù)據(jù)庫配置文件dbconfig.php,確認(rèn)后臺(tái)數(shù)據(jù)庫為MySQL,數(shù)據(jù)庫服務(wù)器的IP地址為localhost,連接的用戶名為dw@h#53X#$,連接密碼為re26~D5j@@。配置文件中的參數(shù)如圖12-14所示。
圖12-14數(shù)據(jù)庫配置文件中的參數(shù)
對(duì)數(shù)據(jù)庫的證據(jù)固定有多種方法可選:
①直接復(fù)制數(shù)據(jù)庫存儲(chǔ)文件;
②將數(shù)據(jù)庫中所有表中的數(shù)據(jù)導(dǎo)出保存為.csv文件;
③將數(shù)據(jù)庫中所有數(shù)據(jù)及表結(jié)構(gòu)轉(zhuǎn)儲(chǔ)為.sql文件。這幾種固定方式各有優(yōu)缺點(diǎn)。
直接復(fù)制數(shù)據(jù)庫存儲(chǔ)文件通常適用于用戶量不大、讀寫操作不是特別頻繁、可以短暫停止數(shù)據(jù)庫服務(wù)的情形。這種證據(jù)固定方式對(duì)數(shù)據(jù)庫文件的同步性要求比較高。如果數(shù)據(jù)庫在沒有被停止的情況下復(fù)制文件,數(shù)據(jù)庫產(chǎn)生的寫操作可能導(dǎo)致數(shù)據(jù)庫文件中部分?jǐn)?shù)據(jù)不同步,后期搭建運(yùn)行環(huán)境時(shí)會(huì)經(jīng)常遇到檢查環(huán)境與運(yùn)行環(huán)境不一、數(shù)據(jù)庫主庫文件與日志文件不同步等無法還原的情形。所以這種方法雖然簡(jiǎn)單,對(duì)調(diào)查人員技術(shù)要求不高,但是并不推薦。
12.2.16固定數(shù)據(jù)庫日志
MySQL數(shù)據(jù)庫中常用的日志有Binlog、generallog、慢查詢?nèi)罩镜葞追N類型。
(1)
Binlog日志記錄了數(shù)據(jù)庫上的所有改變,并以二進(jìn)制的形式保存在磁盤中。通過該文件可將數(shù)據(jù)庫任意恢復(fù)到某個(gè)時(shí)間點(diǎn)。Binlog日志文件默認(rèn)保存在數(shù)據(jù)庫的數(shù)據(jù)目錄中,在對(duì)數(shù)據(jù)安全性要求較高的業(yè)務(wù)應(yīng)用中需開啟Binlog日志。通過登錄MySQL數(shù)據(jù)庫并執(zhí)行“showvariableslike'Binlog'”語句查詢?cè)撊罩竟δ苁欠耖_啟。可以通過執(zhí)行“setglobalvariablesBinlog=on”語句開啟Binlog日志功能,通過執(zhí)行“setglobalvariablesBinlog=off”語句關(guān)閉Binlog日志功能。
(2)
generallog保存所有數(shù)據(jù)庫中執(zhí)行的SQL語句,包括對(duì)數(shù)據(jù)庫的查詢、增加、修改、刪除等操作。這種記錄對(duì)數(shù)據(jù)庫的審核、調(diào)優(yōu)以及取證分析比較有用,但是開啟generallog對(duì)數(shù)據(jù)庫的性能影響比較大。generallog查詢?nèi)罩局С謱⑷罩居涗泴懭胛募仓С謱⑷罩居涗泴懭霐?shù)據(jù)庫表。
(3)慢查詢?nèi)罩居脕碛涗洈?shù)據(jù)庫運(yùn)行中響應(yīng)時(shí)間超過閾值的語句,具體是指運(yùn)行時(shí)間超過“l(fā)ong_query_time”值的SQL語句。long_query_time的默認(rèn)值為10,表示運(yùn)行10?s以上的語句。默認(rèn)情況下,MySQL數(shù)據(jù)庫并不啟動(dòng)慢查詢?nèi)罩?,需要手?dòng)來設(shè)置該參數(shù)。如果不是調(diào)優(yōu)需要,一般不建議開啟該服務(wù),因?yàn)槁樵內(nèi)罩净蚨嗷蛏贂?huì)影響數(shù)據(jù)庫的性能。慢查詢?nèi)罩局С謱⑷罩居涗泴懭胛募仓С謱⑷罩居涗泴懭霐?shù)據(jù)庫表。
12.3數(shù)據(jù)分析過程
12.3.1進(jìn)程分析系統(tǒng)進(jìn)程列表中列出了當(dāng)前系統(tǒng)所有進(jìn)程的信息,包括進(jìn)程ID、父進(jìn)程ID、可執(zhí)行程序全路徑、啟動(dòng)時(shí)間等信息。進(jìn)程分析的分析目標(biāo)是不僅要得到當(dāng)前系統(tǒng)應(yīng)用、服務(wù)等系統(tǒng)狀況,還要分析當(dāng)前進(jìn)程列表中是否有一些不常見的、異常的進(jìn)程。然而并沒有什么工具可以輔助調(diào)查人員來確認(rèn)哪個(gè)進(jìn)程是可疑進(jìn)程,哪個(gè)進(jìn)程具有異常操作,該分析過程基本依賴調(diào)查人員的經(jīng)驗(yàn)。本案例中現(xiàn)場(chǎng)提取的進(jìn)程列表部分截圖如圖12-15所示。圖12-15現(xiàn)場(chǎng)提取的進(jìn)程列表部分截圖
對(duì)該進(jìn)程列表中的主要進(jìn)程做以下簡(jiǎn)單描述:
(1)
/sbin/init:該程序是系統(tǒng)中所有程序的父進(jìn)程。該進(jìn)程的PID總是1,負(fù)責(zé)啟動(dòng)組成Linux操作系統(tǒng)的其他進(jìn)程。
(2)
httpd:Apache服務(wù)的進(jìn)程。
(3)
mysqld:MySQL數(shù)據(jù)庫系統(tǒng)的后臺(tái)服務(wù)進(jìn)程。
(4)
crond:定期執(zhí)行指定命令的守護(hù)進(jìn)程,可以通過crontab進(jìn)行設(shè)置。crontab是一個(gè)命令,常見于UNIX和類UNIX的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于crontab配置文件中,以供后續(xù)程序讀取和執(zhí)行。
在Linux操作系統(tǒng)中,定時(shí)任務(wù)一般可以分為以下3種:
①?at:適合僅執(zhí)行一次就結(jié)束的調(diào)度命令,需要啟動(dòng)一個(gè)后端的atd服務(wù)。
②
crontab:需要啟動(dòng)一個(gè)crond服務(wù)才可以,crond服務(wù)通過crontab命令實(shí)現(xiàn)。
③
anacron:無法周期性執(zhí)行,只能以天為周期。但其有一個(gè)特點(diǎn),即在關(guān)機(jī)狀態(tài)下未執(zhí)行的任務(wù)在下次開機(jī)時(shí)可以補(bǔ)上執(zhí)行。
(5)
watchdog:系統(tǒng)服務(wù)運(yùn)營商提供的安全插件。
(6)
ksoftirqd:系統(tǒng)軟件中斷處理線程,屬于系統(tǒng)正常運(yùn)行所必需的線程。
從進(jìn)程列表中反映的狀態(tài)看,檢材服務(wù)器并不存在被入侵后植入的可疑進(jìn)程。
12.3.2分析網(wǎng)絡(luò)連接
從檢材服務(wù)器中提取到的網(wǎng)絡(luò)連接信息列表如圖12-16所示。從圖12-16所示的網(wǎng)絡(luò)連接信息可以發(fā)現(xiàn),系統(tǒng)中主要提供了Apache、MySQL數(shù)據(jù)庫、sshd登錄等服務(wù),未發(fā)現(xiàn)異常的網(wǎng)絡(luò)連接端口,未發(fā)現(xiàn)系統(tǒng)明顯的主動(dòng)連接外部服務(wù)器的異常流量。
圖12-16網(wǎng)絡(luò)連接信息列表
12.3.3分析啟動(dòng)項(xiàng)
Linux下的任務(wù)調(diào)度分為兩類,系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。前者是系統(tǒng)周期性要執(zhí)行的工作,后者是用戶定期要執(zhí)行的工作。通過啟動(dòng)項(xiàng)分析發(fā)現(xiàn),從檢材中提取到的crontab啟動(dòng)程序列表為空,表明未分析異常啟動(dòng)進(jìn)程項(xiàng)。
12.3.4分析登錄日志
從檢材中提取到的登錄信息共102條,部分登錄信息如表12-1所示。
對(duì)表12-1所示列表中登錄記錄符合案發(fā)時(shí)間段的所有IP進(jìn)行提取并去重,結(jié)果共涉及10個(gè)IP地址。經(jīng)與受害單位服務(wù)器管理人員核對(duì),上述IP登錄地址均屬于公司維護(hù)人員常用IP,并未發(fā)現(xiàn)其他異常登錄地址。
12.3.5分析錯(cuò)誤登錄日志
錯(cuò)誤登錄日志用于記錄所有用戶的未正確輸入用戶名、密碼情況等。從該記錄文件中提取到的錯(cuò)誤登錄日志共3389條。對(duì)所有錯(cuò)誤登錄日志進(jìn)行匯總并統(tǒng)計(jì),提取所有錯(cuò)誤登錄記錄的IP地址,部分IP列表如表12-2所示
對(duì)所有嘗試使用錯(cuò)誤用戶名及密碼登錄的IP地址去重并統(tǒng)計(jì)后,共提取到33個(gè)獨(dú)立IP訪問記錄,如表12-3所示。
使用上述錯(cuò)誤登錄IP地址作為關(guān)鍵詞檢測(cè)服務(wù)器正常登錄日志中是否有來自上述IP地址的成功登錄IP。經(jīng)檢測(cè),從檢材服務(wù)器的成功登錄日志中未檢測(cè)出包含上述嘗試密碼破解的錯(cuò)誤登錄IP地址的成功登錄記錄。這表明雖然有黑客嘗試入侵目標(biāo)服務(wù)器,但由于目標(biāo)服務(wù)器用戶名、密碼并不屬于弱密碼,因此黑客并沒有成功破解出正確的登錄密碼。
12.3.6分析Web
在涉及服務(wù)器入侵的案件中,Web分析總是整個(gè)調(diào)查取證過程中的“重頭戲”。對(duì)于一般的黑客來說,找一個(gè)Web漏洞所花費(fèi)的精力、時(shí)間、成本比挖出一個(gè)系統(tǒng)漏洞要容易得多。在本書作者參與調(diào)查的大部分黑客入侵類案件中,有很大一部分是從Web漏洞或WebShell的查找開始的。
分析Web中是否存在異常的WebShell文件,常用方法如下:
(1)通過安全軟件快速掃描整個(gè)Web目錄。通常來講,使用Web安全軟件比調(diào)查人員手工分析或通過經(jīng)驗(yàn)來查找可疑文件要更高效、簡(jiǎn)潔,適用性強(qiáng),誤報(bào)少;且這種方法不限于調(diào)查人員的調(diào)查經(jīng)驗(yàn),對(duì)于初次涉及案件調(diào)查的調(diào)查人員或?qū)诳驼{(diào)查類案件并不熟悉的調(diào)查人員來說是一種“速效救心丸”。
(2)如果調(diào)查人員比較深入了解了案件的前因后果,那么也可以通過關(guān)鍵詞、時(shí)間排除法等快速定位可疑文件。例如,管理員確定目標(biāo)Web目錄中的所有文件在最近一個(gè)月內(nèi)根本沒有更改過,那么可以通過文件的時(shí)間信息快速提取檢材中最近一個(gè)月內(nèi)被創(chuàng)建或修改過的可執(zhí)行程序“find.-name"*.php"
-a-ctime-30”,如果的確能找到一個(gè)月內(nèi)被修改或創(chuàng)建的?.php文件,則可再通過分析目標(biāo).php文件的功能代碼,確定該文件是否具有惡意或可疑功能;也可通過WebShell中常用的關(guān)鍵詞直接搜索整個(gè)Web目錄中的所有文件,如execute、@eval($_GET、@system($_POST、assert($_REQUEST、file_get_contents,可以直接使用grep指令搜索上述關(guān)鍵詞;甚至可以結(jié)合文件的創(chuàng)建時(shí)間、修改時(shí)間信息進(jìn)一步進(jìn)行更復(fù)雜的可疑文件搜索。
在該案例中,本書作者直接使用安全軟件D盾對(duì)目標(biāo)Web目錄中所有文件進(jìn)行了掃描。不負(fù)所望,結(jié)果從該目錄中提取到了一個(gè)可疑文件uploaddyp2p.php.bmp,對(duì)該文件進(jìn)行掃描的結(jié)果如圖12-17所示。
圖12-17使用安全軟件D盾對(duì)目標(biāo)Web目錄中所有文件進(jìn)行掃描
該文件大小為2KB,MD5值為460133aa42302c0e78656266959e7057。該文件部分代碼內(nèi)容分別如圖12-18和圖12-19所示。
圖12-18文件部分代碼內(nèi)容(1)圖12-19文件部分代碼內(nèi)容(2)
注意,上述代碼中功能代碼“@assert”(斷言)的主要作用是:在編寫代碼時(shí),人們總是會(huì)做出一些假設(shè),斷言就是用于在代碼中捕捉這些假設(shè)的,可以將斷言看作異常處理的一種高級(jí)形式。程序員斷言在程序中的某個(gè)特定點(diǎn)的表達(dá)式值為真。如果該表達(dá)式為假,就中斷操作,即要判斷該斷言的真假,必須執(zhí)行“@assert”后的代碼,即“base64_decode”函數(shù)解碼后的程序。該程序的內(nèi)容又來源于客戶端提交的參數(shù)h3len中的內(nèi)容,即如果客戶端程序通過參數(shù)h3len提交了一些影響檢材服務(wù)器安全性、穩(wěn)定性的指令,則該程序也不做任何檢查就將客戶端提交的程序完全執(zhí)行。
雖然該木馬文件無法給分析員提供直接幫助,確認(rèn)并定位可疑黑客的位置,但可以通過該文件的屬性信息進(jìn)行以下擴(kuò)展分析:
(1)以提取到的文件的創(chuàng)建、修改時(shí)間作為一個(gè)坐標(biāo)來查找那個(gè)時(shí)間前后的可疑文件。
(2)雖然該文件無法執(zhí)行,但可以通過提取到的Web訪問日志分析是哪個(gè)用戶上傳了該文件或第1個(gè)成功訪問該文件的用戶,這些用戶最為可疑。
在該案例中,調(diào)查人員充分利用了上述可疑文件的時(shí)間特征,以圖片文件的創(chuàng)建時(shí)間為線索,執(zhí)行指令“find.Typef-a–name"*.php"-aneweruploadyp2p.php.bmp”后,找到了在該圖片文件被創(chuàng)建成功后唯一的擴(kuò)展名為?.php的可執(zhí)行文件adminer.php。該文件部分內(nèi)容如圖12-20所示。
圖12-20
adminer.php文件部分內(nèi)容
在鑒定計(jì)算機(jī)中安裝?.php運(yùn)行環(huán)境,并將程序文件adminer.php復(fù)制到鑒定計(jì)算機(jī)中安裝的Apache的Web目錄c:\xampp\apache\htdoc下,并通過Web瀏覽器直接訪問該頁面的URL地址/adminer.php,如圖12-21所示。
圖12-21通過Web瀏覽器直接訪問該頁面的URL地址
從圖12-21中的選擇參數(shù)的內(nèi)容來看,該程序的功能屬于數(shù)據(jù)庫管理類的程序,需要提供目標(biāo)服務(wù)器的登錄IP地址、用戶名、密碼信息才可以登錄。這里調(diào)查人員進(jìn)行測(cè)試時(shí),使用鑒定計(jì)算機(jī)中臨時(shí)搭建的MySQL數(shù)據(jù)庫用戶名root、密碼root直接成功登錄鑒定計(jì)算機(jī)中的MySQL數(shù)據(jù)庫并可對(duì)鑒定計(jì)算機(jī)中MySQL數(shù)據(jù)庫的內(nèi)容進(jìn)行直接管理(如增加、修改、刪除、查詢等),部分內(nèi)容如圖12-22所示。
圖12-22
MySQL數(shù)據(jù)庫的部分內(nèi)容
綜上所述,程序文件adminer.php是一個(gè)完全具備數(shù)據(jù)庫操作功能的管理軟件。該軟件屬于開源、免費(fèi)的數(shù)據(jù)庫管理程序。該程序本身并不具備任何惡意功能,所以即使使用安全軟件對(duì)該程序進(jìn)行安全檢測(cè)也不會(huì)檢測(cè)出其惡意行為,因?yàn)槠浔旧韮H僅是作為數(shù)據(jù)庫管理程序在使用。從被入侵服務(wù)器的系統(tǒng)管理員處得知該程序不屬于管理人員自己主動(dòng)在服務(wù)器中使用的數(shù)據(jù)庫管理軟件,明顯該程序是由黑客上傳并使用的。
既然可以確認(rèn)是黑客上傳了該數(shù)據(jù)庫管理軟件,調(diào)查人員的下一步操作就是分析該數(shù)據(jù)庫管理軟件對(duì)當(dāng)前被入侵系統(tǒng)的影響,如該軟件在當(dāng)前被入侵的系統(tǒng)中可以完成哪部分功能以及上傳者,訪問者有哪些人,他們進(jìn)行了哪些訪問、從哪里訪問、什么時(shí)間進(jìn)行了訪問,訪問是否成功,訪問該程序的主要目的是什么。帶著上述一系列疑問,作者等進(jìn)行了更深入的了解與分析。
12.3.7分析Web日志
本小節(jié)主要分析目標(biāo)是對(duì)檢材服務(wù)器中提取到的82個(gè)Web日志文件進(jìn)行分析,并嘗試從日志中回答12.3.6小節(jié)提出的幾個(gè)問題:數(shù)據(jù)庫管理程序adminer.php的上傳者、訪問者有哪些人,他們進(jìn)行了哪些訪問、從哪里訪問、什么時(shí)間進(jìn)行了訪問,訪問是否成功,訪問該程序的主要目的是什么。部分日志文件列表如圖12-23所示。
圖12-23部分日志文件列表
首先,第一個(gè)明確的目標(biāo)是提取所有訪問過數(shù)據(jù)庫管理程序文件adminer.php的記錄。
對(duì)于純關(guān)鍵詞搜索的功能來說,Linux操作系統(tǒng)中自帶的grep指令可以完全滿足要求。執(zhí)行指令“grep–ai"adminer.php"
access_log*”,從上述所有日志文件中提取到訪問adminer.php文件的記錄共590條(將上述所有訪問記錄保存到adminer.php.log文件中),其中部分日志記錄內(nèi)容如圖12-24所示。
圖12-24部分日志記錄內(nèi)容
目標(biāo)服務(wù)器記錄的Web日志格式主要組成部分包括客戶端訪問IP地址、訪問時(shí)間、訪問使用的方法及URL地址、返回訪問結(jié)果狀態(tài)、返回的頁面數(shù)據(jù)的大小、訪問前來源URL地址、客戶端的瀏覽器型號(hào)、版本號(hào)等(從左至右)。
從上述590條訪問日志中提取到多個(gè)客戶端信息為compatible;MSIE6.0;WindowsNT5.1;Alibaba.Security.Heimdall.240968,即阿里云服務(wù)商的Heimdall掃描器的掃描記錄。上述安全掃描器的掃描記錄對(duì)于調(diào)查人員的分析是無意義的,所以需要對(duì)提取到的590條訪問adminer.php文件的記錄中所有來源于阿里云Heimdall掃描器的掃描記錄進(jìn)行排除。執(zhí)行指令“grep-v'Alibaba'../adminer.php.log>../adminer_exclude_Alibaba.log”,可達(dá)到排除掃描器掃描結(jié)果的操作。排除阿里云安全掃描器后共提取到319條訪問adminer.php文件的記錄。
對(duì)上述日志的解析如下:
該條日志的訪問時(shí)間為31/May/2015:17:16:32+0800,IP地址為7,URL地址為/modules/admin/adminer.php?username=cjd%7E777%5E&db=changjiudai&edit=dw_account_cash&where%5Bid%5D=13238,訪問方法為GET,該頁面的訪問返回狀態(tài)是200,表明訪問正常。
如何理解該條日志中客戶端訪問的URL地址/modules/admin/adminer.php?username=cjd%7E777%5E&db=changjiudai&edit=dw_account_cash&where%5Bid%5D=13238?可以認(rèn)為該URL地址由以下幾個(gè)部分組成,首先訪問的網(wǎng)頁是/modules/admin/adminer.php,在該網(wǎng)頁后由問號(hào)“?”將目標(biāo)頁面與訪問時(shí)傳遞給該頁面的參數(shù)進(jìn)行區(qū)分。問號(hào)“?”后的所有數(shù)據(jù)由參數(shù)及該參數(shù)對(duì)應(yīng)的值組成。等號(hào)“=”前表示提交給目標(biāo)頁面的參數(shù)名,等號(hào)“=”后表示該參數(shù)對(duì)應(yīng)的值。將該URL地址直接在Web瀏覽器中打開,查看該URL地址對(duì)應(yīng)的返回結(jié)果,省去了靜態(tài)分析代碼的過程。該URL地址對(duì)應(yīng)的返回結(jié)果如圖12-25所示。
圖12-25
URL地址對(duì)應(yīng)的返回結(jié)果
從圖12-25中可知,該URL地址對(duì)應(yīng)編輯數(shù)據(jù)庫changjiudai中的dw_account_cash表中的id號(hào)為13238的用戶賬戶信息。該表中表名對(duì)應(yīng)URL地址中的參數(shù)edit,用戶id對(duì)應(yīng)URL地址中的參數(shù)where[id]的值。從上述日志分析結(jié)果可知,通過訪問文件adminer.php可以完全操控被入侵服務(wù)器中的MySQL數(shù)據(jù)庫中的數(shù)據(jù)。因此,通過分析Web日志中adminer.php的訪問記錄可以得知入侵者對(duì)檢材服務(wù)器的數(shù)據(jù)庫進(jìn)行過哪些操作。
執(zhí)行指令“grep-E-i–o"user_id%5d=[0-9]{1,8}"adminer.Php.exclude.alibaba.log”,從390條adminer.php文件的訪問記錄中提取到涉及4個(gè)用戶id的修改記錄,即1392、1679、2613、6248,如圖12-26所示。
圖12-26提取到涉及4個(gè)用戶id的修改記錄
執(zhí)行指令“cut-d:-f2adminer.php.exclude.alibaba.log|cut-d''-f1|sort|uniq-c|sort-r”,對(duì)上述所有390條訪問記錄中的IP地址進(jìn)行提取并統(tǒng)計(jì)各個(gè)IP地址的訪問次數(shù),如圖12-27所示。
圖12-27提取并統(tǒng)計(jì)各個(gè)IP地址的訪問次數(shù)
通過網(wǎng)絡(luò)分析上述所有訪問過adminer.php文件的IP地址歸屬地,如圖12-28所示。
圖12-28分析IP地址歸屬地
根據(jù)與管理員的溝通得知,上述3條訪問記錄屬于服務(wù)器管理員發(fā)現(xiàn)服務(wù)器異常后的訪問記錄,其中第1條訪問記錄的返回狀態(tài)代碼為404,表明該記錄產(chǎn)生時(shí)該文件已不存在。對(duì)另外兩條訪問記錄分析其訪問代碼后未發(fā)現(xiàn)服務(wù)器數(shù)據(jù)有實(shí)質(zhì)性破壞,因此可以排除上述兩個(gè)IP地址的可疑性。
余下10個(gè)IP地址的訪問記錄如圖12-29所示。
圖12-29余下10個(gè)IP地址的訪問記錄
將上述10個(gè)IP地址作為關(guān)鍵詞對(duì)所有Web日志進(jìn)行搜索,提取上述10個(gè)IP地址的所有訪問記錄,通過執(zhí)行指令“find./log/-typef|xargs-I{}grep-a-i-fadminer_uniq_ip.txt{}>adminer_uniq_ip_all_.log”完成。從上述所有Web訪問記錄中提取到10個(gè)入侵者IP的所有訪問記錄共1008條,大小為245KB,將它們保存到adminer_uniq_ip_all_.log文件中。
從上述提取到的1008條訪問記錄中分析所有訪問記錄的時(shí)間信息,如圖12-30所示。
圖12-30分析所有上述訪問記錄的時(shí)間信息
對(duì)前面的分析結(jié)果進(jìn)行階段性的總結(jié):
(1)檢材服務(wù)器的Web目錄中存在一個(gè)可以完全操控?cái)?shù)據(jù)庫能力的文件adminer.php,該文件并非由服務(wù)器管理員上傳,推測(cè)其由入侵者上傳并使用。
(2)檢材adminer.php具備完全操控MySQL數(shù)據(jù)庫的能力,入侵者通過該文件可以直接修改服務(wù)器中的用戶信息,包括身份證號(hào)、銀行卡號(hào)、提取金額、賬戶余額等任意數(shù)據(jù)。
(3)共提取到4條用戶數(shù)據(jù)操作記錄。
(4)共提取到的10個(gè)可疑IP地址,全部位于日本、中國香港,猜測(cè)其可能是VPN。
(5)入侵者對(duì)服務(wù)器中的數(shù)據(jù)進(jìn)行修改的時(shí)間為2015年3月30日、2015年4月1日、2015年4月2日、2015年5月31日。
12.3.8分析數(shù)據(jù)庫
根據(jù)12.3.7小節(jié)中提取到的4個(gè)存在被修改用戶信息的用戶id,在數(shù)據(jù)庫中執(zhí)行指令“selecta.user_id,a.username,a.card_id,a.realname,b.account,b.branch,d.total,d.use_money,d.no_use_moneyfromdw_userasaLEFTJOINdw_account_bankasbona.user_id=b.user_idleftjoindw_accountasdona.user_id=d.user_idwherea.user_id=1392ora.user_id=1679ora.user_id=2613ora.user_id=6248”后,提取到這4個(gè)用戶的基本信息,如圖12-31所示。
圖12-31提取到的4個(gè)用戶的基本信息
執(zhí)行指令“selectuser_id,total,money,use_money,no_use_money,remark,F(xiàn)ROM_UNIXTIME(addtime,"%Y-%m-%d")fromdw_account_logwhereuser_id=6248andtype='cash_frost'”,從數(shù)據(jù)庫的應(yīng)用日志表dw_account_log中提取所有涉及上述4個(gè)用戶的提現(xiàn)操作記錄,分別如圖12-32~圖12-35所示。
圖12-33提取所有涉及用戶id為2613的提現(xiàn)操作記錄圖12-32提取所有涉及用戶id為6248的提現(xiàn)操作記錄圖12-34提取所有涉及用戶id為1392的提現(xiàn)操作記錄圖12-35提取所有涉及用戶id為1679的提現(xiàn)操作記錄
在數(shù)據(jù)庫中執(zhí)行指令“selectuser_id,total,money,use_money,no_use_money,remark,F(xiàn)ROM_UNIXTIME(addtime,"%Y-%m-%d"),addipfromdw_account_logwhereuser_idin(6248,2613,1392,1679)andtype='cash_frost'”,提取上述4個(gè)涉案用戶的提取操作IP地址信息,分別如圖12-36~圖12-39所示。
圖12-36提取涉及用戶id為6248的提取操作IP地址信息圖12-37提取涉及用戶id為2613的提取操作IP地址信息圖12-38提取涉及用戶id為1392的提取操作IP地址信息圖12-39提取涉及用戶id為1679的提取操作IP地址信息
對(duì)上述分析結(jié)果再進(jìn)行階段性的總結(jié):
(1)檢材數(shù)據(jù)庫中的確存在4條涉嫌篡改用戶提現(xiàn)記錄的數(shù)據(jù)。
(2)上述4條提現(xiàn)記錄日期與Apache日志中的adminer.php訪問時(shí)間基本吻合。
(3)上述4條提現(xiàn)記錄的IP地址與adminer.php訪問IP吻合。
(4)入侵者可以通過adminer.php完全操縱目標(biāo)服務(wù)器中的數(shù)據(jù),所以dw_account_log表中的數(shù)據(jù)并不十分可信。
12.3.9數(shù)據(jù)庫Binlog日志轉(zhuǎn)換
通過前面的分析結(jié)果知道了入侵者IP、可能的入侵時(shí)間、涉及受害者的用戶id信息,但還無法從日志中分析出入侵者是如何實(shí)現(xiàn)提現(xiàn)到自己的賬戶并將錢轉(zhuǎn)走的,以及入侵者修改了系統(tǒng)中的哪些數(shù)據(jù)。
調(diào)查人員從檢材服務(wù)器中提取了MySQL數(shù)據(jù)庫的底層Binlog日志。該日志文件的作用是保存所有對(duì)數(shù)據(jù)庫修改、增加、刪除的記錄。MySQL數(shù)據(jù)庫的Binlog日志屬于二進(jìn)制文件,無法直接使用文本編輯器打開它。使用MySQL自帶工具mysqlbinlog.exe可以將Binlog日志文件轉(zhuǎn)換為?.sql純文本文件。執(zhí)行下列指令:
Binlog日志文件被轉(zhuǎn)換為all_Binlog.sql純文本文件,該文件總大小為3.19GB,文件內(nèi)容如圖12-40所示。
圖12-40
all_Binlog.sql文件內(nèi)容
12.3.10用戶id為2613的用戶操作日志分析
執(zhí)行指令“grep-C5-a-i-E”user_id=\‘2613\’|user_id=2613“
all_Binlog.sql>2613.log”,查詢所有Binlog操作日志中user_id=2613的操作記錄并保存到2613.log文件中。
從該日志文件中提取到一條2015年3月30日凌晨2點(diǎn)35分28秒的操作記錄,該記錄更新了用戶id為2613的用戶信息,更新用戶名為康、身份證號(hào)碼為630104********2543,代碼如下:
2015年3月30日凌晨2點(diǎn)37分08秒,用戶提現(xiàn)申請(qǐng)記錄表dw_account_cash中更新了一條該用戶的提現(xiàn)記錄,提現(xiàn)的銀行卡號(hào)為621700001004806****,開戶行地址為北京豐臺(tái)萬年花城支行,代碼如下:
2015年3月30日凌晨2點(diǎn)38分33秒,用戶操作記錄日志表dw_account_log中的用戶操作記錄被刪除,該刪除操作僅刪除了用戶id為2613且日志id大于81869的操作記錄,推測(cè)此操作是入侵者為了隱藏自身的提現(xiàn)操作而進(jìn)行的,代碼如下:
2015年3月30日凌晨2點(diǎn)39分24秒,該用戶的賬戶余額減少了101675元,代碼如下:
2015年3月30日上午9點(diǎn)58分,該用戶的賬戶余額中的錢被成功扣除,代碼如下:
2015年4月1日17點(diǎn)57分05秒,該用戶的用戶信息被再次更新,其用戶名被更新為吳*,身份證號(hào)碼變更為310227********0029,代碼如下:
2015年4月1日17點(diǎn)57分45秒,該用戶的銀行卡信息再次被更新,銀行卡號(hào)被更改為984301010228****,開戶行地址被更改為松江區(qū)樂都路支行,代碼如下:
上述更新操作發(fā)生后沒有產(chǎn)生提現(xiàn)記錄。
2015年5月31日21點(diǎn)00分09秒,該用戶信息又被再次更新,用戶名被更改為吳**,身份證號(hào)被更改為510211********1210,更新時(shí)使用的IP地址為86,代碼如下:
2015年5月31日21點(diǎn)02分20秒,該用戶提現(xiàn)記錄表中被插入了一條提現(xiàn)記錄,提現(xiàn)銀行卡號(hào)為621226211100345****,提取銀行卡開戶行地址為玉林博白支行營業(yè)室,提現(xiàn)時(shí)使用的IP地址為45,代碼如下:
2015年6月1日上午9點(diǎn)29分13秒,該用戶賬戶日志中被插入一條提現(xiàn)失敗記錄,該異常操作被管理員發(fā)現(xiàn)并終止了入侵者的提現(xiàn)行為,代碼如下:
12.3.11用戶id為1679用戶操作日志分析
2015年3月30日凌晨2點(diǎn)51分29秒,用戶id為1679的用戶信息被更新,用戶名被更新為吳**,身份證號(hào)被更新為510211********1210,更新時(shí)使用的IP地址為106.120.233.122,代碼如下:
2015年3月30日上午8點(diǎn)14分14秒,一條用戶提現(xiàn)記錄被插入數(shù)據(jù)庫中,提現(xiàn)IP地址為84,銀行卡號(hào)為621226211100345****,提現(xiàn)金額為59044,代碼如下:
2015年3月30日上午9點(diǎn)58分51秒,一條提現(xiàn)成功記錄被插入數(shù)據(jù)庫中,提現(xiàn)金額為59044,代碼如下:
2015年4月1日17點(diǎn)58分06秒,該用戶信息再次被更新,用戶名變更為陳?*,代碼如下:
2015年4月1日17點(diǎn)58分35秒,該用戶銀行卡信息被連續(xù)兩次更新,代碼如下:
12.3.12數(shù)據(jù)庫日志分析匯總
本案例數(shù)據(jù)庫日志分析匯總?cè)缦拢?/p>
(1)嫌疑人先通過修改數(shù)據(jù)庫中的用戶信息、提款人銀行卡信息,再通過系統(tǒng)提現(xiàn)功能將錢轉(zhuǎn)入嫌疑人設(shè)定的銀行卡中。
上述作案過程中涉及的銀行卡號(hào)碼有5個(gè)。
(2)因?yàn)橄右扇舜嬖趧h除用戶操作日志表的行為,所以當(dāng)前數(shù)據(jù)庫中dw_account_log表中的記錄并不完整,不能作為完全判斷的依據(jù)。
(3)嫌疑人提款申請(qǐng)有成功記錄。
(4)入侵者在案件中使用了以下5個(gè)銀行卡號(hào)及身份證信息,如圖12-41所示。
圖12-41入侵者使用的5個(gè)銀行卡號(hào)及身份證信息
12.4分析漏洞原因
通過前述入侵過程分析基本清楚了入侵者IP、時(shí)間、方法、所涉及的提現(xiàn)金額、銀行卡號(hào)、身份證號(hào)碼等信息,但對(duì)于入侵者如何上傳adminer.php文件、使用了什么樣的系統(tǒng)漏洞等問題一無所知。
要分析系統(tǒng)漏洞形成原因,沒有一個(gè)簡(jiǎn)單的辦法或工具能夠讓調(diào)查人員直接回溯整個(gè)入侵過程,只能根據(jù)已有的數(shù)據(jù)、日志、數(shù)據(jù)庫等信息先進(jìn)行大范圍的猜測(cè),再逐步驗(yàn)證自己猜測(cè)的結(jié)果是否準(zhǔn)確。
在綜合分析了日志文件、數(shù)據(jù)庫文件后,調(diào)查人員覺得入侵者從Web入侵的可能性最大,入侵者可能使用了某個(gè)未知的Web漏洞上傳了可疑文件uploaddyp2p.php.bmp。雖然該文件不具備可執(zhí)行權(quán)限或功能,但卻給調(diào)查人員指明了一個(gè)方向,即入侵者上傳的入侵路徑一定與該文件相關(guān)。
經(jīng)分析,發(fā)現(xiàn)了一個(gè)比較讓人費(fèi)解的問題,如圖12-42所示。
圖12-42
uploaddyp2p.php.bmp
從圖12-42中發(fā)現(xiàn)有很多數(shù)據(jù)被POST給可疑文件uploaddyp2p.php.bmp。.bmp文件不具備執(zhí)行權(quán)限,向該文件POST數(shù)據(jù)本身就是一個(gè)十分異常的現(xiàn)象。日志中顯示這些文件訪問返回狀態(tài)是200,表明文件已存在,但該文件在前面的訪問結(jié)果狀態(tài)一般都是404,表明該文件并不存在。在404狀態(tài)與200狀態(tài)之間Web日志發(fā)現(xiàn)都會(huì)存在一個(gè)神秘的POST請(qǐng)求操作,其代碼如下:
該請(qǐng)求操作訪問的頁面為/plugins/avatar/index.php,這個(gè)訪問請(qǐng)求到底具備何種功能?根據(jù)目前的資料來說調(diào)查人員一無所知,對(duì)此可以用以下兩種方法分析該文件的功能:
(1)直接閱讀代碼,分析該URL地址后的各項(xiàng)參數(shù),閱讀index.php代碼,對(duì)照分析引入上述參數(shù)后index.php的程序流程。
(2)通過一個(gè)仿真環(huán)境直接訪問該URL地址,看看用同樣的URL地址訪問同樣的頁面會(huì)返回什么樣的結(jié)果。顯然后一種方法比直接閱讀代碼要更快速、簡(jiǎn)潔。
調(diào)查人員利用xampp工具包提供的Apache、MySQL、PHP環(huán)境將被入侵服務(wù)器的Web網(wǎng)站直接在本地進(jìn)行還原(還原過程省略)。
啟用Web瀏覽器,訪問該URL地址(/plugins/avatar/index.php?m=user&inajax=1&a=uploadavatar&appid=1&input=3de3YQ0i5kzSE5qjNPJTZFwz1WS4BgxZIiYzEHtC1PL4ZTTw%2BYC4yz5ge7whH%2FPIZjLQx7JUMXVDJKxpjyVfRTQjRpk&agent=111&avatartype=virtual),返回結(jié)果如圖12-43所示。
圖12-43訪問該URL地址返回結(jié)果
結(jié)果返回了一個(gè)值?-3,這個(gè)返回值代表什么意思呢?接下來閱讀目標(biāo)頁面/plugins/avatar/index.php的源代碼,找到相關(guān)函數(shù),如圖12-44所示。
圖12-44
index.php的源代碼
該頁面的代碼開頭導(dǎo)入了頁面avatar.class.php,并生成了一個(gè)新的Avatar類的對(duì)象。在該頁面中提取參數(shù)a對(duì)應(yīng)的值(從URL地址中提取參數(shù)a的值為uploadavatar)并判斷Avatar對(duì)象中是否存在參數(shù)a對(duì)應(yīng)的方法uploadavatar。如果存在該方法,則將URL地址后的參數(shù)進(jìn)行序列化并調(diào)用該方法,調(diào)用方法名為字符串“on”+“uploadavatar”,即調(diào)用onuploadavatar函數(shù)。
在代碼頁面avatar.Class.php中提取onuploadavatar函數(shù),如圖12-45所示。
圖12-45提取onuploadavatar函數(shù)
圖12-45所示代碼明確顯示該函數(shù)中檢測(cè)參數(shù)Filedata是否為空,如果為空則返回?-3。這里找到了錯(cuò)誤原因,即訪問該URL地址缺少了提交一個(gè)參數(shù)名為Filedata的數(shù)據(jù),該數(shù)據(jù)對(duì)應(yīng)的是一個(gè)文件。
如何提交一個(gè)文件給這個(gè)頁面文件呢?可以利用curl工具訪問并上傳數(shù)據(jù),也可以使用以下指令上傳文件:
curl-F"Filedata=@1.bmp"":8087/changjiudai/plugins/avatar/index.php?m=user&inajax=1&a=uploadavatar&appid=1&input=3de3YQ0i5kzSE5qjNPJTZFwz1WS4BgxZIiYzEHtC1PL4ZTTw%2BYC4yz5ge7whH%2FPIZjLQx7JUMXVDJKxpjyVfRTQjRpk&agent=111&avatartype=virtual"
執(zhí)行該指令后,在Web目錄中生成了一個(gè)文件uploaddyp2p.php.bmp,如圖12-46所示。
圖12-46
Web目錄
uploaddyp2p.php.bmp就是前面章節(jié)中被檢測(cè)出存在一句話后門的可疑文件。既然通過上述方法可以直接在被入侵服務(wù)器中生成一個(gè)?.bmp文件,那是否可以同樣生成一個(gè)?.php文件?如果確認(rèn)可以生成,那么也可以推測(cè)入侵者同樣也可以生成這樣一個(gè)文件。但調(diào)查人員對(duì)uploaddyp2p.php.bmp文件的產(chǎn)生規(guī)則并不了解,只好繼續(xù)分析onuploadavatar函數(shù),如圖12-47所示。
圖12-47分析onuploadavatar函數(shù)
在存在上述代碼的頁面文件avatar.php中提取到一個(gè)函數(shù)uc_authcode,如圖12-48所示。
圖12-48uc_authcode函數(shù)
該函數(shù)的第二個(gè)參數(shù)operation有一個(gè)默認(rèn)值DECODE,即如果調(diào)用該函數(shù)時(shí)不對(duì)參數(shù)operation賦值,則該值默認(rèn)是DECODE;該函數(shù)第3個(gè)參數(shù)key的默認(rèn)值為空。在該函數(shù)調(diào)用的注釋中提取到一個(gè)AVATAR_KEY,這個(gè)值為deck,且在頁面文件avatar.php中提取到一個(gè)調(diào)用uc_authcode函數(shù)的語句,調(diào)用語句使用的參數(shù)key的值就是deck,如圖12-49所示。
圖12-49調(diào)用函數(shù)uc_authcode的語句
根據(jù)上述代碼調(diào)用規(guī)則寫一段解密代碼,如下:
執(zhí)行上述代碼文件,運(yùn)行結(jié)果如圖12-50所示。
圖12-50運(yùn)行結(jié)果
回頭再看一下這個(gè)URL地址:changjiudai/plugins/avatar/index.php?m=user&inajax=1&a=uploadavatar&appid=1&input=3de3YQ0i5kzSE5qjNPJTZFwz1WS4BgxZIiYzEHtC1PL4ZTTw%2BYC4yz5ge7whH%2FPIZjLQx7JUMXVDJKxpjyVfRTQjRpk&agent=111&avatartype=virtual。該URL地址是從Web日志文件中提取的,從這種日志文件中提取到的日志URL地址都經(jīng)過了urlencode編碼,以防止一些特殊字符、中文無法上傳。
從加密字符串中也提取到了這樣的字符%2B、%2F,顯然這兩個(gè)字符的原意并非如此。要解決urlencode的問題很簡(jiǎn)單,即在將解密代碼中的字符串提交給解密函數(shù)前,使用urldecode函數(shù)對(duì)URL地址中被urldecode編碼過的字符進(jìn)行還原操作即可。重新修改解密代碼,如下:
上述代碼的運(yùn)行結(jié)果如圖12-51所示。
圖12-51運(yùn)行結(jié)果
經(jīng)過上述解密過程分析,了解了加密字符串的意義。下面的操作是嘗試通過向服務(wù)器提交一個(gè)真正存在的文件,觀察該提交過程的返回結(jié)果。因?yàn)檎{(diào)查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年河北軟件職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫附答案詳解
- 2026年河北勞動(dòng)關(guān)系職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫及參考答案詳解1套
- 2026年汝州職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫及參考答案詳解1套
- 2026年哈爾濱北方航空職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫及完整答案詳解1套
- 2026年新疆交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫及參考答案詳解一套
- 養(yǎng)老院護(hù)理面試題及答案
- 藥學(xué)保研面試題及答案
- 油茶產(chǎn)業(yè)項(xiàng)目承包協(xié)議書范本
- 2025年宿松縣城市管理局協(xié)管員招聘?jìng)淇碱}庫完整參考答案詳解
- 2025年四川九洲防控科技有限責(zé)任公司關(guān)于招聘綜合管理崗的備考題庫及參考答案詳解一套
- 陪玩培訓(xùn)課程
- 2025年化學(xué)成都一診試題及答案
- 中國安徽省地圖模板
- 統(tǒng)編版四年級(jí)上冊(cè)語文期末專題復(fù)習(xí)課件2-6-文言文之超級(jí)訪問
- 湘少版英語-6年級(jí)上冊(cè)-單詞表(帶音標(biāo))
- 新概念英語第一冊(cè)隨堂練習(xí)-Lesson53~54 有答案
- 數(shù)控設(shè)備應(yīng)用與維護(hù)專業(yè)畢業(yè)實(shí)習(xí)報(bào)告范文
- 2020年智慧樹知道網(wǎng)課《非英語國家文化(山東聯(lián)盟)》課后章節(jié)測(cè)試滿分答案
- 數(shù)學(xué)課件月歷中的數(shù)學(xué)問題
- 壅水計(jì)算完整版本
- 運(yùn)用PDCA降低住院患者跌倒、墜床發(fā)生率課件
評(píng)論
0/150
提交評(píng)論