劉猛猛 徐國天 程斌
1. 中國刑事警察學(xué)院 2. 公安部第三研究所
網(wǎng)站掛馬是木馬傳播的主要途徑之一,它是指黑客在網(wǎng)站頁面注入惡意代碼,若用戶計(jì)算機(jī)存在相應(yīng)的安全漏洞,當(dāng)用戶主機(jī)訪問被掛馬網(wǎng)站時(shí)就會自動下載并運(yùn)行木馬程序。用戶主機(jī)感染木馬程序后,黑客可以控制用戶計(jì)算機(jī)、監(jiān)視主機(jī)活動或竊取敏感信息。文獻(xiàn)[1]使用volatility 分析系統(tǒng)內(nèi)存中的注冊表和進(jìn)程等,對木馬病毒進(jìn)行取證,但該方法難以完整還原木馬傳播鏈條或確定黑客端相關(guān)信息。文獻(xiàn)[2]通過重建木馬程序的執(zhí)行路徑,強(qiáng)制木馬程序執(zhí)行電子郵件發(fā)送行為,進(jìn)而獲取黑客預(yù)設(shè)的關(guān)鍵信息,但缺少對網(wǎng)站掛馬傳播階段的取證方法研究。文獻(xiàn)[3]使用sniffer封包分析軟件抓取并分析HTTP/1.1協(xié)議網(wǎng)絡(luò)數(shù)據(jù)包,判斷是否存在XSS掛馬行為,得出黑客端信息和攻擊方式,但是由于HTTP/2協(xié)議使用TLS協(xié)議加密傳輸數(shù)據(jù),使得這種方式難以直接運(yùn)用于HTTP/2加密數(shù)據(jù)包分析。隨著新一代超文本傳輸協(xié)議HTTP/2正式成為互聯(lián)網(wǎng)協(xié)議,越來越多的網(wǎng)站采用HTTP/2協(xié)議傳送數(shù)據(jù)。由于HTTP/2類型網(wǎng)站在傳輸數(shù)據(jù)時(shí)必須使用TLS協(xié)議對通信數(shù)據(jù)進(jìn)行加密,因無法對通信數(shù)據(jù)進(jìn)行有效解密,使得HTTP/2類型網(wǎng)站掛馬案件的調(diào)查分析難度較大。而諸如騰訊哈勃分析系統(tǒng)等木馬檢測工具或安全軟件僅能分析已知木馬程序潛在的進(jìn)程行為、網(wǎng)絡(luò)行為或注冊表行為等,難以獲取黑客端的相關(guān)信息;此外,該類軟件在分析未知木馬程序時(shí),難以提示安全風(fēng)險(xiǎn),更無法完成取證工作,體現(xiàn)出明顯的滯后性。
為完成HTTP/2類型網(wǎng)站掛馬案件的調(diào)查分析工作,本文提出一種基于主機(jī)內(nèi)部調(diào)查和網(wǎng)絡(luò)信息監(jiān)聽的木馬線索調(diào)查方法。通過對比瀏覽目標(biāo)網(wǎng)站前后進(jìn)程和網(wǎng)絡(luò)連接的變化情況篩選出可疑程序,同時(shí)使用Wireshark捕獲并解密通信數(shù)據(jù),采用兩種方法分析HTTP/2通信數(shù)據(jù),還原木馬惡意程序,確定木馬傳播鏈條,提取相關(guān)線索。
隨著互聯(lián)網(wǎng)極速發(fā)展,Web頁面所包含的元素越來越復(fù)雜,HTTP/1.x協(xié)議傳輸數(shù)據(jù)的性能問題日益突出,且HTTP/1.x協(xié)議自身也存在設(shè)計(jì)缺陷,在此背景下HTTP/2協(xié)議應(yīng)運(yùn)而生。HTTP/2協(xié)議是新一代超文本傳輸協(xié)議,于2015年由互聯(lián)網(wǎng)工程任務(wù)組(IETF)發(fā)布,該協(xié)議基于SPDY協(xié)議,由Hypertext Transfer Protocol version 2-RFC7540和HPACK-Header Compression for HTTP/2-RFC7541兩個(gè)規(guī)范組成[4]。HTTP/2協(xié)議使用二進(jìn)制分幀、多路復(fù)用和頭部壓縮等技術(shù),具有更高的傳輸效率。此外HTTP/2協(xié)議可使用TLS/SSL協(xié)議加密傳輸來增強(qiáng)數(shù)據(jù)安全性。根據(jù)W3Techs網(wǎng)站統(tǒng)計(jì),截止2020年11月,約49.4%的網(wǎng)站使用了HTTP/2協(xié)議進(jìn)行數(shù)據(jù)傳輸。
1. 二進(jìn)制分幀層(Binary Framing Layer)
HTTP/2協(xié)議對HTTP/1.X協(xié)議的數(shù)據(jù)分幀方式進(jìn)行了優(yōu)化和改進(jìn),采用二進(jìn)制幀格式。HTTP/2協(xié)議兼容了HTTP/1.X協(xié)議的核心特征,保留了HTTP/1.X協(xié)議的應(yīng)用語義,包括HTTP方法、HTTP狀態(tài)代碼和首部字段等內(nèi)容。HTTP/2協(xié)議把HTTP/1.X協(xié)議的文本格式轉(zhuǎn)換成了二進(jìn)制幀格式,傳輸消息被分割成了更小的幀和消息,并把幀(Frame)作為傳輸?shù)淖钚挝籟5]。
2. 多路復(fù)用(MultiPlexing)
在HTTP/2協(xié)議下,客戶端和服務(wù)器之間的HTTP請求和響應(yīng)的通信數(shù)據(jù)都是由單個(gè)TCP連接傳輸完成。HTTP/2協(xié)議打破了數(shù)據(jù)流傳輸?shù)臄?shù)量限制,單個(gè)TCP連接可以傳輸任意數(shù)量的雙向數(shù)據(jù)流,且單個(gè)TCP連接上的多條HTTP請求和響應(yīng)報(bào)文可以并行傳輸。在一條TCP連接中包括多條數(shù)據(jù)流,每條數(shù)據(jù)流包含一個(gè)或多個(gè)數(shù)據(jù)幀。每個(gè)幀的首部都有流標(biāo)識(Stream identifier)字段,數(shù)據(jù)流可根據(jù)該字段進(jìn)行重組。
3. 服務(wù)器推送(Server Push)
HTTP/2協(xié)議具有服務(wù)器推送的功能,該功能允許服務(wù)器在響應(yīng)客戶之前,將服務(wù)器端預(yù)設(shè)的資源推送到客戶端,由客戶選擇是否接收。
4. 頭部壓縮(Header Compression)
HTTP/2協(xié)議的消息頭部采用HPACK壓縮算法,以減少頭部信息的空間占用。在HPACK壓縮算法中,客戶和服務(wù)器兩端建立內(nèi)容相同的靜態(tài)字典和動態(tài)字典,靜態(tài)字典包含常見的頭部字段鍵值對,以及常見的頭部字段和值的組合,對于不存在于靜態(tài)字典的鍵值對則會按照哈夫曼編碼添加到動態(tài)字典中[6]。HPACK壓縮方法就是使用這兩個(gè)字典把消息頭部的內(nèi)容索引到字典的值中,從而達(dá)到頭部壓縮的目的。
HTTP/1.X協(xié)議采用明文形式傳輸數(shù)據(jù),給數(shù)據(jù)傳輸帶來了信息泄露風(fēng)險(xiǎn)。為解決這一問題,網(wǎng)景公司于1994年發(fā)布了SSL協(xié)議,該協(xié)議于1999年正式成為互聯(lián)網(wǎng)協(xié)議。TLS協(xié)議是通過對SSL協(xié)議進(jìn)行改進(jìn)和標(biāo)準(zhǔn)化之后形成的,目前已發(fā)布到TLSv1.3版本。HTTP/2協(xié)議基于TLS/SSL協(xié)議傳輸。TLS協(xié)議在傳輸層和應(yīng)用層之間,主要解決信息加密、數(shù)據(jù)完整性校驗(yàn)和通信雙方身份認(rèn)證三個(gè)網(wǎng)絡(luò)安全問題。TLS加密流程圖如下[7]:
在TLS握手階段,客戶端和服務(wù)器相互發(fā)送一個(gè)用于密鑰生成的隨機(jī)數(shù),并且客戶端會向服務(wù)器發(fā)送密鑰交換算法參數(shù)(Pre-master-key)。之后,客戶端和服務(wù)器各自根據(jù)隨機(jī)數(shù)和Pre-master-key生成主密鑰。通信雙方在驗(yàn)證數(shù)據(jù)和主密鑰的正確性后,開始進(jìn)行加密數(shù)據(jù)傳輸。
在Windows系統(tǒng)中,可使用IIS互聯(lián)網(wǎng)信息服務(wù)搭建HTTP/2網(wǎng)站。IIS全稱互聯(lián)網(wǎng)信息服務(wù),是基于Windows操作系統(tǒng)的Web服務(wù)器,目前只有Window 10系統(tǒng)與Window Server 2016系統(tǒng)的IIS Web服務(wù)器支持HTTP/2網(wǎng)站的創(chuàng)建。以Windows 10系統(tǒng)為例,在完成IIS安裝后,需在W3C日志字段界面選擇協(xié)議支持HTTP/2,在創(chuàng)建網(wǎng)站時(shí)選擇HTTPS協(xié)議并添加證書,即可完成HTTP/2網(wǎng)站的創(chuàng)建。
在Linux系統(tǒng)中,可使用Nginx服務(wù)器搭建HTTP/2網(wǎng)站。Nginx服務(wù)器版本應(yīng)高于1.9.5,且安裝http_v2_module,創(chuàng)建HTTPS網(wǎng)站,修改網(wǎng)站配置文件,主要代碼如下:
server { Listen 443 ssl HTTP/2 default_server; server_name www.***.com;
...... ssl_certificate server.crt;
ssl_certificate_keyserver.key;
......
}
在網(wǎng)站掛馬案件中,黑客會使用網(wǎng)絡(luò)技術(shù)或社會工程學(xué)等方式獲取網(wǎng)站漏洞信息,利用漏洞對網(wǎng)站進(jìn)行掛馬,植入的掛馬語句會在用戶瀏覽網(wǎng)站頁面時(shí),自動引導(dǎo)用戶主機(jī)訪問授黑客控制的服務(wù)器,誘使用戶計(jì)算機(jī)下載并運(yùn)行木馬程序,導(dǎo)致用戶主機(jī)被黑客完全控制或重要信息泄露。木馬線索的分析取證是當(dāng)前電子數(shù)據(jù)取證工作的重點(diǎn)和難點(diǎn)。網(wǎng)站掛馬案件的線索調(diào)查方式一般分為兩種:一種是借助反匯編工具對木馬程序文件進(jìn)行逆向分析,從中提取出黑客的相關(guān)線索,這種方法需要一定的專業(yè)知識和操作能力,難度較大。另一種方法是借助Wireshark等網(wǎng)絡(luò)抓包工具監(jiān)聽通信數(shù)據(jù),分析數(shù)據(jù)包并從中提取相關(guān)線索[8]。此外,絕大多數(shù)木馬采用TCP協(xié)議與黑客端通信,通過查看主機(jī)與外部的網(wǎng)絡(luò)連接情況可以分析出木馬線索。本文提出一種基于主機(jī)內(nèi)部調(diào)查和網(wǎng)絡(luò)信息監(jiān)聽的HTTP/2網(wǎng)站掛馬線索調(diào)查方法,通過主機(jī)內(nèi)部調(diào)查初步確定木馬程序及可疑通信連接,在此基礎(chǔ)上,再通過網(wǎng)絡(luò)信息監(jiān)聽進(jìn)一步確定木馬程序文件,還原木馬傳播鏈條,獲取黑客網(wǎng)絡(luò)信息等相關(guān)線索。
當(dāng)前木馬類型眾多,包括DoS攻擊木馬、盜號木馬等,不同類型木馬感染主機(jī)后一般都會通過獲取最高權(quán)限,修改主機(jī)部分設(shè)置,或是調(diào)用系統(tǒng)API函數(shù)等手段來實(shí)現(xiàn)特定目的。可以使用主機(jī)內(nèi)部調(diào)查方法,尋找木馬程序,確定可疑通信連接,初步分析木馬線索。以下為主機(jī)內(nèi)部調(diào)查方法概述:
檢查用戶計(jì)算機(jī)運(yùn)行程序及網(wǎng)絡(luò)活動連接情況。木馬作為惡意程序,在運(yùn)行時(shí)會作為進(jìn)程存在,占用計(jì)算機(jī)內(nèi)存,用戶主機(jī)感染木馬后,會與黑客端建立一條TCP連接,用于數(shù)據(jù)通信,使用Windows任務(wù)管理器即可快速查看當(dāng)前系統(tǒng)運(yùn)行的所有進(jìn)程及內(nèi)存占用情況,也可使用Windows操作系統(tǒng)自帶的命令行程序Cmd.exe查看計(jì)算機(jī)運(yùn)行的程序以及對應(yīng)的網(wǎng)絡(luò)連接活動。使用Cmd運(yùn)行“netstat-nab”命令可查看當(dāng)前計(jì)算機(jī)運(yùn)行的全部程序,以及對應(yīng)的網(wǎng)絡(luò)連接和端口使用信息。對比瀏覽網(wǎng)站前后“netstat-nab”命令的執(zhí)行結(jié)果,找到新增進(jìn)程或網(wǎng)絡(luò)連接,分析異常端口的使用情況,或是常用端口的異常行為情況,從而初步判斷是否有惡意進(jìn)程的開啟,縮小取證范圍。例如瀏覽器進(jìn)程通常使用80或443端口,但如果瀏覽器進(jìn)程使用了3030端口(非知名端口),可初步懷疑木馬進(jìn)程將自身隱藏到合法進(jìn)程中與外界進(jìn)行通信。
初步分析木馬線索后,調(diào)查流程分為兩步:第一步是使用Wireshark解密HTTP/2數(shù)據(jù)包,第二步是使用兩種方法分析HTTP/2通信數(shù)據(jù)。
1. 使用Wireshark解密數(shù)據(jù)
當(dāng)前主流瀏覽器均要求HTTP/2網(wǎng)站在傳輸數(shù)據(jù)時(shí)必須使用TLS協(xié)議對數(shù)據(jù)進(jìn)行加密。Wireshark提供了TLS加密數(shù)據(jù)的解密功能,即可使用Wireshark解密HTTP/2數(shù)據(jù)包。解密HTTP/2數(shù)據(jù)包需要從客戶端獲取預(yù)主密鑰(Pre-masterkey),并將該密鑰與通信雙方產(chǎn)生的隨機(jī)參數(shù)結(jié)合生成加密密鑰,從而解密HTTP/2加密報(bào)文。在解密操作中,需分別創(chuàng)建記錄預(yù)主密鑰和TLS調(diào)試信息的Log文件,將記錄預(yù)主密鑰的log文件設(shè)置為系統(tǒng)變量,將上述兩個(gè)文件放入Wireshark中,通過Wireshark實(shí)現(xiàn)對加密數(shù)據(jù)的解密。
在Wireshark捕獲通訊數(shù)據(jù)時(shí)必須將TLS密鑰信息保存下來,否則將無法解密HTTP/2數(shù)據(jù)包。Wireshark解密HTTP/2數(shù)據(jù)包后會在每個(gè)HTTP/2流傳輸結(jié)束統(tǒng)一進(jìn)行解密,生成一個(gè)解密報(bào)文,在每個(gè)HTTP/2流最后一個(gè)數(shù)據(jù)包的HyperText Transfer Protocol 2 層可查看該HTTP/2流傳輸數(shù)據(jù)的明文內(nèi)容。
2. 使用Wireshark分析通信數(shù)據(jù)
在使用網(wǎng)絡(luò)抓包方法進(jìn)行木馬取證分析前,應(yīng)先關(guān)閉不必要的網(wǎng)絡(luò)通信程序,減少干擾性的網(wǎng)絡(luò)通信數(shù)據(jù),構(gòu)建比較純凈的網(wǎng)絡(luò)環(huán)境,再使用Wireshark抓取染毒計(jì)算機(jī)訪問目標(biāo)網(wǎng)站時(shí)產(chǎn)生的通信數(shù)據(jù)。使用Wireshark分析HTTP/2網(wǎng)站掛馬線索的方法分為兩步:
第一步:利用HTTP/2協(xié)議具有多路復(fù)用的特性,對Wireshark抓取的TCP數(shù)據(jù)流進(jìn)行分析。同一域名服務(wù)器和客戶端之間的請求和響應(yīng)數(shù)據(jù)都是由單個(gè)TCP連接傳輸完成,并且沒有傳輸數(shù)據(jù)流的數(shù)量限制,這樣在TCP連接層面上過濾數(shù)據(jù)包就會使抓取的數(shù)據(jù)條理清楚,更容易發(fā)現(xiàn)IP地址的變化情況。實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)客戶端使用HTTP/2協(xié)議傳遞數(shù)據(jù)時(shí),黑客端也必須使用加密方式傳輸數(shù)據(jù)。在Wireshark中使用“tcp.streameq n and http2”(n=0,1,2,3……)條件過濾捕獲的數(shù)據(jù)包,查看客戶端和外界的通信流,重點(diǎn)是尋找網(wǎng)站主目錄傳輸所在的TCP流,之后使用“tcp.streameq n+1 and http2”查看客戶端與其他不明服務(wù)器的通信數(shù)據(jù)流。對不明服務(wù)器傳輸?shù)乃形募M(jìn)行提取,依次將這些文件放入騰訊哈勃等檢測工具進(jìn)行木馬分析,記錄命中的木馬程序。
第二步:根據(jù)Referer字段分析木馬線索。在HTTP請求報(bào)文首部包含一個(gè)Referer字段,這個(gè)字段記錄了跳轉(zhuǎn)到該網(wǎng)頁的前置URL信息,通過該字段進(jìn)行遞歸分析可以找到傳輸木馬程序的前置數(shù)據(jù)包、構(gòu)建網(wǎng)站間邏輯、找到網(wǎng)站掛馬位置并還原出黑客掛馬鏈條。一般來說,主頁是網(wǎng)站被訪問次數(shù)最多的頁面,因此,黑客為了增加木馬下載的頻率,大多會選擇在網(wǎng)站主頁掛馬,所以在調(diào)查時(shí)應(yīng)當(dāng)先提取網(wǎng)站主頁并對其進(jìn)行分析[9]。由于木馬程序的傳輸一般是在HTTPGET 數(shù)據(jù)包中,因此先按上文尋找不明傳輸TCP數(shù)據(jù)流,確定傳輸木馬程序的HTTP-GET數(shù)據(jù)包,由該數(shù)據(jù)包的Referer字段確定前置網(wǎng)頁數(shù)據(jù)包,直至遞歸找到用戶訪問目標(biāo)網(wǎng)站數(shù)據(jù)包,提取該數(shù)據(jù)包的內(nèi)容,使用關(guān)鍵字過濾的方法找到掛馬語句。
在使用Wireshark捕獲、分析瀏覽目標(biāo)HTTP/2網(wǎng)站產(chǎn)生的通信數(shù)據(jù)后,仍需使用Wireshark抓取感染主機(jī)與黑客端的通信數(shù)據(jù),并針對不同網(wǎng)絡(luò)協(xié)議設(shè)置過濾關(guān)鍵字,獲取木馬線索調(diào)查的相關(guān)信息。例如,針對使用ESMTP或HTTP協(xié)議傳輸數(shù)據(jù)的盜號木馬,在Wireshark中使用GET或POST等關(guān)鍵字搜索捕獲的數(shù)據(jù)包,分析并確定木馬的竊取信息行為,完善案件證據(jù)鏈條。
某網(wǎng)站疑似被掛馬,導(dǎo)致部分計(jì)算機(jī)在瀏覽該網(wǎng)站時(shí)感染木馬。在測試虛擬機(jī)上(與染毒主機(jī)配置相同)瀏覽疑似被掛馬的目標(biāo)網(wǎng)站,使用基于主機(jī)內(nèi)部調(diào)查和網(wǎng)絡(luò)信息監(jiān)聽的方式,還原木馬程序和木馬傳播鏈條,分析網(wǎng)站被掛馬位置,確定黑客端信息。分析及取證流程如下:
使用測試虛擬機(jī)瀏覽器訪問www.ait*****logy.com目標(biāo)網(wǎng)站,在瀏覽前后使用Cmd運(yùn)行netstat -nab命令,發(fā)現(xiàn)新增多條Fi****x.exe進(jìn)程的TCP連接和一條1.exe進(jìn)程的TCP連接(220.**.***.44:49539到212.**.**.245:1604),其 中Fi****x.exe為瀏覽器進(jìn)程,而1.exe為不明進(jìn)程,所以初步懷疑1.exe為惡意進(jìn)程,212.**.**.245為黑客端IP地址。
第一步:在Wireshark文件主目錄中新建兩個(gè)文件,分別取名為sslkeylog.log和ssl.log;
第二步:打開系統(tǒng)屬性設(shè)置界面,添加環(huán)境變量,變量名取名為SSLKEYLOGFILE,變量值選擇為sslkeylog.log文件;
第三步:更改Wireshark(v3.4.0 漢化版)配置文件,在“編輯”中選擇“首選項(xiàng)”,在Protocols選項(xiàng)中選擇TLS,在TLS debug file 中添加上述ssl.log文件,在(Pre)-Master-Secret log filename中添加上述sslkeylog.log文件。在“分析”選擇中的啟用協(xié)議選項(xiàng)里打開HTTP/2選項(xiàng)。設(shè)置完畢,重新啟動Wireshark即可。
瀏覽目標(biāo)網(wǎng)站的同時(shí)使用Wireshark抓取數(shù)據(jù)包AI.pacpng,首先使用“tcp.streameq 0 and http2”條件過濾當(dāng)前數(shù)據(jù)包,找到過濾后的第二個(gè)數(shù)據(jù)包(編號為No.28)為index.html的HTTP-GET數(shù)據(jù)包,右鍵追蹤HTTP/2字節(jié)流,過濾后的HTTP/2字節(jié)流最后一個(gè)數(shù)據(jù)包(編號為No.895)即為該數(shù)據(jù)流的解密包,在解密包HTTP/2層的Line-based text data字段查看解密數(shù)據(jù),內(nèi)容與目標(biāo)網(wǎng)站主頁面index.html代碼相同,確定60.***.***.216為目標(biāo)網(wǎng)站IP地址。
接著,查看“tcp.streameq 1 and http2”過濾數(shù)據(jù)包,發(fā)現(xiàn)測試虛擬機(jī)與不明IP地址(212.**.**.245)的通信數(shù)據(jù),編號為1191、1193和1236的數(shù)據(jù)包分別為1.exe、2.exe和3.exe三個(gè)文件的HTTP-GET請求報(bào)文,且該HTTP/2數(shù)據(jù)流完整傳輸了1.exe、2.exe和3.exe三個(gè)程序文件。這與初步分析中的可疑進(jìn)程和網(wǎng)絡(luò)連接高度吻合,遂懷疑1.exe為木馬程序。選中1.exe的HTTP-GET數(shù)據(jù)包,追蹤HTTP/2字節(jié)流,找到該數(shù)據(jù)流最后一個(gè)數(shù)據(jù)包(編號為No.2306),提取HTTP/2層的Data字段,右鍵導(dǎo)出分組字節(jié)流,還原1.exe文件。按上述步驟依次將這三個(gè)文件提取并放入騰訊哈勃工具進(jìn)行分析,命中1.exe為木馬程序。
最后,在Wireshark中使用IP地址(212.**.**.245)進(jìn)行過濾,可以發(fā)現(xiàn)該計(jì)算機(jī)訪問目標(biāo)網(wǎng)站并接收1.exe文件之后,與IP地址212.**.**.245進(jìn)行了大量TCP通信。分析過濾后的通信報(bào)文,發(fā)現(xiàn)傳輸數(shù)據(jù)具有明顯的加密特征,由此可以判斷,IP地址為212.**.**.245的計(jì)算機(jī)對測試虛擬機(jī)進(jìn)行了木馬攻擊。
首先分析1.exe文件的HTTP-GET數(shù)據(jù)包,該數(shù)據(jù)包的Referer字段為https://www.zh****qu.com/,右鍵該數(shù)據(jù)包追蹤TCP流(tcp.streameq 1),使用關(guān)鍵字(zh****qu)搜索,定位到編號1137的TLS數(shù)據(jù)包,該數(shù)據(jù)包為client hello報(bào)文,說明https://www.zh****qu.com/的HTTP-GET數(shù)據(jù)包在該數(shù)據(jù)流的應(yīng)用層協(xié)議即HTTP/2協(xié)議數(shù)據(jù)流中;接著使用“tcp.streameq 1 and http2”過濾條件返回對應(yīng)的HTTP/2數(shù)據(jù)流,發(fā)現(xiàn)編號為1146的數(shù)據(jù)包為https://www.zh****qu.com/網(wǎng)站index.html的HTTP-GET數(shù)據(jù)包,同樣分析該數(shù)據(jù)包的Referer字段,為https://www.ait*****logy.com/,此URL恰好為目標(biāo)網(wǎng)站的URL,這 里 說 明https://www.zh****qu.com的 前 置 網(wǎng) 站 為https://www.ait*****logy.com的 主 頁;轉(zhuǎn) 到 傳 輸 目 標(biāo) 網(wǎng) 站 的HTTP/2數(shù)據(jù)流中(tcp.streameq 0 and http2),尋找index.html的HTTP-GET數(shù)據(jù)包(編號為No.28),追蹤該數(shù)據(jù)包的HTTP/2流;最后對提取的網(wǎng)站代碼界面進(jìn)行相應(yīng)的關(guān)鍵字(zh****qu)搜索,查看到iframe掛馬語句
用 戶 首 先 訪 問www.ait*****logy網(wǎng) 站(IP地 址:60.***.***.216),但該網(wǎng)站被黑客掛馬,植入的Iframe掛馬語句使得用戶在不知情的情況下訪問www.zh****qu.com網(wǎng)站,該網(wǎng)站誘使用戶下載并運(yùn)行1.exe文件。黑客主機(jī)IP地址為212.**.**.245,1.exe為木馬程序。木馬程序1.exe運(yùn)行后,成功感染用戶計(jì)算機(jī),木馬傳播鏈條分析結(jié)果如圖8所示。
當(dāng)前HTTP/2網(wǎng)站在傳輸數(shù)據(jù)時(shí)都采用TLS協(xié)議加密通信數(shù)據(jù),由于無法對通信數(shù)據(jù)進(jìn)行有效解密,影響了此類案件的調(diào)查分析工作。本文研究了HTTP/2網(wǎng)站掛馬案件的線索調(diào)查和分析方法,使用Wireshark軟件解密HTTP/2類型網(wǎng)站加密通信數(shù)據(jù),找到并還原出木馬程序。利用HTTP/2多路復(fù)用的特點(diǎn)簡化Wireshark分析多條TCP連接的流程,利用Referer字段還原出木馬傳播鏈條,定位被掛馬頁面,提取相應(yīng)惡意代碼。網(wǎng)站掛馬攻擊成功實(shí)施之后,受害者主機(jī)感染的木馬程序會將竊取的敏感信息發(fā)送給黑客主機(jī),接下來,筆者計(jì)劃對這類通信數(shù)據(jù)的分析方法進(jìn)行深入研究,以完善網(wǎng)站掛馬案件的證據(jù)鏈條。