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