20175314 2020-4 《網絡對抗技術》Exp4 惡意代碼分析 Week8
一、實踐目標
1、實踐對象
- 經過加密和壓縮的惡意代碼
markshell_hyperion_upxed.exe
2、實踐內容
-
系統運行監控
- 使用如計划任務每隔一分鍾記錄電腦有哪些程序在聯網,連接的外部IP是哪里。運行一段時間並分析該文件,綜述分析結果。目標:找出所有連網的程序的連接和操作,這個操作是否合適合理,並有針對性的抓包做進一步的分析;
- 安裝配置
sysinternals
中的sysmon
工具,設置合理的配置文件,監控主機的重點事可疑行為; - 實際日志的分析還需要發揮下自己的創造力,結合以前學過的知識如linux的文本處理指令等進行(難點在於從大量數據中理出規律、找出問題)。
-
惡意軟件分析
- 分析該軟件在啟動回連,安裝到目標機及其他任意操作時(如進程遷移或抓屏),該后門軟件:
- 讀取、添加、刪除了哪些注冊表項;
- 讀取、添加、刪除了哪些文件;
- 連接了哪些外部IP,傳輸了什么數據(抓包分析)。
- 分析該軟件在啟動回連,安裝到目標機及其他任意操作時(如進程遷移或抓屏),該后門軟件:
二、基礎知識
1、實踐要求
- 監控你自己系統的運行狀態,看有沒有可疑的程序在運行;
- 分析一個惡意軟件,就分析Exp2或Exp3中生成后門軟件;分析工具盡量使用原生指令或
sysinternals
systracer
套件; - 假定將來工作中你覺得自己的主機有問題,就可以用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行為與性質。
2、指令/參數
schtasks
安排命令和程序定期運行或在指定時間內運行TN
任務名,這里命名為schtasks5314
sc
計時方式,這里用MINUTE表示以分鍾為單位bn
b是顯示可執行文件的名字,n是用數字表示IP和端口TR
要運行的指令、>
輸出重定向即輸出的文件路徑,本次為c:\netstatlog.txtschtasks /create /TN schtasks5314 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
3、預備知識
-
分析工具
Schtasks
安排命令和程序定期運行或在指定時間內運行WPS
導入Schtasks
記錄的數據並使用表格生成統計信息Sysmon
通過系統服務和驅動程序實現記錄進程創建、文件訪問以及網絡信息的記錄(Windows日志事件)Wireshark
在惡意代碼回連服務端(Kali)時對網絡協議(TCP
ICMP
等)進行捕包分析SysTracer
跟蹤並監視進程對整個系統的修改行為並進行比較PEiD
偵測加殼文件(類型和簽名)VirusTotal
在線分析惡意代碼(相應的的系統文件和注冊表)
三、實踐步驟
1、系統運行監控
-
使用
schtasks
指令添加計划任務
-
新建
schtasks5314.txt
輸入
date /t >> c:\netstat20175314.txt
time /t >> c:\netstat20175314.txt
netstat -bn >> c:\netstat20175314.txt
-
保存並退出,修改文件名
schtasks5314.bat
並復制到C盤
目錄 -
任務計划程序編輯計划任務
-
運行任務
netstat
開始記錄后台的數據,保持電腦的正常使用,約兩小時后在C盤
目錄打開netstat20175314.txt
查看數據
-
使用
WPS
的表格工具導入文檔數據,生成數據透視圖
微信
WeChat.exe
OfficeOfficeClickToRun.exe
WINWORD.EXE
WinStore.App.exe
EXCEL.EXE
騰訊課堂TXEDU.exe
金山詞霸ktpcntr(廣告)
知網研學CNKIWebServiceAccess.exe
CNKIEIDataSrv.exe
阿里巴巴AlibabaProtect.exe(反釣魚)
Microsoft EdgeMicrosoftEdgeCP.exe
MicrosoftEdge.exe
browser_broker.exe
Google ChromeGoogleUpdate.exe
福昕高級PDF編輯器FoxitProxyServer_Socket_PH.exe
VMware Workstation Provmware.exe
vmware-authd.exe
vmnat.exe
PacketiX VPN Server 管理工具vpnserver_x64.exe
WindowsHxTsr.exe(易被感染的與數字簽名有關的系統重要組件)
svchost.exe
SearchUI.exe
CHsIME.exe
backgroundTaskHost.exe
-
在這段時間中使用最多的是微信和騰訊課堂還有虛擬機,符合實際情況。但是后台存在很多非我主動運行的軟件進程,甚至還有廣告軟件,還有根本沒有下載安裝的網絡安全組件和應受重點關注的易感染的系統組件,所以在日常使用中應該主動留意后台進程,保證后台的有序和可信不僅能夠保證自己信息的安全,也能夠保障系統的流暢運行。
-
因為系統是64位的系統所以選擇
Sysmon64.exe
,右鍵屬性
在詳細信息
查看產品版本
,在SysinternalsSuite
所在目錄下創建sysmon20175314.xml
,以文本文檔方式打開輸入代碼保存並退出
ProcessCreate
進程創建,這里的進程名包含了所有以該進程名結尾的進程
NetworlConnect
網絡連接,過濾掉瀏覽器的網絡連接,即源IP為127.0.0.1(本機IP)的網絡連接和目的端口為137(提供局域網中ID或IP查詢服務)的連接服務,且查看目的端口為80(http)和443(https)的網絡連接
CreateRemote
遠程線程創建
FileCreate Time
進程創建時間
onmatch include/exclude
設置免檢/必檢名單 -
以管理員身份運行
CMD
在Sysmon64.exe
目錄下執行Sysmon64.exe -i sysmon20175314.xml
-
事件查看器(本地)
-應用程序和服務日志
-Microsoft
-Windows
-Sysmon
-Operational
查看根據配置信息sysmon20175314.xml
記錄的進程信息進程號
路徑
等系統信息
2、惡意軟件分析
-
使用惡意軟件(實驗三中的加殼后門程序進行回連),以日志信息和
Wireshark
捕包信息分析系統進程規律 -
在事件查看器中根據運行時間找到相應后門程序操作的相關信息,在
Wireshark
過濾器中輸入篩選條件ip.addr == 192.168.40.130
查看相關的協議包信息 -
Kali系統與Windows系統Ping通時的
ICMP
包
-
MSF
反彈連接時的TCP
包
-
dir
查看磁盤中后門程序目錄下的文件,日志沒有更新
-
getuid
查看作為運行服務器的用戶,日志更新一條
-
SearchFilterHost.exe
桌面搜索引擎的索引程序,主要作用是建立快速索引文件,讓用戶能夠更好的搜索出電腦中的任意資料。它會在計算機空閑時自動掃描索引位置的文件名、屬性信息和給定類別的文件內容,這些索引位置默認包括桌面、收藏夾、開始菜單、系統目錄 -
screenshot
截屏,日志更新三條
-
其中包括截圖工具
SnippingTool.exe
-
webcam_snap
通過攝像頭拍照,日志更新了兩條
-
mspclock.sys
和mspqm.sys
都是系統關鍵文件,可能會成為病毒感染的對象 -
總的來看,在沒有針對性地繞過
Sysmon
監控的情況下,Sysmon
也不能完全監控到惡意軟件的攻擊行為,而刪除配置項或卸載SysmonDrv
過濾器的驅動程序更可以繞過Sysmon,所以安全軟件還是非常重要的。從Wireshark
的捕包結果來看,協議包數量主要是由傳輸數據(文件)大小決定(screenshot.jpg≈140Kb/webcam.jpg≈15Kb) -
下載SysTracer並安裝
SysTracer是一款集成HIPS以及進程行為跟蹤功能的安全輔助工具,可以跟蹤並監視進程對整個系統的修改行為,包括文件操作,注冊表操作,內存操作和危險行為。SysTracer可以監視全部進程,或者用戶指定的某一個進程及其子進程,並提供監視日志以幫助用戶對特定進程的行為進行分析。可在任何想要的時間獲取無數個屏幕快照,可比較任何一對想要的屏幕快照,並且觀察其間的不同之處。獲取屏幕快照通常會持續幾分鍾的時間,取決於文件和文件夾的數量和注冊表項目的總數。
-
安裝時要輸入相應端口
-
運行SysTracer共進行5次記錄,為控制變量Kali始終在運行狀態,同時因為后門程序與虛擬機的位置都在
C盤
和D盤
,所以可以根據實際情況只勾選相應的內容以精簡分析過程
Snapshot #1
未植入惡意軟件前Snapshot #2
植入惡意軟件后Snapshot #3
惡意軟件回連后Snapshot #4
MSF相關的操作sysinfo
screenshot
Snapshot #5
退出惡意軟件后
-
在比較過程中,
#1
-#4
只需要查看新增的內容即可,#5
則需要查看修改和刪除的內容 -
比較
#1
與#2
,可以發現加入了大量注冊表值但是暫時還無法確定是否與后門程序有關
-
可以確定相關的鍵值和文件還有進程有明顯特別的增加
-
比較
#2
與#3
,又可以發現增加了大量可能無關的注冊表值還有相關的進程
-
這里查看到的相應IP和相應端口可以知道回連成功
-
比較
#3
與#4
,執行的MSF指令操作沒有發現特別明顯的相關變化
-
比較
#4
與#5
,相關的進程和文件還有鍵值都有刪除
-
后門程序已經沒有在后台運行了,但是相關的注冊表值暫時還沒有變化(可能重啟后也會刪除),所以我們除了定期要清理磁盤垃圾文件以外也需要工具對注冊表進行維護(修復或刪除等)
-
使用PEiD檢查惡意代碼是否加殼,但是該惡意代碼是加過加密殼和壓縮殼的,這里只檢測出了壓縮殼
-
使用VirusTotal檢查惡意代碼,可以查看MD5、SHA-1、文件類型、文件大小、加殼方式等相關信息
Basic properties
MD5 c3affb62b04fecc07c6fc34bc4f9762f
SHA-1 1fb035179f418e8e5a66923705f6dbced9ff7502
SHA-256 ffda14b93c2933bedcd9be0637f954699f06f20df6a4bb9d68a920e58fc8d7d5
Vhash 02503e0f7d1bz4!z
Authentihash aa8676671817900b31b2a7ba27f938fad408149aa91a6fbecb78336d16d89001
Imphash 6ed4f5f04d62b18d96b26d6db7c18840
SSDEEP 6144:IaVMLYIFJRL1yDTHvpxicXlDClcBRgLbx6YMs1PxiS9G+ZK8o4TlDWA:......
File type Win32 EXE
Magic PE32 executable for MS Windows (GUI) Intel 80386 32-bit
File size 289.00 KB (295936 bytes)
F-PROT UPX # 這里也沒有檢測到加密殼
PEiD UPX 2.90 [LZMA] -> Markus Oberhumer, Laszlo Molnar & John Reiser
History
Creation Time 2020-03-27 01:15:01
First Submission 2020-04-02 00:25:09
Last Submission 2020-04-02 00:25:09
Last Analysis 2020-04-05 15:22:15
Names
c3affb62b04fecc07c6fc34bc4f9762f.virus
Portable Executable Info
Header
Target Machine Intel 386 or later processors and compatible processors
Compilation Timestamp 2020-03-27 01:15:01
Entry Point 629984
Contained Sections 3
Sections
Name Virtual Address Virtual Size Raw Size Entropy MD5
UPX0 4096 331776 0 0 d41d8cd98f00b204e9800998ecf8427e
UPX1 335872 294912 294912 7.72 eb2a73ba86dd4d2e0bbbab721003a93e
UPX2 630784 4096 512 1.38 80e3fddc7bb34f8dda72990f3853d87a
Imports
KERNEL32.DLL
ExifTool File Metadata
CodeSize 294912
EntryPoint 0x99ce0
FileType Win32 EXE
FileTypeExtension exe
ImageFileCharacteristics No relocs, Executable, No line numbers, No symbols, 32-bit
ImageVersion 0.0
InitializedDataSize 4096
LinkerVersion 1.71
MIMEType application/octet-stream
MachineType Intel 386 or later, and compatibles
OSVersion 1.0
PEType PE32
Subsystem Windows GUI
SubsystemVersion 4.0
TimeStamp 2020:03:27 02:15:01+01:00
UninitializedDataSize 331776
File system actions
Files opened # 調用系統關鍵文件
C:\WINDOWS\system32\winime32.dll
C:\WINDOWS\system32\ws2_32.dll
C:\WINDOWS\system32\ws2help.dll
C:\WINDOWS\system32\psapi.dll
C:\WINDOWS\system32\imm32.dll
C:\WINDOWS\system32\lpk.dll
C:\WINDOWS\system32\usp10.dll
Registry actions
Registry keys opened # 從系統注冊庫中得到指定鍵
\Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\996E.exe
\Registry\MACHINE\System\CurrentControlSet\Control\SafeBoot\Option
\Registry\Machine\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers
\REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\TransparentEnabled
\REGISTRY\USER\S-1-5-21-......\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers
Modules loaded
Runtime modules
KERNEL32.DLL
kernel32.dl
四、實踐報告
1、遇到的問題
-
問題 因為以前都是使用Windows7的虛擬機與Kali虛擬機進行回連,這次嘗試主機時發現Kali可以Ping通主機(Windows10),但是主機不能Ping通Kali。
-
解決方案 固然是可以將虛擬機的網絡設置修改成橋接模式來解決,但是這樣的話Kali的IP地址就會主機地址改變,后門程序就需要重新生成,所以我選擇更改主機網絡連接設置中VMware的NAT模式相應適配器的IPv4地址來解決,只需要將前24位IP地址設置成與Kali正常NAT模式下的IP地址相同處在同一子網下即可。
2、基礎問題回答
-
(1)如果在工作中懷疑一台主機上有惡意代碼,但只是猜想,所有想監控下系統一天天的到底在干些什么。請設計下你想監控的操作有哪些,用什么方法來監控。
- 使用schtasks定時監聽,一段時間后統計數據;
- 使用Sysmon編寫配置文件監視相應的進程情況,記錄相關的日志文件分析疑似惡意代碼;
- 使用Systracer進行快照對幾次系統狀態進行比較,系統是否有執行一些非用戶主動下的操作。
-
(2)如果已經確定是某個程序或進程有問題,你有什么工具可以進一步得到它的哪些信息。
- 使用VirusTotal(對一些非官方渠道下載的軟件)進行檢查;
- 使用Systracer進行分析,查看其對注冊表、文件和進程內容的修改;
- 使用wireshark進行捕包分析,查看它連接到了哪些IP、與外部進行了哪些通信。
3、實驗收獲與感想
- 本次實驗還比較輕松愉快,內容主要是對自己的電腦進行監控並找出潛在的惡意代碼,注重於防護與監控這方面的實驗。利用各種工具進行對系統的檢測,過程中深深感覺到自己對計算機知識相當匱乏:查出來文件、進程或是注冊表都比較陌生,需要在網上逐一查找;也清晰認識到學習的道路還很漫長:以后各個課程無論是課堂還是實驗都要扎實的學習一步一腳印地夯實基礎才能夠在真正實踐過程中得心應手。