1. 程式人生 > >20164317《網絡對抗技術》Exp4 惡意代碼分析

20164317《網絡對抗技術》Exp4 惡意代碼分析

調試工具 internal 文件 系統監控 smon jad com 網絡 target

1.實踐目標

1.是監控你自己系統的運行狀態,看有沒有可疑的程序在運行。

2.是分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具盡量使用原生指令或sysinternals,systracer套件。

3.假定將來工作中你覺得自己的主機有問題,就可以用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行為與性質。

2.實踐過程記錄

一、系統運行監控

(1)使用如計劃任務,每隔一分鐘記錄自己的電腦有哪些程序在聯網,連接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出所有連網的程序,連了哪裏,大約幹了什麽。如果想進一步分析的,可以有針對性的抓包。

第一步:使用schtasks的命令創建計劃任務netstat20164317

鍵入:schtasks /create /TN 20164317netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt

TN是TaskName的縮寫,我們創建的計劃任務名是20164317netstat;

sc表示計時方式,我們以分鐘計時填MINUTE;

TR=Task Run,要運行的指令是 netstat

-bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口;

c:\netstatlog.txt類似於Linux中的重定向,輸出將存放在C盤下的netstatlog.txt文件中

創建成功結果如下:

技術分享圖片

此命令完成後,每1分鐘就會監測哪些程序在使用網絡,並把結果記錄在netstatlog.txt文檔裏,為了顯示日期和時間,我們通過bat批處理文件來實現

第二步:在C盤要目錄下建一個文件c:\netstatlog.bat

直接在C盤下是沒法創建文件的,所以為了解決這個問題我試了幾種方法:

在命令行下輸入指令type nul>netstatlog.bat,結果提示拒絕訪問。

在前面加個sudo結果還是提示拒絕訪問。

最終解決的方法是在桌面上創建一個netstatlog.txt文件,編輯文件內容如下:

date /t >> c:\netstatlog.txt

time /t >> c:\netstatlog.txt

netstat -bn >> c:\netstatlog.txt

保存後修改文件名為“netstatlog.bat”;

粘貼到C盤中,這是需要用管理員權限;

技術分享圖片

可以右鍵點擊“編輯”用記事本查看bat文件內容。

第三步:編輯任務操作:

1.打開任務計劃程序,可以看到我們新創建的這個任務:

技術分享圖片

雙擊這個任務,點擊操作並編輯,將“程序或腳本”改為我們創建的netstatlog.bat批處理文件,確定即可

技術分享圖片

執行此腳本一定時間,就可以在netstatlog.txt文件中查看到本機在該時間段內的聯網記錄

技術分享圖片

當記錄的數據足夠豐富時,停止任務,將所得數據在excel中進行分析

技術分享圖片

技術分享圖片

可以看到用得最多的是360瀏覽器,其它也沒什麽異常的

(2)安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控自己主機的重點事可疑行為。

  • sysmon是微軟Sysinternals套件中的一個工具,使用sysmon工具前首先要配置文件。根據老師的要求,最少要記錄Event 1,2,3三個事件。即進程創建、進程創建時間、網絡連接。
  • 創建配置文件Sysmon20164317.xml
    文件內容如下:

<Sysmon schemaversion="9.01">

<!-- Capture all hashes -->

<HashAlgorithms>*</HashAlgorithms>

<EventFiltering>

<!-- Log all drivers except if the signature -->

<!-- contains Microsoft or Windows -->

<ProcessCreate onmatch="exclude">

<Image condition="end with">chrome.exe</Image>

<Image condition="end with">firefox.exe</Image>

</ProcessCreate>

<ProcessCreate onmatch="include">

<ParentImage condition="end with">cmd.exe</ParentImage>

</ProcessCreate>

<FileCreateTime onmatch="exclude" >

<Image condition="end with">chrome.exe</Image>

<Image condition="end with">firefox.exe</Image>

</FileCreateTime>

<NetworkConnect onmatch="exclude">

<Image condition="end with">chrome.exe</Image>

<Image condition="end with">firefox.exe</Image>

<SourcePort condition="is">137</SourcePort>

<SourceIp condition="is">127.0.0.1</SourceIp>

</NetworkConnect>

<NetworkConnect onmatch="include">

<DestinationPort condition="is">80</DestinationPort>

<DestinationPort condition="is">443</DestinationPort>

</NetworkConnect>

<CreateRemoteThread onmatch="include">

<TargetImage condition="end with">explorer.exe</TargetImage>

<TargetImage condition="end with">svchost.exe</TargetImage>

<TargetImage condition="end with">firefox.exe</TargetImage>

<TargetImage condition="end with">winlogon.exe</TargetImage>

<SourceImage condition="end with">powershell.exe</SourceImage>

</CreateRemoteThread>

</EventFiltering>

</Sysmon>

使用Sysmon.exe -i C:\Sysmon20164317.xml安裝sysmon

技術分享圖片

win10下,左下角開始菜單右擊->事件查看器->應用程序和服務日誌->Microsoft->Windows->Sysmon->Operational。在這裏,我們可以看到按照配置文件的要求記錄的新事件,以及事件ID、任務類別、詳細信息等等

技術分享圖片

打開這個事件,可以看到其屬於“NetworkContect”。查看詳細信息,可以看到這個後門映像文件的具體位置、源IP和端口、目的IP和端口等

技術分享圖片

2.2惡意軟件分析

1.靜態分析
文件掃描(VirusTotal、VirusScan工具等)
文件格式識別(peid、file、FileAnalyzer工具等)
字符串提取(Strings工具等)
反匯編(GDB、IDAPro、VC工具等)
反編譯(REC、DCC、JAD工具等)
邏輯結構分析(Ollydbg、IDAPro工具等)
加殼脫殼(UPX、VMUnPacker工具等)

2.動態分析
快照比對(SysTracer、Filesnap、Regsnap工具等)
抓包分析(WireShark工具等)
行為監控(Filemon、Regmon、ProcessExplorer工具等)
沙盒(NormanSandbox、CWSandbox工具等)
動態跟蹤調試(Ollydbg、IDAPro工具等)

(1)使用VirusTotal分析惡意軟件

把生成的惡意代碼放在VirusTotal進行分析,結果如圖:

技術分享圖片

查看這個惡意代碼的基本屬性

技術分享圖片

我們可以看到文件的類型、大小、SHA-1、MD5摘要值等結果

算法庫支持情況

技術分享圖片

(2)使用systracer分析

分別在裝了後門不連接,進行回連,進行截屏操作,三個狀態抓快照。

比較不回連和回連:

技術分享圖片

技術分享圖片

171717是我的後門,可以看到回連是多了很多東西,雖然不太能理解。

進行操作後:

技術分享圖片

可以看到變化不大。

3.基礎問題回答

問題1:如果在工作中懷疑一臺主機上有惡意代碼,但只是猜想,所以想監控下系統一天天的到底在幹些什麽。請設計下你想監控的操作有哪些,用什麽方法來監控?

答: 1.利用系統命令查看系統各項狀態,並將查看結果保存為日誌。使用計劃任務為命令設置執行間隔,通過監控系統一段時間的運行狀態來監控系統。

2.使用具有監控系統功能的可靠軟件來實現系統監控。

問題2:

如果已經確定是某個程序或進程有問題,你有什麽工具可以進一步得到它的哪些信息?

答:1.使用systracer工具對確定的惡意軟件進行行為分析。

2.使用wireshark網絡嗅探工具對該軟件的網絡通信情況進行分析。

4.實驗感想

本次實驗的內容十分豐富,我們嘗試學習和使用了數款用於檢測惡意代碼的指令或是軟件,這些工具都能很好地輔助我們對主機進行監控,以發現惡意行為並進行及時處理。
通過學習了解到,惡意代碼的分析方法主要分為靜態分析方法和動態分析方法。這兩種方法在本次實驗中都有所涉及。靜態分析方法是指在不執行二進制程序的條件下進行分析,如反匯編分析等,屬於逆向工程分析方法。而動態分析方法是指在惡意代碼執行的情況下,利用調試工具對惡意代碼實施跟蹤和觀察,確定惡意代碼的工作過程,以便作進一步分析。
雖然惡意代碼的分析工具多種多樣、日趨完善,但作為計算機用戶的我們更不能掉以輕心,而應該時刻保持警惕。要時常對電腦的行為進行監控,不要只寄希望於殺毒軟件,因為殺毒與免殺的博弈關系會使二者共同發展,並不是所有的惡意代碼都會被殺毒軟件拒之門外

20164317《網絡對抗技術》Exp4 惡意代碼分析