1. 程式人生 > >Exp4惡意代碼分析 20164312 馬孝濤

Exp4惡意代碼分析 20164312 馬孝濤

命令 執行 選項卡 收獲 https netstat 詳細信息 sig exp

1.實踐目標

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

2.實驗步驟

2.1系統運行監控

2.1.1Windows計劃任務

我們先創建一個netstatlog.bat文件

tips:可以先創建一個txt文件,然後通過更改後綴名稱來實現,並在其中輸入以下內容:

技術分享圖片

在命令行中輸入 schtasks /create /TN netstat4312 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt" 以創建計劃任務netstat4312:

tips:

  • TN是TaskName的縮寫,我們創建的計劃任務名是netstat4312;
  • sc表示計時方式,我們以分鐘計時填MINUTE;
  • TR=Task Run,要運行的指令是 netstat
  • b表示顯示可執行文件名,n表示以數字來顯示IP和端口;
  • >表示輸出重定向,將輸出存放在c:\netstatlog.txt文件中.

技術分享圖片

將上面創建的bat文件放入c盤中,並觀察任務計劃程序:

技術分享圖片

打開屬性,修改操作並編輯,將“程序或腳本”改為 c:\netstatlog.bat ,並且將添加參數設置為空:

技術分享圖片

點擊常規,點擊使用最高權限運行:

技術分享圖片

在"條件"選項卡中,將電源默認操作“只有在計算機使用交流電源時才啟動此任務”選項關閉:

技術分享圖片

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

技術分享圖片

2.1.2導入Exel中進行排序:

技術分享圖片

tips:因為是在虛擬機中進行的,所以時間我沒有同步,懶得搞了,次數也較少。

2.1.2使用sysmon工具

先在官網下載sysmon,解壓後在目錄中新建20164312.xml文件,並按老師要求輸入:

<Sysmon schemaversion="4.20">
  <!-- 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>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </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>
  • exclude相當於白名單,不用記錄。
  • include相當於黑名單,即要記錄的。
  • Image condition,映像條件,根據自己使用的瀏覽器更改。例如谷歌瀏覽器是“chrome.exe”,IE瀏覽器是“iexplore.exe”,我用的是360瀏覽器,進程名是“360chrome.exe”,也是以“chrome.exe”結尾的,所以這裏只寫“chrome.exe”即可。寫在exclude中就是不記錄由360瀏覽器創建的進程。
  • 網絡連接為過濾掉瀏覽器的網絡連接、源IP為127.0.0.1的網絡連接和目的端口為137的連接服務,且查看目的端口為80(http)和443(https)的網絡連接。
  • 137端口的主要作用是在局域網中提供計算機的名字或 IP地址查詢服務,一般安裝了NetBIOS協議後,該端口會自動處於開放狀態。
  • 遠程線程創建記錄了目標為explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的遠程線程。
  • explorer.exe是Windows程序管理器或者文件資源管理器
  • svchost.exe是一個屬於微軟Windows操作系統的系統程序,是從動態鏈接庫 (DLL) 中運行的服務的通用主機進程名稱。
  • winlogon.exe是Windows NT 用戶登陸程序,用於管理用戶登錄和退出。
  • powershell.exe是專為系統管理員設計的新 Windows 命令行外殼程序。該外殼程序包括交互式提示和腳本環境,兩者既可以獨立使用也可以組合使用

以管理員身份打開命令行,使用指令 Sysmon64.exe -i 安裝sysmon

技術分享圖片

tips:安裝過程中的彈窗直接點agree即可。

輸入 sysmon64.exe -c 20164312.xml 配置sysmon:

技術分享圖片

在事件查看器中的應用程序和服務日誌下,查看Microsoft->Windows->Sysmon->Operational

tips:在這裏,我們可以看到按照配置文件的要求記錄的新事件,以及事件ID、任務類別、詳細信息等等。

技術分享圖片

在Linux中運行後門程序進行回連,再查看日誌,找到相關的後門程序:

技術分享圖片

技術分享圖片

tips:在詳細信息中可以看到文件的位置,源ip和目的ip,端口等。

2.2惡意軟件分析

2.2.1靜態分析

使用VirusTotal分析惡意軟件

技術分享圖片

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

技術分享圖片

技術分享圖片

tips:很多特別詳細的介紹,第一次創作時間竟然是2009年,太誇張了。

2.2.2systracer分析

snapshot#1:沒有運行後門程序

snapshot#2:運行後門程序中

snapshot#3:獲取一段音頻

安裝systracer,設置監聽端口號4312->安裝完成:

技術分享圖片

開始第一張快照,此時還沒有運行後門程序:

技術分享圖片

結果:

技術分享圖片

第二次快照是運行後門程序中:

技術分享圖片

第三張快照,此時linux正在獲取音頻:

技術分享圖片

技術分享圖片

主要關註點:

  • 讀取、添加、刪除了哪些註冊表項
  • 讀取、添加、刪除了哪些文件
  • 連接了哪些外部IP,傳輸了什麽數據(抓包分析)

比較snapshot#1和snapshot#2:

技術分享圖片

技術分享圖片

技術分享圖片

tips:4312_backdoor貌似新建了很多註冊表。

選擇應用選項卡,來看看有沒有我的那個後門程序:

技術分享圖片

tips:因為是在虛擬機上弄的,所以很直觀,直接就看到這個後門程序了,甚至還能看到ip和端口之類的其他信息。

技術分享圖片

tips:在文件這個項目上,經過我的篩查,好像沒有什麽是因為後門程序被修改的。

比較snapshot#2和snapshot#3:

技術分享圖片

tips:後門程序新建了好幾個file和key,應該是和 record_mic 指令相關的。

技術分享圖片

tips:在文件對比中我發現唯一一個比較可疑的就是這個東西,這個東西好像是虛擬交換通路文件,但是被改了,我想可能是為了把音頻文件拷貝走才更改的。

技術分享圖片

tips:audio相關的註冊表也被修改了,很明顯,這是Linux中record_mic指令下的結果。

3.實驗總結

3.1問題回答

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

  我們可以使用Sysmon,編寫配置文件,記錄有關的系統日誌,還可以使用windows自帶的schtasks指令設置一個計劃任務,發現網絡連接是否異常,如果確認含有惡意代碼,可以使用今天學的systracer獲取幾張snapshot自行分析一下,看看大概是在哪些方面進行了修改。

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

  可以靜態分析,使用VirusTotal、VirusScan工具進行掃描,動態分析,借助systracer工具進行相關的對比,發現有哪些方面別修改了,從而推理出惡意程序到底想幹嘛。

3.2實驗感想

  這次實驗在步驟上其實沒有什麽難點,真正難的是分析,而且我平時對註冊表這方面也沒什麽積累,所以在使用systracer進行對比是,註冊表看的我一頭霧水,再加上很多單詞我也不了解,浪費了很多時間,後來我借助有道詞典和別的同學的幫助下多多少少對那些密密麻麻的註冊表有了一些了解,總算是能找到哪些是跟我的後門程序相關的操作了,總的來說還是很有收獲的,最近我的電腦異常的卡頓,我一直在想是不是我自己電腦也被別人搞了,有機會自行監控一下我不在的時候,電腦都在做些什麽,希望有所收獲。

Exp4惡意代碼分析 20164312 馬孝濤