2018-2019-2 網絡對抗技術 20165212 Exp4 惡意代碼分析

2018-2019-2 網絡對抗技術 20165212 Exp4 惡意代碼分析

原理與實踐說明web

1.實踐目標

  • 監控你本身系統的運行狀態,看有沒有可疑的程序在運行。
  • 分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具儘可能使用原生指令或sysinternals,systracer套件。
  • 假定未來工做中你以爲本身的主機有問題,就能夠用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行爲與性質。

2.實踐內容概述

  • 系統運行監控
    • 使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述分析結果。
    • 安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。
  • 分析該軟件在(1)啓動回連,(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件
    • 讀取、添加、刪除了哪些註冊表項
    • 讀取、添加、刪除了哪些文件
    • 鏈接了哪些外部IP,傳輸了什麼數據

實踐過程記錄

1.使用schtasks指令監控系統(使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述分析結果)

  • 使用schtasks /create /TN netstat5212 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"命令建立計劃任務netstat5212
  • TN是TaskName的縮寫,咱們建立的計劃任務名是netstat5212;
  • sc表示計時方式,咱們以分鐘計時填MINUTE;
  • TR=Task Run,要運行的指令是 netstat
  • bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口;
  • 表示輸出重定向,將輸出存放在c:\netstatlog.txt文件中算法

  • 在桌面創建一個netstatlog.txt文件,內容爲: date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txtshell

  • 這些指令是用來將記錄的聯網結果格式化輸出到netstatlog.txt文件中
  • 將後綴名改成.bat後,用管理員身份將該文件放入C盤
  • 打開計算機管理的「任務計劃程序庫」,能夠查看到5212netstat任務就緒,打開其屬性,修改其指令爲c:\netstatlog.bat

 

 

 

  • 還能夠自行更改該任務的其餘屬性,如在"條件"選項卡中能夠看到,電源選項中默認操做爲「只有在計算機使用交流電源時才啓動此任務」,把這個取消掉

執行此腳本必定時間,就能夠在netstat5212.txt文件中查看到本機在該時間段內的聯網記錄:windows

 

  • 當記錄的數據足夠豐富時,中止任務,將所得數據在excel中進行分析,此過程要一直保持開機聯網狀態才能持續監控 等待一段時間(6小時),將存儲的數據經過excel表進行整理, 統計圖以下:

 

  • 由統計數據可知,聯網排名第1的是「vmware-hosted.exe」,這一管理服務是esx主機和vmkernel之間的主要通訊通道。其次還有ware.exe、QQ.exe等常見的程序,並無發現什麼異樣這

2.使用sysmon工具監控系統(安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。)

  • sysmon是微軟Sysinternals套件中的一個工具,直接從(馬雲連接)上下載。使用sysmon工具前首先要配置文件。參考使用輕量級工具Sysmon監視你的系統該文章,手動建立配置文件sysmon20165212.xml。安全

  • 代碼以下網絡

  • <Sysmon schemaversion="3.10">
      <!-- Capture all hashes -->
      <HashAlgorithms>*</HashAlgorithms>
      <EventFiltering>
        <!-- Log all drivers except if the signature -->
        <!-- contains Microsoft or Windows -->
        <ProcessCreate onmatch="exclude">     
          <Image condition="end with">360se.exe</Image> 
        </ProcessCreate>
    
        <FileCreateTime onmatch="exclude" >
          <Image condition="end with">360se.exe</Image>
        </FileCreateTime>
        
        <NetworkConnect onmatch="exclude">
          <Image condition="end with">360se.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">winlogon.exe</TargetImage>
          <SourceImage condition="end with">powershell.exe</SourceImage>
        </CreateRemoteThread>
      </EventFiltering>
    </Sysmon>

     

 

  • 安裝sysmon:執行命令sysmon.exe -i C:\sysmon2016212.xml,成功安裝結果以下:

 

  • 查看「事件查看器」,選擇日誌的位置,應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational,在這裏,咱們能夠看到按照配置文件的要求記錄的新事件,以及事件ID、任務類別、詳細信息等。tcp

  • 分析日誌,我分析的是本身生成的後門文件進行分析。 啓動回連到kali工具

  • 找到運行後門文件相對應的日誌,打開這個事件,能夠看到其屬於「NetworkContect」。查看詳細信息,能夠看到這個後門映像文件的具體位置、源IP和端口、目的IP和端口等

 

  • 在kali中會用webcam_snap命令調用主機的攝像頭抓拍,日誌中看到一個帶有Photo關鍵詞的日誌記錄

 

  • kali中運行dir命令後,主機日誌中能夠看到一個帶有searchfile關鍵詞的日誌記錄
    • SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要做用是創建快速索引文件,讓用戶可以更好的搜索出電腦中的任意資料。它會在計算機空閒時自動掃描索引位置的文件名、屬性信息和給定類別的文件內容,這些索引位置默認包括桌面、收藏夾、開始菜單、系統目錄。

 

  • kali中輸入ps後,主機中的日誌記錄

 

  • kali中輸入shell,主機中的日誌記錄

 

惡意軟件分析

使用VirusTotal分析惡意軟件

  • 把生成的惡意代碼放在VirusTotal進行分析(也可使用VirusScan工具),基本狀況以下:搜索引擎

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

  •  

  • 能夠看出它的SHA-一、MD5摘要值、文件類型、文件大小,以及TRiD文件類型識別結果。(注:TRiD經過讀取文件頭,根據特徵碼進行文件類型匹配。)最神奇的是它能夠查出來文件的編碼方式,能夠看出我是用VC++進行編譯的!

  • 還能夠看到加殼鏈接狀況:upx殼和http鏈接 

  •  

  • 以及該惡意代碼的算法庫支持等一系列信息

使用systracer分析惡意軟件

這個我放在win7虛擬機裏進行。文減小,易於進行比較

  • 點擊右側的take snapshot,存儲快照

    • 快照1:移植後門程序,保存爲Snapshot #1
    • 快照2:運行後門程序並在kali中實現回連,保存爲Snapshot #2
    • 快照3:在kali中使用dir指令,保存爲Snapshot #3
    • 快照4:在kali中使用record_mic指令,保存爲Snapshot #4
  • 快照1和2的對比,能夠明顯看到增長了後門程序

 

  • 快照2和3的對比,註冊表和文件增刪改方面

 

 

  • 快照2和4對比,可以看到在媒體播放器方面有所改動

 

返回目錄

使用wireshark抓包分析惡意軟件

  • 回連完成後結束捕獲,並過濾ip,只看和虛擬機IP有關的數據包,因此把沒用的包過濾掉 - 首先是tcp創建的三次握手

 

  • 有大量的TCP包,這其中有回連相關的包,以後我有用dir指令查看了靶機的當前目錄,傳輸了不少數據過來:

 

基礎問題回答

  • 若是在工做中懷疑一臺主機上有惡意代碼,但只是猜測,全部想監控下系統一每天的到底在幹些什麼。請設計下你想監控的操做有哪些,用什麼方法來監控。
    • 使用windows自帶的schtasks指令設置一個計劃任務,發現網絡鏈接異常
    • 使用Sysmon,編寫配置文件,記錄有關的系統日誌
    • 使用Process Explorer工具,監視進程執行狀況。
    • 使用Process Monitor工具,監視文件系統、註冊表、進程/線程的活動。
  • 若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。
    • 使用systracer工具分析惡意軟件,查看其對註冊表和文件的修改。
    • 使用Wireshark進行抓包分析,監視其與主機進行的通訊過程。
    • 使用Process Explorer工具或Process Monitor工具,監視文件系統、註冊表、進程/線程的活動。

實驗中遇到的問題及解決方法

  • 安裝sysmon時,本身寫的xml配置文件和下載的安裝包版本要對應
  • xml配置文件中的過濾項裏通常咱們填的127.0.0.1的過濾掉,所以有時候若是虛擬機ifconfig顯示的ip時候127.0.0.1那麼日誌裏是確定看不到相關日誌的,因此要注意虛擬機的ip不要被過濾掉。
  • 開啓360狀況下全部日誌中的目的地址都會是360設定的地址,應該是360會將主機和kali之間通訊的數據進行加密或者「安全處理」,因此爲了直觀的觀察結果,能夠吧360關掉

實驗總結與體會

本次實驗相比於以前2次少了不少具體的操做,可是要求咱們更充分的去了解惡意代碼的特徵、工做原理,經過觀測咱們上幾回本身製做的特徵明顯的後門程序,我能直觀地看到日誌行爲特徵,連蒙帶猜,僅經過sysmon的日誌就能夠判斷本身的電腦有沒有能夠跡象 本次實驗在動態分析的時候,鍛鍊了咱們的信息處理能力,明顯看到有不少不一樣,可是分析是又不知道該從何下手,不太清楚每一項具體表明什麼含義,只能經過查閱資料,連蒙帶猜的進行分析。 經過本身動手實踐,實現了從攻擊者身份到檢測、分析者身份的轉變,更全面的理解了前兩次實驗中生成的後門程序到底在作什麼,對惡意代碼有了更深刻的理解。因此,咱們在發現本身電腦有了不正常的流量消耗以後,而殺軟沒有任何報毒,就能夠經過觀察日誌去判斷本身的電腦有沒有被植入後門,這一點,能力範疇超越了360等殺軟,是咱們實驗過程當中彌足珍貴的收穫!

相關文章
相關標籤/搜索