Exp4 惡意代碼分析
Exp4 惡意代碼分析
一、基礎問題回答
- 如果在工作中懷疑一臺主機上有惡意代碼,但只是猜想,所有想監控下系統一天天的到底在幹些什麽。請設計下你想監控的操作有哪些,用什麽方法來監控。
(1)我們可以使用一些工具幫助自己監測系統,可以實時監控電腦上的端口信息,如果受到懷疑的惡意代碼啟動的時候連接了一些看起來很可疑的端口,就可以進一步進行分析。
(2)我們可以通過在windows下建立一個監測本機連接ip地址的任務計劃程序,不定時的查看一下電腦都在什麽時候連了網幹了什麽,如果在你覺得自己的電腦沒有聯網的情況下出現了ip訪問記錄就十分可疑了。
(3)可以通過sysmon監控幾乎所有的重要操作,並在事件查看器中找到日誌查看。
2.如果已經確定是某個程序或進程有問題,你有什麽工具可以進一步得到它的哪些信息。
(1)PE explorer工具,它可以對程序調用庫等信息進行分析查看,還可以對其反匯編。
(2)PEiD工具,可以查看程序有沒有被常用的加殼軟件加殼。
(3)啟動該程序,利用systracer及wireshark動態分析程序動向。
二、系統運行監控
這次實驗的第一部分是對自己的主機進行系統監控,嘗試能否發現異常情況。
- 結合windows計劃任務與netstat命令
這裏有兩種方法設置計劃任務,第一種是在任務計劃程序設置,第二種是命令行輸入如下命令:schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "c:\netstatlog.bat"
我選擇的是後者
1. 先在C盤目錄下建立一個netstatlog.bat文件,用來將記錄的聯網結果格式化輸出到netstatlog.txt文件中,netstatlog.bat內容為:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
2. 打開Windows下命令提示符,輸入指令schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "c:\netstatlog.bat"指令創建一個每隔五分鐘記錄計算機聯網情況的任務:
3. 五分鐘後,我們來分析日誌信息:
4. 黃標的SearchUI是win10專有的程序,及小娜,通過目的端口443可以猜測出來111.202.83.167、52.222.211.23、203.208.43.73應該是某些服務器地址,查詢IP可知:
5. 該程序先後訪問了北京聯通的,香港amazon.com和北京Google.com。可惜當時沒有抓包,單單從這幾個IP分析不出來什麽問題。
使用sysmon工具監控系統運行
sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具。它以系統服務和設備驅動程序的方法安裝在系統上,並保持常駐性。sysmon用來監視和記錄系統活動,並記錄到windows事件日誌,可以提供有關進程創建,網絡鏈接和文件創建時間更改的詳細信息。
- 安裝sysmon:
- 下載sysmon,可以直接到Microsoft官網下載;
- 打開命令行,cd到下載目錄下,執行命令
Sysmon64.exe -i Sysmoncag.xml
這裏的Sysmoncag.xml文件是課上所給的,但是直接復制該文件,會出現如下問題:
,這是版本號的問題,我們先查看我們將要安裝的版本號:
這時,我們發現,我們版本號為4.0,所以將.xml文件中的<Sysmon schemaversion="3.10">
改成<Sysmon schemaversion="4.00">
就好了。
- 啟動之後,便可以到事件查看器裏查看相應的日誌:
- 先打開事件查看器
- 然後在:應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational裏查詢相關日誌,我在安裝後運行了一次實驗二的後門程序,並在目錄下查詢到的日誌如下圖:
- 根據這則日誌:可以發現是我的後門程序,通過本地端口14143向IP為192.168.1.105的5213端口發送TCP請求鏈接。
- 先打開事件查看器
- 安裝sysmon:
使用virscan分析惡意軟件
- 在virustotal網站查看上次後門軟件的文件行為分析:
- 先讓我們看一下詳細報告:
- 根據上圖,可以看出這個程序是在後門不過的後門了,有第二張圖可以發現,本程序使用了
ADVAPI32.dll
、KERNEL32.dll
、MSVCRT.dll
、WS2_32.dll
、WSOCK32.dll
,這五個鏈接庫,其中WS2_32.dll
、WSOCK32.dll
是比較熟悉的win上面編寫SOCKET用的,這是用來回連使用的,而advapi32.dll
是一個高級API應用程序接口服務庫的一部分,包含的函數與對象的安全性,註冊表的操控以及事件日誌有關,從這句解釋就可以看出,本後門程序的潛在的威脅,kernel32.dll
是Windows 9x/Me中非常重要的32位動態鏈接庫文件,屬於內核級文件。它控制著系統的內存管理、數據的輸入輸出操作和中斷處理,當Windows啟動時,kernel32.dll就駐留在內存中特定的寫保護區域,使別的程序無法占用這個內存區域。而msvcrt.dll
是微軟在windows操作系統中提供的C語言運行庫執行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C語言庫函數的具體運行實現,並且為使用C/C++(Vc)編譯的程序提供了初始化(如獲取命令行參數)以及退出等功能,我們基本上每個C程序都會用到。
- 先讓我們看一下詳細報告:
- 在virustotal網站查看上次後門軟件的文件行為分析:
- 使用systracer工具分析惡意軟件
- 下載安裝
systracer
; - 我分別創建了三個快照,沒有操作後門程序的,第二個是回連成功後的,第三個是攻擊主機發送操作指令的
- 通過查看運行的程序,發現我們的後門程序運行時調用了如下幾個庫:
wow64cpu.dll
:wow64cpu.dll是一個進程來自Microsoft Corporation。它可以被發現在C:\位置。這是一個潛在的安全風險,它能被病毒惡意修改。wow64win.dll
:同上。ntdll.dll
:ntdll.dll是Windows系統從ring3到ring0的入口。位於Kernel32.dll和user32.dll中的所有win32 API最終都是調用ntdll.dll中的函數實現的。ntdll.dll中的函-數使用SYSENTRY進入ring0,函數的實現實體在ring0中;
- 從本後門調用
ntdll.dll
就可見其侵略意圖了。
- 下載安裝
使用wireshark分析惡意軟件回連情況
- 設置IP過濾格式:ip.addr==192.168.43.161,在進行回連操作時,使用wireshark進行抓包後可以看到,其先進行了TCP的三次握手,之後再進行數據的傳輸,如圖所示,帶有PSH,ACK的包傳送的便是執行相關操作指令時所傳輸的數據包,
- 設置IP過濾格式:ip.addr==192.168.43.161,在進行回連操作時,使用wireshark進行抓包後可以看到,其先進行了TCP的三次握手,之後再進行數據的傳輸,如圖所示,帶有PSH,ACK的包傳送的便是執行相關操作指令時所傳輸的數據包,
使用Process Explorer分析惡意軟件
- PE分析惡意軟件有兩種方式,可以直接分析靜態的惡意程序,也可以動態的捕獲惡意程序運行的狀態,下圖是動態捕獲的:
可以看出,該test程序是通過TCP協議回連了IP地址為192.168.43.161
的。 - 這是實時運行時出現的線程,我們嘗試KIll掉,我們會發現Kali機也失去了鏈接
- PE分析惡意軟件有兩種方式,可以直接分析靜態的惡意程序,也可以動態的捕獲惡意程序運行的狀態,下圖是動態捕獲的:
三、實驗總結
惡意程序分析是個體力活啊,這個實驗是在我們知曉惡意程序是誰的情況下進行的,有針對性,但如果單單從茫茫數據中要分析出每個程序的可疑行為或者入侵行為,單靠人去讀數據,分析數據是根本行不通的,可是依靠殺軟,感覺也不怎麽可靠,所以要真正安全,還是下圖做的好。
Exp4 惡意代碼分析