1. 程式人生 > >2018-2019-2 網絡對抗技術 20165210 Exp4 惡意代碼分析

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

興趣 成了 詳細 使用 計時 hand 方式 不知道 退出

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

一、實驗目標

  • 首先是監控你自己系統的運行狀態,看有沒有可疑的程序在運行。
  • 其次是分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具盡量使用原生指令或sysinternals,systracer套件。
  • 最後假定將來工作中你覺得自己的主機有問題,就可以用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行為與性質。

二、實驗內容

1.系統運行監控

  • 使用如計劃任務,每隔一分鐘記錄自己的電腦有哪些程序在聯網,連接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出所有連網的程序,連了哪裏,大約幹了什麽(不抓包的情況下只能猜),你覺得它這麽幹合適不。如果想進一步分析的,可以有針對性的抓包。
  • 安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控自己主機的重點事可疑行為。

2.惡意軟件分析

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

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

三、實驗步驟

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

  • 使用
schtasks /create /TN netstat5210 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat5210.txt"

命令創建計劃任務netstat5210

技術分享圖片

  • 其中,TN是TaskName的縮寫;sc表示計時方式,以分鐘計時填MINUTE;TR=Task Run,運行的指令是netstat-bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口。
  • 在C盤中創建一個netstat5210.bat腳本文件,寫入以下內容
date /t >> c:\netstat5210.txt
time /t >> c:\netstat5210.txt
netstat -bn >> c:\netstat5210.txt
  • 在左下角Windows處右鍵打開計算機管理-任務計劃程序,可以看到我們新創建的任務:

技術分享圖片

  • 雙擊這個任務,點擊操作並編輯,將“程序或腳本”改為我們創建的netstat5210.bat批處理文件,確定即可,要把參數清空。

技術分享圖片

  • 然後點擊條件,取消電池選項中的只在交流電才運行的操作,避免一會兒斷電出麻煩。

技術分享圖片

  • 在計算機管理界面對該任務右鍵點擊運行,可在netstat5210.bat目錄下看到一個txt文本文件,打開就可看到每隔一分鐘被輸到這裏的聯網數據的記錄:

技術分享圖片

  • 然後我們打把遊戲等一下,讓它多記錄一下以便讓我們分析。
  • 打開excel-數據-自文本-分隔符號-全部勾選分隔符號

技術分享圖片
技術分享圖片

  • 分析-數據透視表-勾除不必要選項
  • 將字段拖動到下面的框中,就可以看到統計圖了

技術分享圖片
技術分享圖片

  • 由統計數據可知,聯網最多的是qq,說明剛剛聯網qq用的比較多,其次就是有道(哈哈哈寫博客),還有一些其他的,我沒有開虛擬機和360,所以這裏沒有後門程序和虛擬機什麽的,這時的電腦是比較安全的,沒有什麽可疑的操作。

2.安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控自己主機的重點事可疑行為

  • 確定監控目標:

選擇的是進程創建ProcessCreate、進程創建時間FileCreatTime、網絡連接NetworkConnect、遠程線程創建CreateRemoteThread。

  • 寫配置文件

寫與自己想要監控的事件相對應的配置文件。編寫好的20165210Sysmoncfig.txt內容如下:(配置文件是xml文件,為了簡單編輯就直接命令為.txt,每次用寫字本打開。)

<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">MicrosoftEdgeCP.exe</Image> 
     </ProcessCreate>

     <FileCreateTime onmatch="exclude" >
       <Image condition="end with">MicrosoftEdgeCP.exe</Image>
     </FileCreateTime>

     <NetworkConnect onmatch="exclude">
       <Image condition="end with">MicrosoftEdgeCP.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>

1.exclude相當於白名單,不用記錄。include相當於黑名單

2.Image condition根據自己使用的瀏覽器更改,如谷歌瀏覽器是“chrome.exe”,IE瀏覽器是“iexplore.exe”,我用的是輕量版的IE瀏覽器是“MicrosoftEdgeCP.exe”(可在上面的netstat5210.txt中找到進程名稱),寫在exclude中就是不記錄由QQ瀏覽器創建的進程。
進程創建時間類似,也是不創建瀏覽器創建進程的時間。

3.網絡連接過濾掉了瀏覽器的網絡連接、源IP為127.0.0.1的網絡連接和目的端口為137的連接服務,且查看目的端口為80(http)和443(https)的網絡連接。(137端口的主要作用是在局域網中提供計算機的名字或IP地址查詢服務,一般安裝了NetBIOS協議後,該端口會自動處於開放狀態。127.0.0.1表示本機IP。)

4.遠程線程創建記錄了目標為explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的遠程線程。

5.explorer.exe是Windows程序管理器或者文件資源管理器

6.svchost.exe是一個屬於微軟Windows操作系統的系統程序,是從動態鏈接庫 (DLL) 中運行的服務的通用主機進程名稱。

7.winlogon.exe是Windows NT 用戶登陸程序,用於管理用戶登錄和退出。

8.powershell.exe是專為系統管理員設計的新 Windows 命令行外殼程序。該外殼程序包括交互式提示和腳本環境,兩者既可以獨立使用也可以組合使用。

  • 啟動sysmon:
  • 下載sysmon,解壓。
  • 安裝sysmon:以管理員身份執行命令sysmon.exe -i C:\20165210Sysmoncfig.txt
  • 輸入命令sysmon -accepteula -i -n

技術分享圖片

  • 查看“事件查看器”,選擇日誌的位置,應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational

技術分享圖片

  • 分析實驗三生成的後門程序20165210-jk.exe,按步驟執行到回連

技術分享圖片

  • 在點擊Sysmon-Operational刷新記錄,找到運行後門文件20165210-jk.exe相對應的日誌如下

技術分享圖片

  • kali下執行shell

技術分享圖片

  • 發現C:\Windows\SysWOW64\cmd.exe這樣一個進程,其顯示目錄在後門程序目錄下,很顯然與後門程序相關,因為Windows下的cmd.exe是64bit的,kali回連獲取的windows的cmd程序是32位的

技術分享圖片

  • 執行了record_mic截獲音頻

技術分享圖片

  • 發現了svchost.exe,再截獲視頻時也發現了這個,so,應該與後門有關

技術分享圖片

3.惡意軟件分析

使用VirusTotal分析惡意軟件

  • 將實驗三生成的後門放在VirusTotal下掃描

技術分享圖片

  • 看一下後門詳細資料,發現有MD5和SHA-1算法,還有文件的大小類型等。

技術分享圖片

  • 看一下加殼情況

技術分享圖片

  • 看一下可執行的算法庫信息

技術分享圖片

使用PEiD進行外殼檢測

  • PEiD(PE Identifier)是一款著名的查殼工具,其功能強大,幾乎可以偵測出所有的殼。
  • 下載安裝選擇加殼文件文件路徑或直接把加殼文件拖到裏面,可以看到所加殼upx版本為0.89.6

技術分享圖片

  • 繼續可看到其詳細信息

技術分享圖片

使用PE Explorer分析惡意軟件

  • PE Explorer是功能超強的可視化Delphi、C++、VB程序解析器,能快速對32位可執行程序進行反編譯,並修改其中資源
  • 下載PE Explorer並將後門文件導入並查看程序頭部信息

技術分享圖片

  • 視圖-導入,查看dll庫分析

技術分享圖片

  • KERNEL32.dll:控制著系統的內存管理、數據的輸入輸出操作和中斷處理。
    msvcrt.dll:是微軟編譯軟件的函數庫。
  • USER32.dll:Windows用戶界面相關應用程序接口,用於包括Windows處理,基本用戶界面等特性,如創建窗口和發送消息。它是一個對系統很關鍵或很可疑的文件,易遭受木馬病毒破壞導致系統找不到此文件,出現錯誤提示框。
  • WSOCK32.dll:Windows Sockets應用程序接口,用於支持很多Internet和網絡應用程序。是一個對系統很關鍵或很可疑的文件,易遭受木馬病毒破壞導致系統找不到此文件,出現錯誤提示框。
  • 我發現後門文件裏大多數都會有KERNEL32.dll。所以後門軟件可以控制操作

使用SysTracer分析後門軟件的運行過程

  • SysTracer是一款可以分析你的計算機文件,文件夾和註冊表項目改變的系統實用工具。你可以在任何想要的時間獲取無數個屏幕快照,比較任何一對想要的屏幕快照,並且觀察其間的不同之處。獲取屏幕快照通常會持續幾分鐘的時間,這取決於文件和文件夾的數量和註冊表項目的總數。
  • 進入win7虛擬機,進入安裝選擇第二個,next設置端口為5210,安裝完成後進入界面

技術分享圖片

  • 點擊take snapshot(創建快照),接著Start

技術分享圖片

  • 未運行後門程序,保存為Snapshot #1

技術分享圖片

  • 運行後門程序並在kali中實現回連,保存為Snapshot #2

技術分享圖片

  • 在kali中使用dir指令,保存為Snapshot #3

技術分享圖片

  • 在kali中使用record_mic指令,保存為Snapshot #4

技術分享圖片

  • 我們選中1、2進行比較,可以看到運行後門進行回連後的變化
  1. 註冊表的變化

技術分享圖片

  1. 端口變化

技術分享圖片

  1. 增加的dll

技術分享圖片

  • 我們選中2、3進行比較,看執行dir指令後的變化
  1. 發現註冊表又新增了兩個配置信息

技術分享圖片

  1. 然後我們再打開opened handles對比他們做了什麽

技術分享圖片

  • 我們選中2、4進行比較,看執行record_mic指令後有什麽變化
  1. 註冊表中又有新的變化

技術分享圖片

  1. 發現增加了一些新的文件都與後門有關

技術分享圖片

  1. 而且發現新增加的文件dll什麽的都與多媒體有關

使用wireshark對流量進行抓包分析

  1. 先打開wireshark捕包,然後進行回連,然後過濾ip.addr == 192.168.16.143

技術分享圖片

可以看到Wireshark上捕獲到大量的TCP傳輸,然後進行其他的操作,發現Kali會不斷給Windows傳一大堆ACK包,有時還伴有PSH+ACK包。

技術分享圖片

四、實驗中遇到的問題

  1. 安裝sysmon時發現這個問題
    技術分享圖片

參考了學長的博客解決了這個問題
2.一開始我一直是用win7做的,做到wireshark時在win7上安裝上了之後發現用不了,沒有發現網絡接口,不知道什麽原因,然後就在主機上裝了做的。

五、實驗中的體會和感受

這次實驗做了一天好難受,期間虛擬機崩了,進不去kali了,有找人考的虛擬機,然後安裝的東西也別較多,比較雜,還好做完了,本次實驗我從一個攻擊者變成了一個分析者,分析惡意代碼,這些工具的分析程度也有高低,強!

六、實驗後回答問題

  • (1)如果在工作中懷疑一臺主機上有惡意代碼,但只是猜想,所有想監控下系統一天天的到底在幹些什麽。請設計下你想監控的操作有哪些,用什麽方法來監控。

答:用相應的工具來分析記錄文件,查看日誌,行為分析查證註冊表信息等方式證明是否為惡意代碼。

  • (2)如果已經確定是某個程序或進程有問題,你有什麽工具可以進一步得到它的哪些信息。

答:抓包,查看進行了那些網絡活動,使用日誌查看器查看程序或進程的工作日誌,分析工作信息。

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