20165310 NetSec2019 Week6 Exp4 惡意代碼分析

20165310 NetSec2019 Week6 Exp4 惡意代碼分析

1、實驗要求

一、系統運行監控

  • 使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。
  • 安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。

二、惡意軟件分析

分析該軟件在git

  • 啓動回連
  • 安裝到目標機
  • 及其餘任意操做時(如進程遷移或抓屏)

該後門軟件chrome

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

2、實驗步驟

一、windows計劃任務

  • 以管理員身份打開cmd,使用指令schtasks /create /TN 5310netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt建立計劃任務5315netstat,記錄每1分鐘計算機聯網狀況:shell

    • TN是TaskName的縮寫,咱們建立的計劃任務名是netstat5318;windows

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

  • 沒法在C盤直接建立txt文件,在桌面創建一個netstatlog.txt文件,內容爲:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt

這些指令是用來將記錄的聯網結果格式化輸出到netstatlog.txt文件中sass

  • 將後綴名改成.bat後,用管理員身份將該文件放入C盤安全

  • 打開計算機管理的「任務計劃程序庫」,能夠查看到5310netstat任務就緒網絡

  • 打開其屬性,修改其指令爲c:\netstatlog.bat,添加參數一欄刪除tcp

  • 爲防止運行過程出錯,在條件中勾除「只有在計算機使用交流電源時才啓動此任務」,在屬性中「常規」一欄最下面勾選「使用最高權限運行」函數

  • 此時,能夠在C盤的netstat5315.txt文件中查看到本機在該時間段內的聯網記錄:

  • 等待足夠的時間,將日誌經過「數據-自文本」導入Excel,選擇分割符號,進行生成

  • 利用Excel的數據生成透視圖,查看相關信息

  • 對錶格進行分析:

    • 常見的應用軟件:Chrome.exe、Tim.exe、QQUrlMgr.exe、WINWORD.exe、OneDrive.exe、BaiduNetdisk相關進程,相對數目比較多可是比較正常,是正常使用電腦的記錄
    • 可信任的後臺進程:
      • MSI、DragonCenter_Update.exe:我電腦品牌自帶的管理工具
      • SeaarchUI.exe:Cortana的搜索功能
      • backgroudTaskHost.exe:win10電腦鎖屏時,顯示出現的圖片信息的進程 ,進程緩存下載圖片
      • ChsIME、sppextcomobj.exe:微軟輸入法相關進程
      • juCheck.exe、juSched.exe:Java升級檢測程序(其實也多是蠕蟲,可是電腦感染蠕蟲比較明顯,能夠排除)
      • logitechg_discord.exe:鼠標配置程序
      • PlacesServer.exe:微軟官方文檔給出了P開頭的進程包含,別的信息也查不到,認爲安全
      • Vedio.UI.exe:視頻播放器
      • BITS:微軟後臺傳輸服務
      • DIagTrack:微軟收集用戶信息的工具,介意能夠禁止,可是收集信息包括系統報錯等
      • DosVC:使用DOS命令管理服務,雖然我沒有使用可是後臺計劃一直在調用cmd,使用率仍是挺高的
      • wlidSVC: Office在線存儲服務後臺進程,和word使用頻數一致,認爲安全
      • WpnService: 查不到具體做用,貌似和客戶端調用與Windows圖形化界面有點關係,VirScan所有經過,也沒有看到能夠假裝的信息
    • 有必定可疑性的進程:
      • ActionUriServer.exe:系統文件,可被篡改,尤爲是當它們存在於C: Windows或C: Windows  System32目錄時,被篡改可能性更大,惋惜記錄中沒有應用所在位置,自行在C盤搜索發現還在系統目錄,而且根據記錄去查詢外部ip:216.58.199.110,發如今美國,且和個人Chrome.exe外部ip一致,因此我認爲可疑性不是特別大。
      • svchost.exe:數目衆多,可是tasklist發現都有對應進程而不是暫缺,認爲暫時安全。
    • 可疑性比較大的進程
      • HxT sr.exe:微軟核心文件,一樣要肯定他的位置(默認C:\Program File),仍是經過ip確認在美國,可是並沒能在默認位置搜索到該exe。
      • Isass.exe:據查極有多是Optix.Pro病毒的一部分,ip很可疑在北京市海淀區,並且微軟官方文檔沒有這一項,致使我很慌。可是去查了病毒特性進行註冊表排查,發現沒有被更改,因此暫時認爲安全。

二、使用sysmon工具

  • 首先建立配置文件sysmon.xml,文件中包含指令:
<Sysmon schemaversion="4.12">
  <!-- 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>
  • 在官網上下載sysmon工具

  • 以管理員身份打開命令行,使用指令Sysmon.exe -i C:\sysmon.xml安裝sysmon

  • 發現版本不對,可是安裝完成了

  • 修改配置文件進行監控,而且更新版本號

    <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">iexplorer.exe</Image>
          <SourcePort condition="is">137</SourcePort>
          <SourceIp condition="is">127.0.0.1</SourceIp>
        </NetworkConnect>
    
        <NetworkConnect onmatch="include"> 
          <DestinationPort condition="is">5310</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>

    更改部分:增長監聽端口53十、44三、80服務

  • 命令Sysmon.exe -c C:\sysmon.xml使配置文件生效

  • 在事件查看器中的應用程序和服務日誌下,查看Microsoft->Windows->Sysmon->Operational。在這裏,咱們能夠看到按照配置文件的要求記錄的新事件,以及事件ID、任務類別、詳細信息等等。

    • 看到咱們回連的後門程序shellcode_upx.exe

    • 在kali中輸入dir、getuid等命令後,在被控主機未進行任何操做的狀況下,出現系統進程調用等狀況

三、惡意軟件分析

靜態分析

  • 文件掃描(VirusTotal、VirusScan工具等)
  • 文件格式識別(peid、file、FileAnalyzer工具等)
  • 字符串提取(Strings工具等)
  • 反彙編(GDB、IDAPro、VC工具等)
  • 反編譯(REC、DCC、JAD工具等)
  • 邏輯結構分析(Ollydbg、IDAPro工具等)
  • 加殼脫殼(UPX、VMUnPacker工具等)

我主要選取如下幾種方法和工具來進行分析

(1) 文件掃描(VirScan工具)

  • 使用在線VirusScan工具對實驗中的後門進行掃描,發現14/49機率被查殺:

  • 在行爲分析報告中能夠看到,UPX殼做爲標識信息被掃出

(2)文件格式識別(peid工具)

PEiD(PE Identifier)是一款著名的查殼工具,其功能強大,幾乎能夠偵測出全部的殼,其數量已超過470種PE文檔的加殼類型和簽名。

  • 下載Peid工具,對無殼後門程序進行查殼,發現顯示無:

  • 對本次的加殼後門進行掃描

​ 查出UPX的殼

(3) 反編譯、反彙編(PE Explorer工具)

PE Explorer是功能超強的可視化Delphi、C++、VB程序解析器,能快速對32位可執行程序進行反編譯,並修改其中資源。該軟件支持插件,你能夠經過增長插件增強該軟件的功能,原公司在該工具中捆綁了UPX的脫殼插件、掃描器和反彙編器,很是好用。

  • 能夠查看程序頭部信息

  • 點擊「導入-引用」,查看其引用的dll庫分析

    • KERNEL32.dll:控制着系統的內存管理、數據的輸入輸出操做和中斷處理。

    • msvcrt.dll:是微軟編譯軟件的函數庫。

動態分析

  • 快照比對(SysTracer、Filesnap、Regsnap工具等)
  • 抓包分析(WireShark工具等)
  • 行爲監控(Filemon、Regmon、ProcessExplorer工具等)
  • 沙盒(NormanSandbox、CWSandbox工具等)
  • 動態跟蹤調試(Ollydbg、IDAPro工具等)

我主要選取如下幾種方法和工具來進行分析:

(1)快照比對(SysTracer工具)

  • 下載SysTracer工具

  • 點擊右側的take snapshot

    ,存儲快照

    • 快照一:未移植後門程序
    • 快照二:移植後門程序並執行dir、getuid等指令

  • 經過右下角的compare鍵或者View Differences Lists比對各快照,進行分析,能夠看到不少有關後門程序的增長和修改操做

  • 還能夠查出後門軟件對應回連的ip與端口:

  • 對於原來註冊表的修改、刪除操做

(2)抓包分析(WireShark工具)

Wireshark(前稱Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,並儘量顯示出最爲詳細的網絡封包資料。

  • 因爲後門在捕獲流量的時候已經回連,沒能捕捉到回連的流量包,可是發現發出命令後,以ip爲過濾條件,能夠看到整個攻擊過程幾乎都是經過tcp實現的

3、實驗中遇到的問題

  • 安裝sysmon權限不夠
    • 用管理員身份啓動cmd
  • wireshark捕捉不到對應流量包
    • 選錯了網卡,從新選擇網卡進行捕捉
  • win7中wireshark安裝報錯
    • 換用真機繼續試驗

4、實驗總結

一、實驗後回答問題

  • 若是在工做中懷疑一臺主機上有惡意代碼,但只是猜測,全部想監控下系統一每天的到底在幹些什麼。請設計下你想監控的操做有哪些,用什麼方法來監控。
    • 使用windows自帶的schtasks指令設置一個計劃任務,每隔必定的時間對主機的聯網記錄等進行記錄,再使用Excel等軟件協助分析
    • 使用sysmon工具,經過配置想要監控的端口、註冊表信息、網絡鏈接等信息,記錄相關的日誌文件。
    • 利用wireshark查看數據包,進行流量分析
  • 若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。
    • 使用PEID查看其是否加殼,若是有進行脫殼操做。
    • 使用Wireshark進行抓包分析,監視其與主機進行的通訊過程。
    • 使用systracer工具分析惡意軟件,進行快照的對比(註冊表、文件等).
    • 使用Process Explorer查看調用的程序庫等等

二、實驗感想

​ 本次實驗對於我來講,花費時間最長的部分不在於第二部分、第三部分的惡意代碼分析,而在於第一部分日誌記錄的後臺文件的解讀,在平常生活中最困難的部分實際上是尋找到潛伏的惡意代碼,經歷過免殺等以前的實驗操做後,我對於軟件的分析持有能夠參考,可是也要懷疑的態度。

​ 在第一部分的分析過程當中,針對系統正常後臺咱們也應該持有疑問態度,他是不是惡意代碼假裝而成,是否被修改等,能夠經過咱們使用的應用是否須要調用他、日誌記錄的ip是否正常、程序所在位置是否在默認位置、註冊表是否被更改等信息綜合肯定,SysTracer工具是個理論上很好的工具可是真機環境其實更加複雜,也數據龐大冗雜,我並不認爲適合咱們平時平常的總體分析,可是能夠搭建沙盒對於已經找到的能夠軟件進行分析。

相關文章
相關標籤/搜索