為什么要取證
附錄2:取證思路
附錄3:取證分析綱要
注:在上機取證的同時應該對操作的每個步驟進行截圖保存,方便作為后續寫報告的依據。
一、網絡、進程檢測
通過網絡連接情況和程序進程對主機進行檢測取證,直接定位出可疑文件。
1.1、網絡情況查看
1.1.1 網絡連接查看
使用netstat -ano查看當前所有的網絡連接。通過對IP地址查看定位異常請求。
通過pid定位程序位置:wmic process |findstr pid
1.1.2 木馬心跳或網絡請求查看
可以使用LiveTcpUdpWatch對網絡情況進行查看(可后臺運行半小時查看結果),該軟件能記錄DNS請求(用于捕捉木馬心跳—非持續性連接的網絡進程),網絡連接等情況,通過遠程連接IP(流量獲取或者其他途徑)定位到木馬的PID,結合PChunter或任務管理器進行木馬定位。
1.1.3 全局流量查看
若有需要可以使用Wireshark對當前網絡流量進行監控,主要是盡可能多的收集攻擊者信息和潛在的木馬連接信息。
1.2 進程檢測
注意點:不建議使用任務管理器進行系統進程檢查,因為可供分析的維度較少,且容易被進程名欺騙,操作系統允許相同名稱但不同執行路徑的進程同時存在。
查看本機所有進程建議使用PCHunter進行查看,信息比較全,可以同時看到進程名稱和程序路徑。
若不方便使用外部工具可以使用wmic命令查看進程信息:
wmic process get caption,commandline,creationDate,executablepath,handle,handleCount
在cmd命令行中復制以上命令并回車執行。
打開C:yanlianprocess.txt,可看到6列內容,含義如下所示:
- caption:進程名;
- commandline:進程名、程序執行路徑、進程執行參數;
- creationDate:進程啟動時間(格式為:年月日時分秒);
- executablepath:程序執行路徑;
- handle:進程pid;
- handleCount:該進程的父進程pid。
可根據進程名、進程執行參數、進程啟動時間、程序執行路徑判斷是否存在異常,并根據異常點進行深入分析。
1. 3 DLL劫持檢測
木馬程序通過服務、dll、com均可劫持注入到程序中啟動。
示例:以svchost及dll劫持為例:
svchost.exe主要作用是將動態鏈接庫(后綴為.dll的文件)以服務的方式運行。svchost.exe對系統的正常運行非常重要,是不能被結束的。
注意點:
- 在入侵檢查方向,更傾向于將svchost.exe作為一個單獨的持久化檢查項目,而非系統服務,因為檢查方法完全不同;
- 同時svchost.exe不作為常規檢查項,一般根據【現象檢查】的結果尋找惡意程序。
存在異常監聽端口,pid指向svchost.exe程序,需檢查是否存在異常。通過第三方工具ProcessExplorer(簡稱pe)檢查svchost.exe程序。
示例:
通過檢查已監聽端口,發現“異常”監聽,pid指向800。
打開任務管理器,發現pid 800是svchost.exe程序,由于該程序的特性,需使用第三方工具pe進行檢查。
通過pe工具可發現pid 800是由服務啟動,根據啟動路徑可發現該程序是由正常路徑啟動,但程序是否被替換未知,啟動的服務是netsvcs(小白殺手,當初虐了我n久),該服務下掛12個子服務。
在pe中雙擊該程序,點擊【tcp/ip】,可發現49154端口是服務schedule監聽。
點擊【services】,可發現schedule服務啟動的動態鏈接庫絕對路徑是c:windowssystemc32schedsvc.dll,從而發現49154端口是哪個程序正在監聽。
通過點擊pe的功能菜單模塊(下圖的齒輪圖標)【view handles】可顯示該程序所調用的clsid。
如存在啟動、點擊某個程序后惡意進程重新啟動的情況,則可以對com劫持進行檢查。
通過點擊【view dlls】可顯示該程序所調用的dll文件。
也可以通過排序可直觀的看到是否存在dll劫持。
1.4 進程注入檢測
進程注入是一種廣泛使用的躲避檢測的技術,通常用于惡意軟件或者無文件技術。其需要在另一個進程的地址空間內運行特制代碼,進程注入改善了不可見性,同時一些技術也實現了持久性。
進程注入檢測通常情況需要對主機的網絡情況進行檢測發現,可以使用livetcpudpwatch工具進行監測。
通過其異常請求的pid,利用Process Explorer對該PID進行查看,并使用將該線程內存dump出來。
使用Process Explorer查看PID進程需要等待一段時間,當木馬發起網絡請求時才會出現以下TCP/IP信息。
使用strings、IDA或者其他內存分析工具進行線程分析。
二、可疑用戶操作檢測
2. 1 用戶檢測
- 異常用戶的創建,登陸,刪除(操作留在后面單獨講解)
- 正常用戶的異常登陸,操作。
- 隱藏賬戶檢測
wmic useraccount get name,SID
可以檢測出影子用戶和注冊表隱藏的用戶(net user命令搜索容易漏過這些特殊用戶):
查看管理員分組有哪些用戶 net localgroup administrators:
查看xxx用戶的創建時間和上?次登陸時間net user xxx
進入C:/Users ?件夾,查看哪些用戶登陸了系統,以及黑客沒有清理干凈的惡意用戶。
進入C:Users%UserName%AppDataRoamingMicrosoftWindowsRecent
文件夾,查看當前用戶最近的操作記錄(可執行程序的執行情況不會被記錄)
2.2 登陸檢測
1. 什么時間誰連接了被黑主機
2. 什么時間被黑主機連接了誰
注意點:主機日志默認記錄20Mb,達到最大值時優先覆蓋舊事件,同時網絡安全法要求日志至少保存6個月以上。
分遠程桌面連接和IPC連接兩種方式討論。
遠程桌面連接方式:
針對要點1,可以使用WinLogView工具,會列出系統中所有曾經登陸過的主機,包含本地登陸和遠程登陸,針對原有的用戶需要注意用戶的登陸時間段是否在工作時間段內。(LogonType:10 表示遠程登陸,2 表示本地登陸)。
針對要點2,可以使用查看注冊表HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault(有空格,注意引號擴起來)展示最近10次本機成功建立的RDP連接。
IPC連接方式:
針對要點1,查看Windows安全日志,查找4624,登陸類型為3而且源網絡地址不是來自于127.0.0.1的安全事件。
其實在這里登陸類型為 10 表示的是 RDP 登陸
也可以通過FullEventLogView批量加載主機日志,然后通過4624等時間ID進行日志篩選,相對主機直接查看日志更直觀。
針對要點2,可以通過注冊表進行查看
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerTypedPaths
2.3 文件檢測
2.3.1 近期操作文件
- 近期的可執行文件操作
- 近期的文件操作
- 近期的瀏覽器操作
利用AppCompatCacheParser工具檢查近期的可執行文件操作(由于該記錄以非文本方式保存在注冊表中,很多攻擊者不會清理該文件夾):
根據時間倒敘,重點排查近期或者被攻擊時間段的程序執行記錄。
近期的文件操作可以直接使用lastactivityview方便查看,優點是收集的信息很完整,可以導出html。
注意,進行C:/User/xxx/Recent目錄也能看到用戶最近頻繁操作的一些文件,但并不是所有操作,信息不夠全面
近期所有瀏覽器的操作記錄使用BrowsingHistoryView?并查看,可以根據時間短對記錄進行篩選。
2.3.2人工檢查目錄
這些路徑經常作為攻擊者內網滲透的臨時工作目錄,以及木馬啟動、解壓路徑可以重點檢查。
C:Perflogs C:Perflogsadmin C:ProgramData C:UsersPublic C:Users當前用戶 C:WindowsTemp C:Users當前用戶AppDataRoaming C:Users當前用戶AppDataLocalTemp C:Users當前用戶AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp |
2.3.3 黑客工具
- 木馬文件
- Webshell文件
- 黑客工具
- HTTP隧道
使用惡意軟件全盤掃描工具比如睿眼主機取證溯源系統【商業化產品對系統進行全盤掃描,能探測出木馬文件和黑客工具的所在位置。
進入對應的文件夾查看有無其他黑客工具,注意掃描到文件的創建時間,以及該文件對應的創建者信息,可以關聯出黑客的作案時間以及黑客用戶。
WebShell 文件可以使用D盾Webshell查殺工具
同時記錄Webshell的名稱,從Web訪問日志中關聯是否存在HTTP隧道腳本和其他WebShell文件。
三、持久化檢測
持久化檢測主要是檢測木馬的啟動方式等。
3.1 啟動目錄
C:Users當前用戶AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
3.2 注冊表啟動項
開機啟動項直接運行msconfig進行查看,簡單檢查有無未知啟動項。
如需要導出分析,使用以下命令將自啟動項導出檢查。
// 導出當前用戶啟動項
reg export HKCUSoftwareMicrosoftWindowsCurrentVersionRun c:yanlianautorun1.reg
// 導出系統啟動項
reg export HKLMSoftwareMicrosoftWindowsCurrentVersionRun c:yanlianautorun2.reg
reg export HKLMSoftwareMicrosoftWindowsCurrentVersionRunonce c:yanlianautorun3.reg
示例:
輸入命令將自啟動項配置文件導出。
檢查導出的自啟動項配置是否存在異常。
3. 3 開機啟動腳本
運行 gpedit.msc 查看組策略:
3.4 計劃任務
計劃任務直接使用AutoRuns 進行檢測,根據 ImagePath 配合 Publisher 判斷是不是木馬程序。
3.5 映像劫持檢測(Shift后門)
通過AutoRuns的ImageHiJack進行檢測,被替換的setch.exe 會直接顯示出來。
另外可以對程序提交VT進行檢測:
根據VT的評分判定是否可能是木馬程序。
3.6 環境變量檢測
環境變量用于將系統路徑變量化,如被黑客利用則會以最高權限運行惡意程序,例如將環境變量%systemroot%變更為其他路徑,同時建立system32文件夾并將惡意程序通過服務啟動。
注意點:環境變量%systemroot%修改后需進行恢復,否則系統無法正常重啟。使用set命令將環境變量導出檢查。
示例:
輸入命令將環境變量配置文件導出。
檢查導出的環境變量配置是否存在異常。
3.7 系統服務檢測
查看本機所有的服務可以使用AutoRuns ,好處比較清晰列出了進程可執行程序路徑和證書信息,此外還可以聯動VT ,直接云判斷(點擊Option-Scan Option調用VT)可執行程序是否是惡意程序。