NetSec2019 20165327 Exp4 惡意代碼分析

NetSec2019 20165327 Exp4 惡意代碼分析

1、實踐目標

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

2、實踐內容概述

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

3、基礎問題回答

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

4、實踐步驟

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

①管理員身份打開命令行使用schtasks /create /TN netstat5327 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat5327.txt"命令建立計劃任務netstat5327windows

TN是TaskName的縮寫,建立的計劃任務名是netstat5327;
sc表示計時方式,咱們以分鐘計時填MINUTE;
TR=Task Run,要運行的指令是 netstat
bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口;安全

表示輸出重定向,將輸出存放在c:\netstat5327.txt文件中
網絡

②在C盤中建立一個netstat5327.bat腳本文件,寫入如下內容
date /t >> c:\netstat5327.txt
time /t >> c:\netstat5327.txt
netstat -bn >> c:\netstat5327.txt工具

③打開任務計劃程序,能夠看到新建立的這個任務:
firefox

④雙擊這個任務,點擊操做並編輯,將「程序或腳本」改成咱們建立的netstat5327.bat批處理文件,肯定便可。
命令行

在屬性中「常規」一欄最下面勾選「使用最高權限運行」,否則程序不會自動運行
線程

⑥還能夠自行更改該任務的其餘屬性,如在"條件"選項卡中能夠看到,電源選項中默認操做爲「只有在計算機使用交流電源時才啓動此任務」,那麼使用電池電源時就會中止任務。注意:若是沒有修改默認操做,任務不管如何都沒法執行可能只是由於拔掉了電源。爲了統計足夠多的數據,最好把這個取消掉。

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

記錄此時已足夠進行分析,將這些數據導入Excel

查詢出現的未知進程:

若是監聽得久也能夠經過Excel表分析出各個進程聯網的頻率找出異常進程在進行處理

二、使用sysmon工具監控系統

①在微軟官方文檔中,能夠查看全部操做。

②下載sysinternals。下載地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysmon

③一鍵安裝命令:sysmon -accepteula -i -n

④建立配置文件Sysmon20165327.xml

<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>
      <Image condition="end with">firefox.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
      <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">firefox.exe</TargetImage>
      <TargetImage condition="end with">svchost.exe</TargetImage>
      <TargetImage condition="end with">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
    
    <ProcessCreate onmatch="include">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
      <Image condition="end with">firefox.exe</Image>
    </ProcessCreate>
    
    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">firefox.exe</Image>   
    </FileCreateTime>
    
    <FileCreateTime onmatch="include" >
      <TargetFilename condition="end with">.tmp</TargetFilename>       
      <TargetFilename condition="end with">.exe</TargetFilename>  
    </FileCreateTime>
    
  </EventFiltering>
</Sysmon>

⑤用sysmon -c Sysmon20165327.xml命令指定配置文件:報錯版本不匹配,改爲本身對應的版本便可:

⑥從新輸入sysmon -c Sysmon20165327.xml命令,完成配置。

sysmon -u命令爲中止服務。

⑦打開【開始】菜單,搜索【事件查看器】並打開,在左側控制檯樹按照【事件查看器】->【應用程序和服務日誌】->【Microsoft】->【Windows】依次展開,找到【Sysmon】下的【Operational】並雙擊打開:

打開以前Exp3植入的5327upxed.exe後門,Kali攻擊機用meterpreter回連,能夠看到鏈接的詳細信息,包括ip、端口、pid等:

在事件查看器裏以進程號查找關鍵字

三、對各類軟件進行惡意軟件分析

(1)使用VirusTotal分析惡意軟件


detail:

能夠看出它的MD5摘要值、SHA-一、文件類型、文件大小,以及TRiD文件類型識別結果。
也能夠看該惡意代碼的算法庫支持狀況:

(2)使用Process Explorer分析惡意軟件


也能夠詳細查看該進程使用的CPU,虛擬內存空間、物理內存空間、I/O等

(3)使用Process Monitor分析惡意軟件

簡介:Process Monitor 是一款由 Sysinternals 公司開發的包含強大的監視和過濾功能的高級 Windows 監視工具,可實時顯示文件系統、註冊表、進程/線程的活動。
查找惡意進程:

還能夠看到這個後門程序引用的各類其餘的庫

(4)使用systracer分析惡意軟件

主要想嘗試一下,拍兩張試一試(血的教訓:在物理機上把本機搞崩了,仍是在win7虛擬機上,又快又安全)
傳惡意軟件前:

傳惡意軟件後:

"找不一樣":

能夠選擇看各種Reqs、Flies、Apps:

明顯的特徵是增長(add)了這個惡意軟件

也能夠看出開機時計算機系統無時無刻不在工做着(add/del/mod/……)

(5)使用wireshark抓包分析惡意軟件

回連完成後結束捕獲,把過濾規則設置爲ip.addr == 172.30.2.15,把沒用的包過濾掉

能夠看到三次握手的以及有大量的TCP包
用dir指令查看了靶機的當前目錄

遇到問題:
本想查看與虛擬機有關的數據包,以及在回連過程當中的數據是什麼樣的
然而用了那麼久的wireshark失靈了?! 試了幾回也沒找到,具體緣由天天驗收時找老師討論……

相關文章
相關標籤/搜索