1. 程式人生 > >Exp4 惡意代碼分析 ——20164316張子遙

Exp4 惡意代碼分析 ——20164316張子遙

win10 殺毒 關閉 驅動程序 所有 讀取 image 可執行文件 裏的

一、實踐目標

1.監控你自己系統的運行狀態,看有沒有可疑的程序在運行。

2.分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具盡量使用原生指令或sysinternals,systracer套件。

3.假定將來工作中你覺得自己的主機有問題,就可以用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行為與性質。


二、實踐內容要求

1.系統運行監控

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

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

2.惡意軟件分析

分析該軟件在啟動回連,安裝到目標機、 及其他任意操作時。該後門軟件

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

三、實踐具體步驟

  • 系統運行監控

(一)Windows計劃任務schtasks

1.在C盤目錄下創建 4316netstat.bat 文件,可以通過修改txt文件後綴名實現,文件中內容如下:

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

技術分享圖片

2.在命令行中輸入: schtasks /create /TN 4316netstat /sc MINUTE /MO 3 /TR "c:\4316netstat.bat" 創建windows計劃,打開任務計劃程序就能看見,每三分鐘就會監測哪些程序重在聯網並記錄下來。

> TN:Task Name,輸入的是4316netstat

> SC: SChedule type,輸入的是MINUTE,以分鐘來計時

> MO: MOdifier

> TR: Task Run,要運行的指令是 netstat -bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口

技術分享圖片

3.打開任務計劃程序,雙擊4316natstat,更改其為使用最高權限運行,並確認操作選項卡中的程序或腳本路徑是否選擇正確。

技術分享圖片

技術分享圖片

4.靜靜等待程序運行,使4316netstat.txt中的數據達到一定量。我在完成了其他實踐後,才開始分析txt中的數據,此時txt已經有200多K。

技術分享圖片

5.將txt文件當中的數據導入到WPS表格中。

技術分享圖片

6.通過構造數據透視表對運行的進程和訪問的外部地址進行了排序以及分析。

技術分享圖片

運行的最多的進程有 :

360se.exe,360安全瀏覽器程序

360Tray.exe,360安全衛士木馬防火墻模塊

backgroundTaskHost.exe在網上搜了一下,貌似是win10系統自帶的一個有關照片應用app(為了防止是偽裝,特地將找到的backgroundTaskHost.exe上傳到了virscan.org上面檢測了一下,確實是安全的~)

qbclient.exe是騰訊的瀏覽服務組件,我們只要打開騰訊相關的軟件就會喚醒qbclient.exe程序

需要一提的是 shelltest.exe 文件,這是我在實踐中生成的後門程序(在報告後面會提到),我們可以通過查找來看看。

技術分享圖片

技術分享圖片

TIME_WAIT 是本地端主動關閉後一定會出現的狀態, ESTABLISHED 是已經建立連接, CLOSE_WAIT 是被動關閉狀態。

技術分享圖片

排序後將上面出現的較多的IPv6地址省略掉了,多都是因為虛擬機網卡的關系。

除開IPv6後,訪問最多的地址是 101.201.173.208101.37.115.180 通過 443 端口,也就是HTTPS服務。

技術分享圖片

技術分享圖片

然後查了使用 80 端口(HTTP服務)最多的地址 101.4.60.15 。我猜想可能這是因為我通過edu上網的緣故....

技術分享圖片

(二)使用sysmon工具

前期在微軟官網下載好Sysmon.exe

技術分享圖片

1.創建配置文件 4316sys.xml

技術分享圖片

2.使用 Sysmon.exe -i E:\4316sys.xml 安裝sysmon。

技術分享圖片

3.因為查看ip地址後發現win和kali都發生了改變,所以重新生成了後門 shelltest.exe (用的是在kali中生成shellcode然後在win中用codeblock編譯),成功回連到kali。

技術分享圖片

技術分享圖片

4.可以在 應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational下查看日誌。

技術分享圖片

5.通過查找4316關鍵字,找到後門程序運行相關日誌,能夠觀察到tcp連接以及兩者的ip地址和端口

技術分享圖片

技術分享圖片


  • 惡意軟件分析

(一)靜態分析

1.將生成的後門程序 shelltest.exe 上傳到 virscan.org 中,發現報毒率還是挺高的

不過我的哈勃文件分析貌似沒啥東西....

技術分享圖片

技術分享圖片

2.使用PEiD分析惡意軟件

  • 安裝好PEiD後,先檢測先前未加殼的後門程序:

技術分享圖片

  • 再檢測使用UPX加殼後的後門程序,PEiD成功檢測出了加殼的相關信息:

技術分享圖片

(二)動態分析

1.用SysTracer進行動態分析

抓了以下五個狀態:

  • 系統未運行後門的正常狀態
  • 系統運行後門後成功回連kali
  • 在kali中打開shell在e盤創建了一個新文件夾myname
  • 在kali中在myname中新建txt文件
  • 在kali中提升權限

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

將snapshot#1與snapshot#2進行比較

技術分享圖片

可以通過註冊表看到win中shell發生了修改,不過還有一些內容貌似無法查看

技術分享圖片

將snapshot#2與snapshot#4進行比較,發現新增了myname文件夾,同時在application的different list當中發現了後門程序的進程行為(感覺還挺明顯的畢竟這麽多...),還在打開的端口中發現了shelltest.exe的運行

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

將snapshot#2與snapshot#5進行比較,發現在註冊表中shell增添了許多項,不過還是有很多內容看不見

技術分享圖片

技術分享圖片

①HKEY_CLASSES_ROOT

  這個項包含所有的文件類型,文件關系,圖標文件名,com對象等信息(也就是說哪一種文件要被哪一種應用程序打開都會記錄在這個項裏面)

②HKEY_USERS

  所有WINDOWS用戶的文件都會記錄在這個項裏面,每個用戶會有自己的項以保存個人設置

③HKEY_CURRENT_USER

  這個項保存了目前登陸的用戶文件,以及個性化的設置,如 桌面外觀,軟件設置,開始菜單等.會隨著登陸的用戶不同而有所改變.這個項其實是HKEY_USERS的子項,當用戶登陸系統後即由HKEY_USERS將用戶的登陸設置值復制一份而成為HKEY_CURRENT_USER的項

④HKEY_LOCAL_MACHINE

  這個項保存了絕大部分的系統信息,包括硬件配置,網絡設置,以及你所安裝的軟件等,是註冊表裏最重要也最龐大的項,當你用設備管理器更改了硬件的設置時,這個項裏的文件也會跟著變動,由於HKEY_LOCAL_MACHINE是常接觸的項,因此再說說下面的5個子項 :

  • HARDWARE: 此項記錄了與硬件有關的各項信息 如驅動的設置
  • SAM: 包含關於用戶和組帳戶的信息
  • SECURITY: 包含安全相關的信息 如 用戶權限
  • SOFTWARE: 包含已安裝的各項軟件信息
  • SYSTEM: 包含有關系統啟動,驅動程序加載等與操作系統本身相關的各項設置信息
  • (這5個項的內容保存在/%SYSTEMROOT%/SYSTEM32/CONFIG)

⑥HKEY_CURRENT_CONFIG

  此項主要記錄PNP設備及硬件的設置值(這與HKEY_LOCAL_MACHINE的部分內容重疊,這是由於XP支持"多硬件設置文件")

了解過這些後就會發現在利用後門進行操作時,程序的運行,文件夾和文件的新建,用戶的提權,註冊表會進行改動也就是自然的了。

2.利用wireshark抓包分析

技術分享圖片

我們根據TCP三次握手過程,能看出上圖ip 222.28.141.142222.28.140.29 之間建立連接(即我的本機IP與虛擬機kali的IP)

不過數據包是經過加密的,沒辦法知道內容...

技術分享圖片

技術分享圖片


三、實踐後問題回答

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

  • 使用windows自帶的schtasks,設置計劃任務,對主機的進程運行以及上網等進行記錄。

  • 使用sysmon工具,按照自己的猜測來設置配置文件,查看相關的日誌事件。

  • 使用Process Explorer工具,監視進程執行情況。

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

  • 上傳到virscan.org上進行檢測。
  • 使用PEiD分析確定的程序。
  • 使用systracer工具對惡意軟件的信息進行具體分析。
  • 使用wireshark進行抓包從而獲取攻擊方與主機的通信。

四、實踐總結與體會

  這次實踐讓我們學習了更多種方法來發現惡意軟件可能的存在,同時對惡意軟件的分析主要分為靜態分析方法和動態分析方法。實踐中都有采用,不過在我看來更為有用和準確的是動態分析,是在惡意代碼執行的情況下,利用調試工具對惡意代碼實施跟蹤和觀察,確定惡意代碼的過程,在實踐中學到的方法很有用。

  這次實踐是一次較為綜合性的實驗,包括了很多內容,但其實也讓人發現,惡意軟件的存在,如果是真的有意識去發現與檢測的話,不依靠殺軟,我們自己也能通過這些蹤跡發現其存在,我們在平時更是不能掉以輕心,時常監控自己的電腦養成好習慣,畢竟經過上一次實踐就讓我們認識到了並不是所有的惡意代碼都會被殺毒軟件拒之門外。

Exp4 惡意代碼分析 ——20164316張子遙