恶意样本分析流程记录
在拿到一個惡意樣本的時候,怎樣才能了解它的基本功能呢,本文在學習《惡意代碼分析實戰》后對惡意樣本分析流程進行簡單記錄。
惡意樣本分析有兩類基本的方法,靜態分析和動態分析,靜態分析是在沒有進行代碼運行時對其進行分析,而動態分析則需要運行惡意代碼。靜態分析又包括靜態分析基礎技術和高級技術,動態分析也有動態分析基礎技術和動態分析高級技術。靜態分析基礎技術包括檢查可執行文件但不查看具體指令的一些技術,可以確定一個文件是否是惡意,提供其有關功能的一些信息;動態分析基礎技術涉及運行惡意代碼并觀察系統上的行為以移除感染,產生有效的檢測特征碼;靜態分析高級技術則是對惡意代碼內部機制的逆向工程,通過將可執行文件裝載到反匯編器中查看程序指令來發現惡意代碼做了些什么;動態分析高級技術使用調試器來檢查一個惡意可執行程序運行時刻的內部狀態,提供了一條從可執行文件中抽取詳細信息的路徑。
靜態分析基礎技術
1. 反病毒引擎掃描
在拿到一個惡意樣本時可以先使用多個反病毒軟件掃描這個文件,但注意反病毒軟件只是依靠現有的已知惡意代碼可識別片段的特征數據庫(病毒文件特征庫),以及基于行為與模式匹配分析(啟發式搜索)來識別可疑文件。因此對于一些罕見的或者新型病毒,這些反病毒引擎可能并不能掃描出來。同時對于不同的反病毒軟件可能使用了不同的特征庫和啟發式檢測方法,因此對于一個可疑惡意樣本可以使用多個引擎進行掃描是非常有必要的。
類似于VirusTotal(https://www.virustotal.com)允許上傳樣本并調用多個反病毒引擎來進行掃描并生成一個報告,提供了所有引擎對這個樣本的識別情況。
2. 查找字符串
使用strings程序可以查看可執行文件的可打印字符串。
使用strings軟件的時候雙擊打開該程序會直接退出,要使用cmd命令行窗口來打開該程序并執行。
strings 惡意樣本名稱 即可查看該惡意樣本所有字符串。
3.識別加殼與混淆惡意代碼
通過加殼或混淆技術往往可以讓文件更難被檢測和分析。
加殼可以使用PEiD來進行檢測,在加殼的情況下它通常還可以識別出使用的是哪個加殼器。
對于使用upx來加殼的惡意樣本可以直接下載upx工具(https://upx.sourceforge.net/)來進行脫殼,使用以下命令
upx -d 惡意樣本名稱
或者:
upx -o newfilename -d originalfilename
這里的newfilename表示脫殼后文件的名稱(自己設置一個就行),originalfilename表示需要脫殼的文件的名稱。
upx是在cmd命令行窗口中執行的!!!
注意PEID插件會在沒有警告的情況下運行惡意樣本,因此必須確保使用PEiD前建立一個安全的執行環境。
4.鏈接庫與函數
通過了解樣本調用的函數可以簡單推測出樣本的功能,而使用Dependency Walker工具就可以看到可執行文件的動態鏈接庫。
5. PE文件頭
PE文件頭比起僅僅關注導入函數,可以獲得更多信息,PE文件格式包含一個文件頭和一系列的分節,文件頭中包含有關文件本身的元數據。可以使用PEview來分析PE頭文件。
其中IMAGE_FILE_HEADER項中包含文件的基本信息如時間戳TimeDateStamp,但不一定準確。通過IMAGE_SECTION_HEADER中,Virtual Size表示加載這個分節到內存需要分配的空間,和size of Row Data相比較,如果差距太大很可能就存在加殼的情況。
6. 查看資源節
使用Resource Hacker可以查看樣本的資源分節包括字符串,圖標和菜單。
動態分析基礎技術
1.建立安全環境如虛擬機!!!
在執行動態分析時最好在虛擬機中執行。
2.使用沙箱進行惡意樣本分析
3.運行惡意代碼
Windows中都包含rundll32.dll,它提供了一個對于無法運行代碼的一個EXE或DLL的平臺。
4. 進程監視器
進程監視器(Process Monitor)它提供一種方式來監控注冊表,文件系統,網絡,進程和線程的行為。同時它還可以進行過濾事件。也可以使用Process Explorer進程瀏覽器來查看進程。
還可以使用Regshot來比較注冊表快照。
5.模擬網絡
使用ApateNDS查看惡意代碼發出的DNS請求。
NetCat可以用于支持端口掃描,隧道,代理,端口轉發等的對內對外連接上。在監聽模式下NetCat作為一個服務器而在連接模式下則是作為一個客戶端。使用WireShark進行截獲和獲取網絡數據包。INetSim則可用于模擬常見網絡服務,但只支持在Linux系統中使用。
剩下的高級的等我學到那再接著補充吧。
總結
以上是生活随笔為你收集整理的恶意样本分析流程记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wampserver的mysql启动与环
- 下一篇: [剑指offer][JAVA]面试题第[