2018-2019 20165226 Exp4:惡意代碼分析
2018-2019 網絡對抗技術 20165226 Exp4:惡意代碼分析
目錄
一、實驗內容說明及基礎問題回答
二、實驗過程
- Task1 系統運行監控
- 結合windows計劃任務與netstat命令
- 使用sysmon監視系統
- Task2 惡意軟件分析
- 在線檢測——virustotal
- 動態分析1——使用TCPView工具
- 動態分析2——使用Process Explorer
- 動態分析3——使用Process Monitor
- 動態分析4——使用systracer
- 動態分析5——使用wireshark
- 靜態分析1——使用PEid查看加殼情況
- 靜態分析2——使用PE Explorer
三、問題與思考
四、實驗總結
一、實驗內容說明及基礎問題回答
實驗內容
系統運行監控(2分)
使用如計劃任務,每隔一分鐘記錄自己的電腦有哪些程序在聯網,連接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出所有連網的程序,連了哪裏,大約幹了什麽(不抓包的情況下只能猜),你覺得它這麽幹合適不。如果想進一步分析的,可以有針對性的抓包。
- 安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控自己主機的重點事可疑行為。
參考:schtask與sysmon應用指導 實際日誌的分析還需要發揮下自己的創造力,結合以前學過的知識如linux的文本處理指令等進行。分析的難點在於從大量數據中理出規律、找出問題。這都依賴對結果過濾、統計、分類等進一步處理,這就得大家會什麽用什麽了。
惡意軟件分析(1.5分)
分析該軟件在
- 啟動回連
- 安裝到目標機
- 及其他任意操作時(如進程遷移或抓屏,重要是你感興趣)。
該後門軟件
讀取、添加、刪除了哪些註冊表項
讀取、添加、刪除了哪些文件
- 連接了哪些外部IP,傳輸了什麽數據(抓包分析)
該實驗重點在“分析”,不是“如何使用某軟件”。組長、課題負責人要求寫細一點,其他人可以重點放在分析上。
基礎問答
1、如果在工作中懷疑一臺主機上有惡意代碼,但只是猜想,所有想監控下系統一天天的到底在幹些什麽。請設計下你想監控的操作有哪些,用什麽方法來監控。
使用windows自帶的schtasks指令設置一個計劃任務,每隔一定的時間對主機的聯網記錄等進行記錄。
使用sysmon工具,通過配置想要監控的端口、註冊表信息、網絡連接等信息,記錄相關的日誌文件。
利用wireshark查看數據包
用TCPView也行,不過能得到的進一步信息較少
用Process Explorer或者Process Monitor
2、如果已經確定是某個程序或進程有問題,你有什麽工具可以進一步得到它的哪些信息。
使用Wireshark進行抓包分析,監視其與主機進行的通信過程。
使用systracer工具分析惡意軟件,進行快照的對比(註冊表、文件等).
- 使用Process Explorer查看調用的程序庫等等
- 使用PE explorer
也可以用PEid查看的加殼情況
返回目錄
二、實驗過程
Task1 系統運行監控
結合windows計劃任務與netstat命令
- 為實現每5min記錄下有哪些程序在連接網絡,輸入以下命令:
schtasks /create /TN netstat5226 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
創建計劃任務
其中,TN是TaskName的縮寫,我們創建的計劃任務名是netstat5226;sc表示計時方式,我們以分鐘計時填MINUTE;TR=Task Run,要運行的指令是 netstat -bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口。
在C盤中創建一個netstat5226.bat腳本文件(可先創建txt文本文件,使用記事本寫入後通過修改文件名來修改文件格式)
- 在其中寫入以下內容
date /t >> c:\netstat5226.txt
time /t >> c:\netstat5226.txt
netstat -bn >> c:\netstat5226.txt
schtasks /create /TN netstat5226 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
創建計劃任務其中,TN是TaskName的縮寫,我們創建的計劃任務名是netstat5226;sc表示計時方式,我們以分鐘計時填MINUTE;TR=Task Run,要運行的指令是 netstat -bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口。
在C盤中創建一個netstat5226.bat腳本文件(可先創建txt文本文件,使用記事本寫入後通過修改文件名來修改文件格式)
date /t >> c:\netstat5226.txt
time /t >> c:\netstat5226.txt
netstat -bn >> c:\netstat5226.txt
打開
任務計劃程序
(在計算機管理中),可以看到我們新創建的這個任務
雙擊這個任務,點擊操作並編輯,將“程序或腳本”改為我們創建的
netstat5226.bat
批處理文件,確定即可。
任務還有其他屬性,點擊“條件”選項卡,可以更改相關的設置。比如默認操作為“只有在計算機使用交流電源時才啟動此任務”,那麽使用電池電源時就會停止任務。這點需要格外註意,如果沒有修改默認操作,任務無論如何都無法執行可能只是因為拔掉了電源。
執行此腳本一定時間,就可以在netstat5226.txt文件中查看到本機在該時間段內的聯網記錄
- 等記錄項目夠多了再用xlsx進行分析:點擊數據選項卡,獲取外部數據,選擇之前記錄連接情況的文本netstat5226.txt
選擇分隔符號
分隔符號全部選上
列數據格式選擇常規
完成生成表
當記錄的數據足夠豐富時,停止任務,將所得數據在excel中進行分析(詳細操作參考學姐的博客)
將其做成餅狀圖(發現tcp最活躍)
用折線圖來表示
使用sysmon監視系統
sysmon
微軟Sysinternals套件中的一個工具,可以從碼雲項目的附件裏進行下載,要使用sysmon
工具先要配置文件:<Sysmon schemaversion="3.10"> <!-- Capture all hashes --> <HashAlgorithms>*</HashAlgorithms> <EventFiltering> <!-- Log all drivers except if the signature --> <!-- contains Microsoft or Windows --> <DriverLoad onmatch="exclude"> <Signature condition="contains">microsoft</Signature> <Signature condition="contains">windows</Signature> </DriverLoad> <NetworkConnect onmatch="exclude"> <Image condition="end with">chrome.exe</Image> <Image condition="end with">iexplorer.exe</Image> <SourcePort condition="is">137</SourcePort> </NetworkConnect> <CreateRemoteThread onmatch="include"> <TargetImage condition="end with">explorer.exe</TargetImage> <TargetImage condition="end with">svchost.exe</TargetImage> <TargetImage condition="end with">winlogon.exe</TargetImage> <SourceImage condition="end with">powershell.exe</SourceImage> </CreateRemoteThread> </EventFiltering> </Sysmon>
配置好文件之後,要先使用
Sysmon.exe -i C:\Sysmoncfg.txt
指令對sysmon
進行安裝:
啟動之後,便可以到事件查看器裏查看相應的日誌:
查看了其中一部分事件的詳細信息,比如這個事件是之前做計劃任務時所創建的
打開kali,運行木馬文件,使其回連kali攻擊機。查看日誌,通過搜索關鍵字可以找到相關的後門文件
打開這個事件,可以看到其屬於“NetworkContect”。查看詳細信息,可以看到這個後門映像文件的具體位置、源IP和端口、目的IP和端口等
Task2 惡意軟件分析
在線檢測——virustotal
把生成的惡意代碼放在VirusTotal進行分析
查看這個惡意代碼的基本屬性
可以看出它的SHA-1、MD5摘要值、文件類型、文件大小,以及TRiD文件類型識別結果。(註:TRiD通過讀取文件頭,根據特征碼進行文件類型匹配。)
可以看到加殼情況
以及該惡意代碼的算法庫支持情況
把生成的惡意代碼放在VirusTotal進行分析
查看這個惡意代碼的基本屬性
可以看出它的SHA-1、MD5摘要值、文件類型、文件大小,以及TRiD文件類型識別結果。(註:TRiD通過讀取文件頭,根據特征碼進行文件類型匹配。)
可以看到加殼情況
以及該惡意代碼的算法庫支持情況
動態分析1——使用TCPView工具
通過TCPView工具可以獲取後門程序的網絡連接信息,發現實驗環境下攻擊機的IP地址
但雙擊後只能獲取少量信息,因此此軟件不適合用來分析具體數據傳輸過程
動態分析2——使用Process Explorer
Process Explorer是由Sysinternals開發的Windows系統和應用程序監視工具,目前已並入微軟旗下。不僅結合了Filemon(文件監視器)和Regmon(註冊表監視器)兩個工具的功能,還增加了多項重要的增強功能。包括穩定性和性能改進、強大的過濾選項、修正的進程樹對話框(增加了進程存活時間圖表)、可根據點擊位置變換的右擊菜單過濾條目、集成帶源代碼存儲的堆棧跟蹤對話框、更快的堆棧跟蹤、可在 64位 Windows 上加載 32位 日誌文件的能力、監視映像(DLL和內核模式驅動程序)加載、系統引導時記錄所有操作等。
靶機運行木馬,回連攻擊機時,我們可以看到Process Explorer對其進行的記錄
動態分析3——使用Process Monitor
Process Monitor 是一款由 Sysinternals 公司開發的包含強大的監視和過濾功能的高級 Windows 監視工具,可實時顯示文件系統、註冊表、進程/線程的活動。
打開軟件,可以看出其對各個進程的詳細記錄
動態分析4——使用systracer
- 下載SysTracer工具
- 註意在
agreet
後選擇第二個進行端口號的設置
- 註意在
- 點擊
take snapshot
分別存儲以下快照:- Snapshot #1:未植入後門程序的自然狀態
- Snapshot #2:將木馬植入靶機,對靶機註冊表、文件等進行快照
- Snapshot #3:打開kali的msfconsle,靶機運行木馬,回連kali,win7下再次快照
- Snapshot #4:在kali中對靶機使用
ls
指令,win7下再次快照 - Snapshot #5:在kali中對靶機使用
getuid
然後getsystem
進行提權操作,win7下再次快照
- 分析
快照一和快照二:增加的後門程序,以及增減的鍵值、dll文件
快照二和快照三:除了增減很多鍵值、dll文件外,還能查找到後門程序的回連(能看到端口號,攻擊方IP地址以及靶機IP地址)
植入後門並回連進行權限提取或其他操作
我們能在雙擊此快照的基礎上通過查看applications
中的Runnig Processes
找到後門程序,能清楚地看到本機地址和端口以及遠程攻擊方kali的地址及運行端口號
動態分析4——使用wireshark
通過上一步的操作得知攻擊方以及受控方IP地址以及端口號之後使用wireshark進一步分析
三次握手
從序列號、確認號等能判斷出三次握手過程,同時還能查看傳輸的數據
靜態分析1——使用PEid查看加殼情況
未加殼時進行掃描
加殼後再次進行掃描
缺點是不能獲取其他更多的信息
靜態分析2——使用PE Explorer
PE Explorer是功能超強的可視化Delphi、C++、VB程序解析器,能快速對32位可執行程序進行反編譯,並修改其中資源。
剛打開PE Explorer我們就會看到後門程序的頭部信息。
同時還能查看其依賴項
返回目錄
三、問題與思考
問題1:在安裝sysmon時報錯
問題1解決方案:以管理員身份運行cmd,重新執行命令進行安裝,成功。
問題2:在進行數據收集時,出現一些問題,如無法自啟動在文件中錄入數據、能定時觸發但只顯示時間沒有數據、不能定時觸發但通過管理員運行bat文件能輸出、不能生成txt文件、能定時觸發但只顯示結果沒有日期和時間。。
- 問題2解決方案:
在C盤中將bat文件的屬性中所有權限更改為
完全控制
在任務管理中點開bat的屬性,在常規中將
只在用戶登錄時運行
更改為不管用戶是否登錄都要運行
,並在下面的框中打鉤
問題3:導入表格時出現如圖所示問題
問題3解決方案:使所選單元格從D31開始即可
問題4:在進行systracer中出現下圖所示情況
問題4解決方案:將改程序卸載後重裝即可
返回目錄
四、實驗總結
- 本次實驗所需要使用的工具相比前幾次更豐富,通過運用不同的工具,結合之前信息安全及本期計算機病毒的一些知識,進一步熟練操作監控主機,能更好的輔助我們發現並及時處理惡意行為。
- 惡意代碼的分析方法主要分為靜態分析方法和動態分析方法。這兩種方法在本次實驗中都有所涉及。靜態分析方法是指在不執行二進制程序的條件下進行分析,如反匯編分析等;而動態分析方法是指在惡意代碼執行的情況下,利用調試工具對惡意代碼實施跟蹤和觀察,確定惡意代碼的工作過程,以便作進一步分析。
- 實驗過程中,遇到各種奇怪問題,不過通過不斷嘗試,能得以解決,但目前對於惡意行為的監測中並不可控,不能做到百分百的檢測,這也是我們今後研究的方向。
返回目錄
2018-2019 20165226 Exp4:惡意代碼分析