劉祿源
(中國刑事警察學院 網絡犯罪偵查系,遼寧 沈陽 110854)
網絡入侵行為嚴重威脅著互聯網安全,網警實戰部門需加大對網絡入侵型案件的打擊力度,加強網絡空間治理,構建清朗的網絡空間,維護網絡安全。偵辦網絡入侵案件是網警部門的一項重要工作。采用有效的方法,加大對網絡入侵型案件的打擊力度,加強網絡空間治理,構建清朗的網絡空間,維護網絡安全。在網絡入侵案件中,網絡入侵者必會留下痕跡,網絡犯罪偵查需要對這些痕跡進行提取并固定為電子數據證據。網站源文件、網站服務器日志、木馬文件是辦理網絡入侵案件中獲得線索、提取證據的主要來源。采用有效的偵查方法,可以大大提高此類案件的偵辦效率[1]。
網絡入侵常常伴隨著植入木馬行為,對提取到的疑似木馬文件進行分析,確定其功能、危害,甚至可以得到木馬控制者的密碼、IP等關鍵信息,為案件充實線索提供判斷依據[2]。
首先確定目標受害網站,提取網站源代碼文件與網站的服務器日志,結合網站源代碼文件對日志進行分析,提取可疑的訪問信息,主要有IP地址、訪問時間、訪問行為等,確定了疑似木馬文件后,定位木馬文件的位置,對木馬文件進行處理分析。網站入侵案件的線索收集步驟示意圖如圖1所示。

圖1 網站入侵案件的線索收集步驟
網站源代碼文件是網站運行的基礎,常見的網站開發腳本語言有ASP、JSP、PHP等。網站服務器日志是記錄Web服務器接收處理請求以及運行時錯誤等各種原始信息的以.log結尾的文件,它記錄了網站訪問者的訪問時間、訪問次數、IP地址等信息[3]。
(1)查看分析網站源代碼文件
在網站代碼中尋找可疑文件,可疑文件的特征主要有以下幾種:
①文件格式可疑:網站所使用的編程語言為ASP代碼,但是文件目錄中出現了PHP、JSP代碼文件;
②文件命名可疑:一般正常的文件命名是有必要的含義與規律的,如index、config等。若出現類似xsasii.php、XXX.asp等命名極不規范的文件,則這些文件很可能是木馬文件;
③文件仿冒:容易和正常文件混淆的文件名,如indexx.asp。
(2)分析網站服務器日志
結合網站源文件,找出可疑文件后,在日志中定位可疑URL,可疑URL的格式一般為“網站網址+網站某個目錄+可疑文件名+參數”,如:“www.xxx.cn/loggers/scriptfrom24.php”,使用日志分析軟件(如Web Log Exploer),通過搜索功能,定位此URL的訪問記錄,收集這些訪問行為的來源IP地址、訪問時間、訪問次數、訪問參數等信息。然后查看可疑文件的屬性,收集其創建日期、修改日期、訪問日期,根據日期信息,到日志中查看相應時間段的可疑訪問行為(如上傳、注入操作)。另外需指出的是,有些木馬文件在上傳時會修改其日期屬性,其日期屬性可能是篡改后的,需考慮此情況[4]。
當一個網站被入侵之后,入侵者通常會留下后門木馬,便于將來繼續控制該網站。木馬制作者為了使木馬通過殺毒軟件的檢測,增加代碼閱讀難度,對木馬程序代碼進行了代碼混淆、加密、壓縮等處理。直接對這種經過復雜化處理的木馬文件進行分析閱讀往往不可行,必須經過縝密細致的逆向處理,將復雜代碼簡單化,逐步進行解密、調試,才可以將木馬的功能分析出來[5]。
對經過混淆處理的復雜木馬程序,可以通過以下五個步驟進行逆向分析處理:代碼結構整理、混淆字段替換、關鍵節點梳理、運行環境搭建、本地復現分析。木馬逆向分析的各個步驟及其作用如圖2所示。

圖2 木馬逆向分析流程示意圖
經過混淆處理的木馬程序,其代碼格式被打亂。利用代碼編輯工具,經過查找替換處理,將結構混亂的代碼初步格式化,利于下一步的分析處理。對于經過了加密、壓縮處理的代碼,需要針對其加密、壓縮方法,對其進行解密、解壓。
木馬制作者常采用代碼混淆技術,以通過殺毒軟件檢驗。目前常用的一種代碼混淆方法是將代碼中關鍵字段(如類名、變量名、函數名等)的英文字母轉換為ASCII擴展字符。對這些難以處理的混淆代碼進行替換,并以易讀易懂的方式重新命名,可以極大地提高代碼可讀性。有些木馬制作者為了進一步增加代碼閱讀難度,會在代碼中插入大量垃圾注釋,可以使用正則表達式去除掉這些不需要的部分。
木馬程序中的關鍵節點,一般是指函數調用、return返回值、參數傳遞、輸入、輸出、循環語句、判斷語句等代碼位置。在此步驟中,對這些關鍵節點進行梳理,厘清各函數的調用關系、函數功能、參數含義。根據梳理出的函數關系,合理設置斷點可以極大提高手動調試的效率[6]。
為了達到本地調試的目的,需要搭建好木馬所需的運行環境。木馬文件為PHP格式的,可以使用一些集成化環境配置工具(例如phpStudy、XCMPP、MAMP等軟件)快捷便利地將運行環境搭建起來。木馬文件為ASP格式的,需安裝配置IIS服務。配置過程中需注意使用的服務類型、開啟服務的端口等信息。
運行環境搭建配置好后,將處理過的木馬文件導入環境中,結合步驟“關鍵節點梳理”,對木馬文件手動調試分析。
某本地生活服務網站租用國內某服務器提供商的服務器,網站管理員在運維過程中發現網站源文件中出現了可疑文件,部分文件信息有改動痕跡,懷疑受到了網絡入侵。在取得網站源代碼文件與網站服務器日志后,利用上文提出的案件偵辦方法,對此網站進行偵查取證工作。
查看被入侵網站的源代碼文件,經分析確定這是一個主要由ASP腳本語言編寫后臺代碼的網站。經查找,在其文件目錄中發現了命名為“scriptfrom24.php”、“xx.php”、“safecode.phpd”的PHP腳本文件。查看“scriptfrom24.php”的屬性信息。確定該文件的創建時間與修改時間均為2018年11月18日上午1:24:04。
使用Web Log Exploer日志分析工具,在網站服務器日志中搜索“scriptfrom24.php”文件的訪問記錄,結合可疑文件的創建時間與該URL的初次訪問時間,獲取到訪問次數、IP地址等線索。訪問時傳遞的參數為q=1,key=sdfadsgh4513sdGG4353 41FDGWWDF GDFHDFGDSFGDFSGDFG。日志中可疑URL的訪問記錄如圖3所示。

圖3 日志中可疑URL的訪問記錄
以上一小節得到的疑似PHP木馬文件為例,通過手動調試的方法,對該疑似木馬文件的功能進行分析。該文件打開后為不具備可讀性的亂碼。
(1)代碼結構整理
使用EmEditor軟件打開該木馬文件。查找“;”字符,將其全部替換為“; ”,為了正確識別回車符,勾選使用轉義序列功能。在除了語句結尾位置以外的其他位置“;”也可能存在,例如for循環語句中就存在“;”符號,需要對這種特殊情況進行手動處理。代碼中存在一個或多個函數,使用查找功能,以“function”為關鍵字,找到函數定義字段function所在的位置,函數名之后第一對花括號“{ }”之間的內容為此函數的內容部分,將“{ }”前后做換行處理,并將函數內各行代碼對齊,統一右移四個字符長度。
(2)混淆字段替換
該木馬程序中的變量、參數、函數名等都經過了編碼處理,使用EmEditor軟件的批量替換功能,將亂碼替換為簡潔易懂的名稱。將變量替換為“var1”、“var2”、“var3”...等,將函數名替換為“fun_1”、“fun_2”、“fun_3”...等,將參數替換為“para1”、“para2”、“para3”...等,將類名替換為“Class1”、“Class2”、“Class3”...等。
雖然木馬經過了混淆處理,但其原始程序中的運算符(如‘+’、‘-’、‘*’、‘=’、‘/’、‘%’等)、基礎語句(如for循環語句、while語句循環、if else語句、switch語句等)、特殊符號(如‘$’、‘;’、‘,’、‘.’等)在一般情況下會保留下來不做處理。在進行亂碼字段替換時,需予以注意,避免替換錯誤。
對于“/* */”之間的注釋,使用正則表達式“/*{1,2}[sS]*?*/”將其進行識別,然后批量替換為回車符“ ”。
(3)關鍵節點梳理
經過以上兩個步驟的處理,該木馬程序的大致代碼結構已經清晰。分析程序中的各個函數,找到其return返回值所在位置,使用echo輸出方式,將各個函數的返回值輸出,根據輸出情況對函數的功能進行判斷分析。可以靈活使用echo輸出功能對代碼進行逐行分析,如有必要可以逐行使用echo,對變量、函數的賦值、運算過程進行細致梳理。
(4)運行環境搭建
本次分析所采用的實驗機操作系統為Mac OS(10.14.4版本),瀏覽器為Google Chrome (61.0版本),使用MAMP Pro(5.2版本)軟件搭建網站集成環境。把處理后的木馬文件重命名為“test.php”,拷貝至“/Applications/MAMP/htdocs”路徑下。
(5)本地復現分析
將經過處理的木馬文件添加到運行環境之后,開啟Web服務,在瀏覽器中訪問“http://127.0.0.1:8888/test.php”,即可查看其運行結果。
使用瀏覽器的查看源代碼功能,可以看到經過解釋器解釋后的代碼,根據其特征,初步判斷此木馬為一個多功能WebShell后門。根據password字段,找到了此后門木馬的登錄密碼。但密碼經過了32位MD5加密。使用MD5解密工具,解出登錄密碼。文件中的后門登錄賬號與密碼信息如圖4所示。
使用解出的后門登錄密碼,訪問被掛馬網站的木馬URL,輸入密碼后成功進入此后門木馬程序??梢钥吹?,通過此WebShell,可以對被控制服務器進行文件管理、反彈Shell、獲取系統信息、執行命令等高權限操作。實際木馬執行后的界面如圖5所示。
至此,經過一系列的分析,已成功提取到了此案件的入侵者信息(IP地址、入侵時間、行為等)以及入侵者植入的木馬文件,確定了該木馬文件的功能。接下來就可以依據以上信息進行落地偵查,并將提取到的證據進行保全了。

圖4 文件中的后門登錄賬號與密碼信息

圖5 實際木馬執行后的界面
傳統的網絡入侵案件偵查大多從日志入手,往往忽略對木馬的分析處理。通過網站源文件與日志分析、木馬文件逆向分析,可以提取到多種有效線索,對可疑木馬文件進行驗證,確定木馬的功能,從中提取有價值的信息,為網絡入侵類案件的偵查、取證、鑒定工作帶來幫助。將網絡入侵痕跡偵查與木馬逆向分析相結合,探尋線索交叉點,互相佐證,提高了此類案件偵辦效率與成功率。
實現網站源文件與日志分析自動化、木馬逆向處理模型化是未來網絡入侵案件偵查研究的發展方向。網絡入侵案件的痕跡掩蓋手段、木馬隱藏與加密混淆手段還有很多,還需更加深入地進行研究。