Exp4 惡意代碼分析 20164314

1、實踐目標linux

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

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

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

2、實踐內容shell

 1.系統運行監控windows

(1)使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出全部連網的程序,連了哪裏,大約幹了什麼(不抓包的狀況下只能猜),你以爲它這麼幹合適不。若是想進一步分析的,能夠有針對性的抓包。瀏覽器

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

  參考:schtask與sysmon應用指導網絡

 2.惡意軟件分析ide

  • 分析惡意軟件在(1)啓動回連,(2)安裝到目標機,(3)及其餘任意操做時
  • 讀取、添加、刪除了哪些註冊表項
  • 讀取、添加、刪除了哪些文件
  • 鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)

3、實踐過程與步驟

(一)系統運行監控

1)輸入命令:

schtasks /create /TN netstat4314 /sc MINUTE /MO 2 /TR "cmd /c netstat -bn > c:\netstat4314.txt"

實現每2分鐘記錄一下有哪些程序在鏈接網絡

(忘記截圖了···)

其中,TN是TaskName的縮寫,這裏計劃任務名是netstat5330;sc表示計時方式,以分鐘計時填MINUTE;TR=Task Run,要運行的指令是netstat -bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口。

(2)在C盤要目錄下建一個文件c:\netstat4314.bat(能夠先在桌面新建txt文本文件,使用記事本寫入後在修改後綴爲.bat,複製到C盤中),寫入內容以下:

 date /t >> c:\netstat4314.txt
 time /t >> c:\netstat4314.txt
 netstat -bn >> c:\netstat4314.txt

(3)經過「Windows->控制面板->管理工具->任務計劃程序」,找到個人任務

(4)雙擊這個任務,點擊操做-編輯,將其中的程序或腳本改成咱們建立的netstat4314.bat批處理文件,參數可選項爲空,點擊肯定。

注意必定要勾選使用最高權限運行,不然可能致使文件不能自主更新或者記錄裏出現權限問題)

(5)打開記錄文件netstatlog.txt記事本,能夠看到每隔2分鐘記錄而且可以顯示日期和時間

 (6)統計分析數據(兩小時的數據信息)

   導入數據:

  • 數據選項卡-獲取外部數據-來自文本,選擇文本netstatlog.txt
  • 在 數據類型 中選擇 分隔符號
  • 導入過程當中選擇分隔符號,分隔符號都選上,列數據格式選擇常規,完成導入

 

選擇一部分數據,使用數據透視工具分析獲得直觀的數據透視圖

 第一個選取了程序接入網絡的次數:

上網查詢瞭解瞭如下幾個聯網次數較多和我不熟悉的進程:

 dlna_player.exe應該是音樂播放器的程序;

 upc.exe應該是uplay平臺的一個程序;

 sesvc.exe是360瀏覽器的廣告程序;

 svchost.exe 是從動態連接庫(DLL) 中運行的服務的通用主機進程名稱。這個程序對系統的正常運行是很是重要,並且是不能被結束的。

 第二個選取了程序接入網絡的IP:

 

 

 

看到最多的是127.0.0.1即本機地址,後來經查詢得知,127.0.0.1是綁定在loopback接口上的地址沒若是服務端套接字綁定在它上面,你的客戶端程序就只能在本機訪問。

上網查了一些IP:

 

不知道這個美國的IP是個什麼狀況·······

 

(二)使用Sysmon工具

  Sysmon是微軟Sysinternals套件中的一個工具,首先進入微軟官網下載sysmon(下好後我把文件放到了D盤)

1)肯定監控目標爲網絡鏈接。

2)配置文件:

<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.exe</Image>
</NetworkConnect>

<NetworkConnect onmatch="include">     
  <DestinationPort condition="is">80</DestinationPort>      
  <DestinationPort condition="is">443</DestinationPort>
  <DestinationPort condition="is">4314</DestinationPort>    
</NetworkConnect>

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

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

<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」和「360tray.exe」就是不記錄由瀏覽器和360安全衛士建立的進程。
  • 進程建立時間相似。
  • 網略鏈接過濾掉了瀏覽器的網絡鏈接、源IP爲127.0.0.1的網絡鏈接和目的端口爲137的鏈接服務,且查看目的端口爲80(http)和443(https)的網絡鏈接。
  • 137端口的主要做用是在局域網中提供計算機的名字或IP地址查詢服務,通常安裝了NetBIOS協議後,該端口會自動處於開放狀態。
  • 127.0.0.1表示本機IP。
  • 遠程線程建立記錄了目標爲explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的遠程線程。
  • explorer.exe是Windows程序管理器或者文件資源管理器
  • svchost.exe是一個屬於微軟Windows操做系統的系統程序,是從動態連接庫 (DLL) 中運行的服務的通用主機進程名稱。
  • winlogon.exe是Windows NT 用戶登錄程序,用於管理用戶登陸和退出。
  • powershell.exe是專爲系統管理員設計的新 Windows 命令行外殼程序。該外殼程序包括交互式提示和腳本環境,二者既能夠獨立使用也能夠組合使用。

 (3)把配置文件放入c盤;

 (4)以管理員身份運行cmd,執行命令

接着輸入命令:

sysmon.exe -i c:\sysmon20164314.xml

提示版本不一樣,將「20164314.xml」文件中 <Sysmon schemaversion="3.10"> 改成 <Sysmon schemaversion="4.20"> 

輸入上一步中的命令,執行,此時會彈出一個窗口,點擊agree;

安裝成功以下:

 

(5)在事件查看器裏查看日誌

  依次點開應用程序和服務日誌→Microsoft→Windows→Sysmon→Operational。

 

(6)分析實驗二生成的後門程序,按步驟進行回連

 

查找事件

找到事件

 

打開詳細信息,能夠看到這個後門映像文件的具體位置、源IP和端口、目的IP和端口等

 

(三)惡意軟件分析

 (1)靜態分析

   使用VirusTotal分析惡意軟件

  • 將實驗三中生成的加殼後門在VirusTotal進行掃描
  • 查看這個惡意代碼的基本屬性:能夠看出它的SHA-一、MD5摘要值、文件類型、文件大小,以及TRiD文件類型識別結果
  • 算法庫支持

  • 加殼狀況

   (2)動態分析

     安裝SysTracer工具,監聽端口選擇4314

     使用SysTracer工具動態分析我是在兩臺虛擬機上進行的,一臺是win10虛擬機,一臺是Linux的虛擬機

     (1)點擊右側的take snapshot,存儲快照

  • 快照一:未移植後門程序,保存爲Snapshot #1
  • 快照二:運行後門程序並在kali中實現回連,保存爲Snapshot #2
  • 快照三:在kali中使用 dir 指令,保存爲Snapshot #3
  • 快照四:在kali中使用 record_mic 指令,保存爲Snapshot #4

   

(2)經過右下角的 compare 鍵或者 View Differences Lists 比對各快照,能夠選擇 Only Difference 只查看不一樣的項

  ①對比快照一和快照二(後門啓動前與啓動後):

  •   能夠看到新增的後門進程,並且能夠詳細看到其的目的IP和端口號、源IP和端口號以及鏈接的協議

 

  • 並且該後門程序生成了不少文件、目錄和鍵值

 

  • 在C盤增長了相關的文件

如上圖所示,一些Systracer未受權的地方咱們是無法查看的

  •  對HEKY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE和HKEY_USER沒法查看

 

②對比快照二和快照三:Linux上執行 dir 指令

 

不是很懂爲啥又是查看不了·····(難道由於是虛擬機?)

③ 對比快照三和快照四:Linux上執行 record_mic 指令

  •  新建了不少鏈接,其中有與後門程序相關的Apache HTTP Server

  • 進程中增長了這些

  • 又是不可訪問·····

4、實驗後回答問題

(1)若是在工做中懷疑一臺主機上有惡意代碼,但只是猜測,全部想監控下系統一每天的到底在幹些什麼。請設計下你想監控的操做有哪些,用什麼方法來監控。

  • 我認爲須要監控端口鏈接狀況,註冊表信息,文件信息,我想能夠經過設置任務計劃定時的,經過啓動一個記錄系統鏈接狀況的程序實現監控端口鏈接狀況。而後經過使用SysTracer等相似軟件,定時拍照,查看註冊表信息,文件信息等信息。

(2)若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。

  • 能夠經過火絨劍實時監控這個程序或進程在作的事以及對外的鏈接,還能夠經過SysTracer在執行該進程先後進行拍照,查看端口鏈接狀況,註冊表信息,文件信息的變化,還能夠經過process monitor查看在該進程啓動後執行的具體的操做,還能夠將這個程序上傳到virscan網站上經過多個殺毒引擎進行判斷。

5、實驗感想

       在當了屢次的「小偷」後,咱們此次實驗終於到了一次「警察」,對過去本身的所做所爲進行分析,知道了很多小卻十分方便的工具,也知道了Windows自帶的一些很方便的服務。經過這些工具,能夠查看「小偷」對咱們的電腦作了些什麼,從而對「小偷」進行管理。

 ( 就是感受好多Systracer未受權的地方呀·······

相關文章
相關標籤/搜索