2018-2019 20165235 網絡對抗 Exp4 惡意代碼分析

2018-2019 20165235 網絡對抗 Exp4 惡意代碼分析

實驗內容

系統運行監控

  • 使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出全部連網的程序,連了哪裏,大約幹了什麼(不抓包的狀況下只能猜),你以爲它這麼幹合適不。若是想進一步分析的,能夠有針對性的抓包。
  • 安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。
  • 參考:schtask與sysmon應用指導
  • 實際日誌的分析還須要發揮下本身的創造力,結合之前學過的知識如linux的文本處理指令等進行。分析的難點在於從大量數據中理出規律、找出問題。這都依賴對結果過濾、統計、分類等進一步處理,這就得你們會什麼用什麼了。

惡意軟件分析

  • 分析該軟件在(1)啓動回連(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。
  • 該後門軟件
    讀取、添加、刪除了哪些註冊表項
    讀取、添加、刪除了哪些文件
    鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)
  • 該實驗重點在「分析」,不是「如何使用某軟件」。組長、課題負責人要求寫細一點,其餘人能夠重點放在分析上。linux

    基礎問題回答

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

  • 我在網上搜到一款監視電腦的軟件Wise System Monitor,下載它能夠進行進程監控;硬件監控會詳細列出用戶計算機硬件信息;操做系統監控,查看本機的操做系統詳細信息;也能夠查看下載上傳速度、內存使用率和CPU使用率。
  • 能夠掃描日誌:
    方法一:使用可信軟件:可使用SREng軟件。
    方法二:在CMD使用指令:CHKDSK D: /F /R >D:\ xxx.txt,D盤下會出現一個 xxx.txt,那就是掃描日誌。
  • 能夠參考下面實驗內容進行監控。chrome

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

  • 若是是某個程序,能夠找出此程序,而且將此程序放入:Threatbook,virscan中進行分析。
  • 運行CMD --> 輸入wmic --> process能夠查看到進程的程序。
  • 使用「tasklist」命令查看具體進程的pid。採用ntsd -c q -p PID來殺死某一進程
  • 可使用一下實驗中採用到的Systracer分析註冊表差別、文件、運行進程等的不一樣。shell

    實踐過程記錄

    1. 系統運行監控——計劃任務

    TN:Task Name,本例中是netstat
    SC: SChedule type,本例中是MINUTE,以分鐘來計時
    MO: MOdifier
    TR: Task Run,要運行的指令是 netstat
    -bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口

    在cmd中輸入,C:\schtasks /create /TN 20165235netstat /sc MINUTE /MO 1/TR "cmd /c netstat -bn > c:\netstatlog.txt"

    在盤中創建文件5235netstatlog.bat文件,並將一下內容複製粘貼windows

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

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

    雙擊這個任務,點擊操做並編輯,將「程序或腳本」改成咱們建立的netstat5318.bat批處理文件,而且將添加參數設置爲空。


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

    如在"條件"選項卡中把「只有在計算機使用交流電源時才啓動此任務」選項關閉:

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

    2. 系統運行監控——利用Sysmon

    配置文件

    寫與本身想要監控的事件相對應的配置文件。編寫好的Sysmon5235.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>
    
      <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>
    
       <NetworkConnect onmatch="include"> 
        <DestinationPort condition="is">5235</DestinationPort>     
        <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」,我用的是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 命令行外殼程序。該外殼程序包括交互式提示和腳本環境,二者既能夠獨立使用也能夠組合使用工具

    啓動sysmon

  • 使用cmd進入sysmon的安裝目錄下輸入:sysmon.exe -i c:\sysmon5235.txt,出現以下界面,點擊agree便可。
  • 安裝成功圖:
  • 安裝完成後輸入:sysmon.exe -c c:\sysmon5235.txt來運行此程序。
  • 點擊「計算機」右鍵,點擊打開「管理」。點擊左側「系統工具」->「事件查看器」->應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational
  • 我使用ncat傳輸了後門程序,下爲檢測到此進程的圖:
  • 它還檢測到了第一個計劃檢測程序的進程:
  • 我使用ncat傳輸的後門程序進行了反彈鏈接:
  • 下圖爲反彈鏈接的記錄日誌:
    學習

    惡意軟件分析——Threatbook

    在上次實驗中已經使用過virscan網站進行惡意軟件的檢測,此次使用沙箱來進行檢測,我把上次實驗中的加了壓縮殼的後門程序放入,檢測狀況以下:


    網站

    惡意軟件分析——Systracer

    下載安裝Systracer

    下載完成->運行->agree->選第二個->設置監聽端口號5235->安裝完成:

    進行分析
  • 這裏我主要進行了三次快照,分別爲還未傳遞後門程序前、進行回連時、進行了回連以及進行錄音截屏記錄鍵盤輸入以及攝像頭拍照等操做後。
  • 點擊「take snapshot」,如圖:
  • 快照完成:(須要耐心的等待必定的時間):
  • 進行比對,點擊compare,三次文件出現的不一樣之處:
  • 能夠觀察到註冊表發生的變化:
  • 點擊上方「Applications」->左側「Running Processes」->找到後門進程「qy_upxed_Hyperion.exe」->點擊「Opened Ports」查看回連地址、遠程地址和端口號:
  • 接着返回實驗一:觀察到反彈鏈接時netstatlog的記錄以下:
  • 同時能夠看的到後門文件:
  • 一些增長的文件:

  • 當我反彈鏈接進行錄音時,使用到音頻的驅動程序:
  • Wireshark進行抓包分析:

  • 啓動前的設置;
  • 能夠把過濾條件設置爲:過濾規則設置爲ip.addr == kali的IP,我在這裏並沒用設置,由於既然第一步選擇好了網段就不必設置條件
  • 查看ncat鏈接時的流量包:
    操作系統

  • 查看反彈鏈接時的流量包:
  • 捕捉到一個APR地址解析協議的包,虛擬機將地址在局域網廣播:

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

    本次實驗沒有遇到難的問題,在系統運行監控—計劃任務時沒有設置最高運行權限,以及沒有在設置條件時將「添加參數」設置爲空出現了一些問題。

    實驗感想

    本次實驗作的比較順利,沒有遇到特別難的問題。經過本次實驗,學會了如何實時檢測計算機的進程以及網絡使用狀況,能夠查詢到攻擊者在計算機中注入的後門程序或者一些惡意軟件。靈活的使用Windows提供的文件批處理,以及一些免費的監控軟件,在不斷學習到新知識的同時加強了本身的防範意識。

相關文章
相關標籤/搜索