2018-2019-2 網絡對抗技術 20165230 Exp4 惡意代碼分析

1.實驗內容

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

2.實驗過程

任務一:系統運行監控

每隔五分鐘記錄本身的電腦,並進行分析

  • 看有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出全部連網的程序,連了哪裏,大約幹了什麼(不抓包的狀況下只能猜),你以爲它這麼幹合適不。若是想進一步分析的,能夠有針對性的抓包。

結合windows計劃任務與netstat命令shell

  • netstat是一個監控TCP/IP網絡的很是有用的命令行工具,咱們能夠結合windows自帶的計劃任務
  • 每5分鐘執行netstat -bn這條指令,並將結果重定向到一個txt文件當中。
  • -b可顯示在建立網絡鏈接和偵聽端口時所涉及的可執行程序,-n顯示全部已創建的有效鏈接。
  • 咱們先寫出以下的批處理文件:
date /t >> D:\5230exp4\netstat.txt
time /t >> D:\5230exp4\netstat.txt
netstat -bn >> D:\5230exp4\netstat.txt

接着在「控制面板」中搜索「計劃任務」,並建立新任務:
小程序

記住必定要在標紅這裏勾選使用最高權限運行。不然會出錯windows

  • 建立觸發器,選擇每隔5分鐘觸發一次
    後端

  • 新建操做,選擇5230netstat.bat的腳本
    瀏覽器

  • 而後就開始漫長的等待;
    【注】:這裏須要一直保持開機聯網狀態,此外,若是發現netstatlog.txt沒有每分鐘更新一次,多是由於設置時默認選擇了「只有計算機使用交流電源時才啓用此任務」,因此一旦咱們不給電腦充電,任務就無法運行。解決方法就是在netstat任務屬性的設置中取消選中該選項,以下圖所示,而後就能夠發現每隔一分鐘命令行會閃現一下,其中包含netstatlog.bat中的三行指令,netstatlog.txt本身就隨之更新了。
    網絡

  • 一天過去後,用excel分析數據。tcp

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

2.選擇記錄鏈接狀況的文本netstat.txt,點擊「導入」 -> 選中「分隔符號」,
學習

3.點擊「下一步」->選中所有分隔符號,點擊「下一步」 -> 列數據格式選擇常規,點擊「完成」。

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

  • 對數據進行統計學分析:
    1.首先查看全部聯網程序的聯網次數,具體excel操做以下:
    ①首先選中咱們要分析的列
    ②其次點擊上方「插入」->「數據透視圖」
    ③默認選擇在一個新工做表中生成
    ④在右側「選擇要添加到報表的字段」中點擊對應字段右側的小箭頭->而後點擊「肯定」
    ⑤將該字段拖動到下方的「軸字段」和「數值」兩個區域中

⑥而後就能夠看到咱們的統計圖進行分析了:

由上圖所示,聯網最多的是瀏覽器對應的程序「MicrosoftEdge.exe」,排名第二的是「vmware.exe」,其次是「有道雲」和「網易雲音樂」,沒發現什麼其餘可疑的程序。

安裝配置sysinternals裏的sysmon工具

第一步:根據本身想要監控的事件寫對應的配置文件

  • 5230sysmoncfig.xml內容以下
<Sysmon schemaversion="3.10">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <ProcessCreate onmatch="exclude">     
      <Image condition="end with">chrome.exe</Image> 
    </ProcessCreate>

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
    </FileCreateTime>
    
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.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>

第二步:安裝sysmon

  • 下載老師提供的SysinternalsSuite201608壓縮包,並解壓。
  • 在命令提示符(管理員)中進入到解壓的目錄下。
  • 安裝sysmon:
    .\Sysmon.exe -i C:\5230sysmoncfig.xml

  • 彈出的窗口點擊agree:

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

  • 在電腦搜索裏輸入「查看事件日誌」,就能夠進入

  • 選擇日誌的位置:應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational。

  • 利用Sysmon具體分析日誌的例子選擇了有道雲程序進行分析。

  • 在詳細信息裏能夠看到顯示得有具體時間、運行的程序、使用的協議、源IP、目的IP等等。
  • 再看一下本次實驗中運行的.bat文件事件。

  • 有點好奇svchost.exe這是什麼文件,因而去百度了一下,大概是要執行.bat這個文件得注入到svchost.exe這個程序中啓動,屬於系統進程。

    svchost.exe是微軟Windows操做系統中的系統文件,微軟官方對它的解釋是:svchost.exe 是從動態連接庫 (DLL) 中運行的服務的通用主機進程名稱。這個程序對系統的正常運行是很是重要,並且是不能被結束的。許多服務經過注入到該程序中啓動,因此會有多個該文件的進程。

  • 還了解到這個進程在windows進程中佔據很大一部分的資源,svchost.exe很是容易被病毒所利用,因而在任務管理器中搜了一下,天吶,確實佔了很是大的部分,也許這是致使電腦卡的緣由之一。

  • 找到了回連時執行的back.exe

  • 回連之後,在kali中執行了dir的命令,因而在上一條日誌緊接着就找到了這個!

  • SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要做用是創建快速索引文件,讓用戶可以更好的搜索出電腦中的任意資料。它會在計算機空閒時自動掃描索引位置的文件名、屬性信息和給定類別的文件內容,這些索引位置默認包括桌面、收藏夾、開始菜單、系統目錄。

任務二:惡意軟件分析

分析該軟件在

  • (1)啓動回連
  • (2)安裝到目標機
  • (3)其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。

該後門軟件

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

靜態分析工具

ViruScan

  • 用了不少上次實驗生成的exe文件去掃描,結果以下

  • 能夠看見它的行爲是創建到一個指定端口:5230
  • 刪除了一些註冊表鍵值,這一點在以後的動態分析裏也能夠看見
  • 檢測自身是否被調試
  • 建立事件對象

PEID

  • 把加了UPX殼的程序放進去,能掃出來

  • 換一個用Hyperion加過密的殼,竟然沒有掃出來,在上一次實驗中對殼這個東西好感度不高,這個軟件對加密殼直接沒掃出來,好吧。。。。

PE explorer

  • 剛打開PE Explorer咱們就會看到後門程序的頭部信息。

  • 查看程序結頭信息:

  • 進行反彙編能夠看見程序的入口點:

  • 查看引用的DLL庫,發現了比較容易被木馬病毒盯上的文件:

    • ws2_32.dll:若系統文件ws2_32.dll出錯,極有多是盜號木馬、流氓軟件等惡意程序所致使,其感染相關文件並加載起來,一旦殺毒軟件刪除被感染的文件,就會致使相關組件缺失,遊戲等經常使用軟件運行不起來,
    • WSOCK32.dll:Windows Sockets應用程序接口,用於支持不少Internet和網絡應用程序。是一個對系統很關鍵或很可疑的文件,易遭受木馬病毒(如「犇牛」病毒)破壞致使系統找不到此文件,出現錯誤提示框。

動態分析工具

快照比對(SysTracer工具)

  • 在老師的碼雲中有該軟件的安裝包,下載下來便可,設置監聽端口爲5230。

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

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

  • 進行分析:
  • ①點擊上方「Applications」->左側「Running Processes」->找到後門進程「back.exe」->點擊「Opened Ports」查看回連地址、遠程地址和端口號:
  • ②在快照界面「Snapshots」右下角點擊「Compare」,比對一下回連先後計算機發生的變化:

  • 回連成功後,進一步操做,如捕獲音頻、啓動攝像頭、屏幕截屏,而後再抓個快照對比一下
  • 找到了幾個有意思的地方
  • 首先是這個!根據capture捕獲這個單詞就知道這一條有問題,進一步分析,這應該是修改了捕獲音頻的鍵值

  • 接下來再看這一條,看上去有點奇怪,確實有問題,百度了一下,解釋說是「映像劫持」,聽上去有點高大上,大概的意思就是使用忽略路徑的方式來匹配它所要控制的程序文件名。常常被一些病毒木馬程序控制

  • 再在快照界面「Snapshots」右下角點擊「View Difference List」看一下總的

  • 發現它增長了不少.dll.mui文件,可是沒有找到具體是作什麼的,我猜應該是假裝潛伏,

    關於HKEY_LOCAL_MACHINE的介紹:
    它保存了註冊表裏的全部與這臺計算機有關的配置信息
    被修改的部分是Fastcache,即高速緩衝存儲器。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control這個子鍵包括了win95控制面板中的信息。不要編輯這些信息,由於一些小程序的改變在不少地方,一個丟失的項會使這個系統變的不穩定。

  • 此外,一些Systracer未受權的地方咱們是無法查看的。

抓包分析(WireShark工具等)

  • 首先要選對網絡,由於個人虛擬機設置的是net8,剛開始沒有選對網絡,也就捕獲不到包。

  • 在回連以前開始捕獲
  • 由於我在虛擬機裏設置的是TCP鏈接,所以全是TCP的包,能夠看見還鏈接了219.126.28.25外部IP

  • 找到了主機與KALI三次握手成功

  • 傳遞的包爲:SYN->[SYN+ACK]->ACK

使用TCPView查看惡意代碼回連先後端口開放狀況

  • 回連成功時能夠看見鏈接時的端口開放狀況

使用Process Explorer監視系統和應用程序

Process Explorer能夠實時監控計算機的進程狀態,咱們能夠用它來看看Meterpreter進程遷移的行爲。

  • 首先運行後門程序,咱們找到了它的進程:

  • 接着咱們準備把它遷移到notepad++.exe的進程中,還沒遷移以前是notepad++.exe是這樣的:

  • 而後,咱們把它遷移到notepad++.exe中去:

  • 咱們發現多了一個線程,這應該就是Meterpreter遷移到notepad++z中建立的新線程

3.問題回答

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

  1. 監控網絡鏈接
  2. 監控是否建立新的進程
  3. 監控註冊表項目
  4. 監控系統日誌
  5. 監控是否常常鏈接未知IP

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

  1. PEID、ExeinfoPE等查殼工具內先查殼,經過入口特徵和區段特徵來識別,而後脫殼。
  2. TCPView、Wireshark等網絡工具查看是否存在可疑鏈接
  3. Systracer拍攝快照,比對先後區別,分析改變的註冊表及文件等信息。
  4. PE Explorer:反彙編是否有問題,是否有不正常的Data
  5. Systracer:程序運行先後是否有註冊表、端口、文件的變化

4.實踐總結與體會

此次實驗安裝了許多分析工具,也掌握了許多分析方法,但願能夠經過此次實驗中使用的方法手動監測本身電腦裏的病毒。同時,弄清楚一個程序是否是病毒,更要熟悉本身的電腦,清楚某些端口號的做用,清楚什麼是可疑的動態。這學期咱們還選修了一門課程是計算機病毒,經過此次實驗也對這一門課奠基了更多的基礎,而經過學習計算機病毒課又會對網絡對抗有進一步的認識與掌握。

相關文章
相關標籤/搜索