20155333 《網絡對抗》Exp4 惡意代碼分析

20155333 《網絡對抗》Exp4 惡意代碼分析

基礎問題回答

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

  • 使用Windows自帶的schtasks指令設置一個計劃任務,指定每隔必定時間記錄主機的聯網記錄或者是端口開放、註冊表信息等等;
  • 經過sysmon工具,配置好記錄事件的文件,以後在事件查看器裏查看相關日誌文件;
  • 使用ProcessExplorer工具,監視進程執行狀況。
    二、 若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。
  • 使用Wireshark進行抓包分析;
  • 使用systracer工具分析某個程序執行先後,註冊表、文件、端口的變化狀況。

實踐過程

1、系統運行監控chrome

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

第一步:在windows命令行下輸入命令:schtasks /create /TN netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"windows

  • TN是TaskName的縮寫,咱們建立的計劃任務名是netstat;
  • 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網絡

  • 在桌面上建立一個netstatlog.txt文件,編輯文件內容以下:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
  • 保存後修改文件名爲「netstatlog.bat」;
  • 粘貼到C盤中,須要管理員權限;
  • 能夠右鍵點擊「編輯」用記事本查看bat文件內容。

第三步:編輯任務操做:工具

1.進入任務計劃程序:「win+c」選擇「設置」->進入「控制面板」->選擇「管理工具」->進入「任務計劃程序」網站

2.找到任務netstat,雙擊點開ui

3.點擊下方「操做」->右側所選項欄中「屬性」->屬性頁面上方的「操做」操作系統

4.雙擊任務進入「編輯操做」界面

5.在程序腳本處點擊「瀏覽」->選擇剛纔建立的「netstat.bat」,「參數可選項」爲空

6.點擊「肯定」完成修改

7.查看netstat.txt文件,已經有了時間的記錄

第四步:等待一到兩天;
第五步:用excel分析數據。

1.導入文本數據:新建excel文件->選擇上方「數據」->選擇「獲取外部數據」->選擇「自文本」

2.選擇記錄鏈接狀況的文本netstatlog.txt,點擊「導入」

3.進入文件導入嚮導第一步,選中「分隔符號」,點擊「下一步」

4.進入文件導入嚮導第二步,選中所有分隔符號,點擊「下一步」

5.進入文件導入嚮導第三步,列數據格式選擇常規,點擊「完成」

6.鼠標選中左上角第一個單元格,而後點擊「肯定」

待分析數據以下:

第六步:對數據進行統計學分析:

1.首先查看全部聯網程序的聯網次數,具體excel操做以下:

①首先選中咱們要分析的列:

②其次點擊上方「插入」->「數據透視表」->「數據透視圖」

③默認選擇在一個新工做表中生成

④在右側「選擇要添加到報表的字段」中點擊對應字段右側的小箭頭->取消選擇那些沒有意義的字段,而後點擊「肯定」

②將該字段拖動到下方的「軸字段」和「數值」兩個區域中

⑥而後就能夠看到統計圖了

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

第一步:肯定監控木馬。我感興趣的是進程建立ProcessCreate、進程建立時間FileCreatTime、網絡鏈接NetworkConnect、遠程線程建立CreateRemoteThread。

第二步:寫配置文件。

1.瞭解一下配置文件應該怎麼寫:

①進程建立ProcessCreate的過濾事件選項有:

UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine

②進程建立時間FileCreatTime的過濾事件選項有:

UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime

③網絡鏈接NetworkConnect的過濾事件選項有:

UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName

④遠程線程建立CreateRemoteThread的過濾事件選項有:

UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction

其餘時間過濾器、過濾事件的選項、onmatch選項可取值、condition可設置的值、配置文件樣例,能夠參考使用輕量級工具Sysmon監視你的系統

2.寫與本身想要監控的事件相對應的配置文件。我建立的配置文件Sysmoncfg.txt內容以下:(配置文件是xml文件,爲了簡單編輯就直接命令爲.txt,每次用寫字本打開。)

<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>

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

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">QQBrowser.exe</Image>
    </FileCreateTime>
    
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">QQBrowser.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>
  • exclude至關於白名單,不用記錄。include至關於黑名單。
  • Image condition這裏要根據本身使用的瀏覽器更改,例如谷歌瀏覽器是「chrome.exe」,IE瀏覽器是「iexplore.exe」,我用的是QQ瀏覽器,(不用IE瀏覽器),進程名是「QQBrower.exe」。寫在exclude中就是不記錄由QQ瀏覽器建立的進程。
    • 想知道本身瀏覽器進程名,能夠查看上一階段的「netstatlog.txt」中的記錄。
  • 進程建立時間相似,也是不建立瀏覽器建立進程的時間。
  • 網絡鏈接過濾掉了瀏覽器的網絡鏈接、源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盤下。

第三步: 啓動sysmon。

1.下載老師提供的SysinternalsSuite201608壓縮包,解壓。

2.在命令提示符(管理員)中進入到該目錄下。win8中用管理員身份運行cmd方法:使用「win+x」調出win8開始菜單->選擇「命令提示符(管理員)」

2.安裝sysmon:執行命令sysmon.exe -i C:\Sysmoncfg.txt

3.這裏彈出的窗口點擊agree:

4.成功安裝

5.若是修改了配置文件,要運行指令:sysmon.exe -c C:\Sysmoncfg.txt

第四步:在事件查看器裏查看日誌

1.桌面「這臺電腦」圖標,右鍵菜單中,點擊打開「管理」。

2.點擊左側「系統工具」->「事件查看器」

3.點擊「事件查看器」右側小箭頭,選擇日誌的位置:應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational。

4.利用Sysmon具體分析日誌的例子我選擇了本身實驗二中生成的後門back.exe進行分析。

第一步:啓動回連、安裝到目標主機。

22:03:13時可找到運行後門文件back.exe相對應的日誌以下:

2、惡意軟件分析

分析該軟件在(1)啓動回連,(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件

(1)讀取、添加、刪除了哪些註冊表項

(2)讀取、添加、刪除了哪些文件

(3)鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)
第一步:使用virscan分析惡意軟件

virscan網站上查看後門軟件的文件行爲分析

第二步:下載安裝Systracer。

1.下載完成後進行安裝

->設置監聽端口號(我設成了後門生成時利用的端口)

->安裝完成

2.在打開後門前先快照一下,點擊「take snapshot」,按照如下步驟進行:

完成後顯示Snapshop #1

3.Kali打開msfconsole,完成相關設置後開始監聽,Windows運行後門後,拍攝快照:

完成後顯示Snapshop #2

4.接下來讓攻擊機獲取目標主機音頻、攝像頭、擊鍵記錄,而後生成快照:

5.進行分析:

①點擊上方「Applications」->左側「Running Processes」->找到後門進程「back.exe」->點擊「Opened Ports」查看回連地址、遠程地址和端口號:

②在快照界面「Snapshots」右下角點擊「Compare」,比對一下回連先後計算機發生的變化:

全部藍色標註的地方,就是先後發生變化的地方。
6.此外咱們能夠經過查看後門軟件的「opened handles」(打開的句柄)來對比:

實驗總結與體會

經過完成這幾回實驗,對惡意代碼有了較爲基礎的瞭解,目前單純靠殺軟已經很難實現對惡意代碼的查殺了(作了這麼屢次實驗,個人殺軟沒有一次成功檢測出後門),咱們須要學會經過一些工具來對系統進行監控並分析。

相關文章
相關標籤/搜索