1. 程式人生 > >2018-2019 20165226 Exp4:惡意代碼分析

2018-2019 20165226 Exp4:惡意代碼分析

技術 info proc 遠程 觀察 微軟 條目 選項卡 reg

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

技術分享圖片

  • 打開任務計劃程序(在計算機管理中),可以看到我們新創建的這個任務
    技術分享圖片

  • 雙擊這個任務,點擊操作並編輯,將“程序或腳本”改為我們創建的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通過讀取文件頭,根據特征碼進行文件類型匹配。)
  • 可以看到加殼情況
    技術分享圖片

  • 以及該惡意代碼的算法庫支持情況
    技術分享圖片

動態分析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:惡意代碼分析