20154312 曾林 Exp4惡意軟件分析
寫在前面
如果把惡意軟件比作罪犯的話,怎麽看這次實驗?
實驗目的:以後能夠在茫茫人海中找到罪犯。
實驗過程:現在以及抓到了一個罪犯,把他放到茫茫人海裏去,看看他和普通人有啥區別。這些區別就是罪犯的特征,以後可以根據這些特征找到更多的罪犯。
實驗手段:利用各種技術去找到罪犯和普通人的區別。
回答問題
Q:如果在工作中懷疑一臺主機上有惡意代碼,但只是猜想,所有想監控下系統一天天的到底在幹些什麽。請設計下你想監控的操作有哪些,用什麽方法來監控。
A:
- 監控TCP連接
- 監控註冊表修改情況
- 監控創建新的文件
- 監控是否頻繁連接未知IP
- 利用日誌進行監控
Q:如果已經確定是某個程序或進程有問題,你有什麽工具可以進一步得到它的哪些信息。
A:
- PEiD:是否加殼
- PE Explorer:反匯編是否有問題,是否有不正常的Data
- Wireshark:抓包分析,是否有可疑連接
- TCPView:查看是否使用cifs端口
- Systracer:程序運行前後是否有註冊表、端口、文件的變化
實踐過程記錄
目錄
1.系統運行監控
1.1Sysinternals工具集
1.1.1TCPView工具
1.1.2Sysmon工具
1.1.3Promon工具
1.2計劃任務並記錄聯網行為
1.3Wireshrak分析
2.惡意軟件分析
2.1VirScan分析惡意代碼
2.2分析軟件動態分析
2.2.1PE Explorer
2.2.2PEiD
2.2.3SysTracer
1.系統運行監控
系統運行監控大致可以分為兩種:
- 通過Sysinternals工具集來進行實時的分析,分析出有哪些進程、程序是比較可疑的。
- 通過建立任務計劃,將一段時間內的程序動態記錄在日誌裏,然後通過分析日誌來檢查是否有可疑的程序。
1.1Sysinternals工具集
Sysinternals Suite包含一系列免費的系統工具,其中有大名鼎鼎的Process Explorer、FileMon、RegMon等,如果把系統管理員比喻成戰士的話,那麽Sysinternals Suite就是我們手中的良兵利器。熟悉和掌握這些工具,並且對Windows的體系有一定的了解,將大幅度的提高日常的診斷和排錯能力。
這次我們主要使用的是:
- TCPView
- Sysmon
- Promon
1.1.1TCPView工具
顧名思義,TCPView
自然是用來監測TCP連接的工具,在開啟後門的情況下,打開工具就可以看到後門程序正在通過RemotePort:4312連接到RemoteAdress:192.168.15.132,值得註意的是LocalPort這一欄只有4312-3是cifs,其他的進程都是具體的端口號。
查閱資料可以知道cifs是一個新提出的協議,它使程序可以訪問遠程Internet計算機上的文件並要求此計算機提供服務。很明顯如果有程序的LocalPort顯示為cifs的時候就要註意了。
1.1.2Sysmon工具
Sysmon
是Sysinternals工具集
裏面一個重要工具,最主要的功能就是可以通過自定記錄規則進行系統運行的監控,語法結構與HTML
一致,在老師配置文件的基礎上我修改了一份自己的配置文件。
<Sysmon schemaversion="4.00">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<NetworkConnect onmatch="exclude">
<Image condition="end with">Chrome.exe</Image>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
<DestinationPort condition="is">4312</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="endwith">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
配置的時候可能會由於版本號不對導致無法進行配置,只要修改頭部的版本號就可以了。就是這個<Sysmon schemaversion="x.xx">
。
顯示Sysmon started
之後就開始記錄了,到事件管理器裏面就可以看到。
使用Sysmon的查找功能可以迅速找到你想要查找的有關內容
或者使用篩選器,篩選出一段時間內的信息
結合這兩點分析,就找到了電腦上的後門4312-3.exe
1.1.3Promon工具
同屬於Sysinternals工具集
主要是對於進程進行的分析,並且能夠以進程樹的形式分析每一個進程的行為。
剛開始分析就看到了一個很奇怪的東西
這個JUMP文件是我當時實踐跳一跳腳本的文件夾,莫名其妙出現了一個LDSGameCenter
的文件,正打算百度一下看看這是個啥,結果一念發現LDS=魯大師
這可能是個魯大師的遊戲中心文件,百度了一下果然是。我說我怎麽一直找不到魯大師遊戲中心到底存哪了。順藤摸瓜把它刪了。
如果選擇用ProcessTree
視圖查看可以看到很多cmd.exe的進程樹,我覺得都很可疑,因為一般正常的程序是不會有一個cmd.exe進程在下面常駐的,一個一個點開看,果然看到了4312-3.exe
。
對4312-3.exe
進行分析,可以看到程序的鏈接路徑
進行回連之後,先執行dir
命令,可以看到4312-3.exe
讀取了整個Desktop
的文件,並且進行了CreateFile
和CloseFile
操作。
再看看執行webcam_snap
會有什麽不同,可以看到新出現了LoadImage
等一系列操作。並且還修改了和COM3
有關的註冊表,COM3
明顯是一個端口,這一點已經很可疑了,一般不會有什麽程序用到COM1
COM2
之外的端口。
我們再用record_mic
命令試試看
又一次修改了COM3
端口有關的註冊表,可以推測修改COM3
端口是後門程序傳輸數據的一個重要特征。我們再看一看4312-3.exe
的具體信息
可以看到還調用了advapi32.dll
庫,這個庫包含了函數與對象的安全性、註冊表操控以及事件日誌。這也可以作為後門程序的一個特征了。
1.2計劃任務並記錄聯網行為
在創建計劃任務之前,先創建一個netstatlog.bat
文件(命令:echo netstatlog.bat
),用來把netstat
記錄的東西格式化輸出到netstatlog.txt
,其內容如下:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
之後就可以在Windows>>計劃任務裏面創建新的計劃,註意勾選以最高權限運行
設置裏面啟動的程序只要選netstatlog.bat
就ok,日誌分析稍後更新。
1.3Wireshark分析
回連的時候Wireshrak
可以捕獲到整個過程
輸入Webcam_snap
命令之後可以看到,有N個滿載(1514)的TCP數據包,大膽猜測,這幾個就是傳輸Webcam
拍到的圖片的數據包。
2.惡意軟件分析
惡意軟件分析部分主要是運用各種分析工具,從不同的角度對惡意軟件進行“解刨”。
2.1VirScan分析惡意代碼
好像分析不出來啥???
2.2分析軟件動態分析
利用分析軟件進行動態分析可以知道每一個軟件每時每刻在幹啥,有比較直觀的反饋。
2.2.1PE Explorer
利用PE Explorer
可以看到程序的頭部信息
以及程序的一些數據
還有就是程序的結頭信息
PE也可以進行反匯編,反匯編之後得到如下信息
個人感覺PE的分析還是偏向於靜態除非對於程序內部結構比較了解,不然在發現可疑程序方面不如動態的分析。
2.2.2PEiD
這個查殼軟件解釋了之前為什麽加殼什麽用都沒有,太容易被查了...
2.2.3SysTracer
在使用SysTracer之後發現,它最重要的功能不是在於可以做系統快照,而是在於可以比較系統快照之間的不同。
我根據
- 為植入後門
- 植入後門後進行回連
- 回連之後使用
dir
命令
分別進行了三次系統快照,結果如下
通過三者之間兩兩比較可以發現註冊表上的變化
很明顯可以發現4312-3.exe
這個可疑進程,並且第二張圖裏面可以看到,有一條奇怪的data執行了inetcpl.cpl.-4312#immutable1
,查資料之後就會知道inetcpl.cpl
是控制面板上的Internet選項,大膽猜測這個很有可能是後門程序添加了4312
這個端口有關的參數到Internet選項中去,來方便通信。
實驗總結與體會
一個可疑程序應該有哪些特點?
- TCPView:LocalPort為cifs
- Sysmon:頻繁連接未知IP
- Promon: 藏在
cmd.exe
進程樹下面,執行諸如LoadImage
createfile
之類的操作,並且修改端口註冊表 - Wireshark: 傳輸1514大小的TCP數據包給一個未知IP
- PE Explorer:有異常的Data,反匯編後程序中有異常的跳轉
- PEiD:程序加過殼
- SysTracer:修改
inetcpl.cpl
20154312 曾林 Exp4惡意軟件分析