實驗目的
- 是監控你自己系統的運行狀態,看有沒有可疑的程序在運行。
- 是分析一個惡意軟件,就分析Exp2或Exp3中生成后門軟件;分析工具盡量使用原生指令或sysinternals,systracer套件。
- 假定將來工作中你覺得自己的主機有問題,就可以用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行為與性質。 教程
實驗內容
- 系統運行監控
- 使用如計划任務,每隔一分鍾記錄自己的電腦有哪些程序在聯網,連接的外部IP是哪里。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出所有連網的程序,連了哪里,大約干了什么(不抓包的情況下只能猜),你覺得它這么干合適不。如果想進一步分析的,可以有針對性的抓包。
- 安裝配置sysinternals里的sysmon工具,設置合理的配置文件,監控自己主機的重點事可疑行為。
- 實際日志的分析還需要發揮下自己的創造力,結合以前學過的知識如linux的文本處理指令等進行。分析的難點在於從大量數據中理出規律、找出問題。這都依賴對結果過濾、統計、分類等進一步處理,這就得大家會什么用什么了。
- 惡意軟件分析 分析該軟件在以下操作時的行為:
- 啟動回連
- 安裝到目標機
- 及其他任意操作時
- 該后門軟件
- 讀取、添加、刪除了哪些注冊表項
- 讀取、添加、刪除了哪些文件
- 連接了哪些外部IP,傳輸了什么數據(抓包分析)
實驗步驟
(一)系統運行監控
根據netstat的結果分析程序連接
- 在c盤創建
netstatlog.txt
,用命令行創建計划任務C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
顯示創建成功, - 在c盤的根目錄下創建批處理文件
netstatlog.bat
,內容為
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
- 將任務中的腳本文件改為自己創建的
netstatlog.bat
- 點擊創建的任務屬性,使用最高權限運行該任務,運行之后就會每5分鍾觸發一次了。
- 昨天電腦開了整整一天,應該已經收集到很多信息了。今天我又打開上個實驗的后門,希望能捕捉到我的后門程序
- 將信息導入Excel,使用透視表和圖表進行分析。
- 我使用的是餅狀圖,可以看到有兩個軟件運行的最多,是QyFragment.exe和firefox.exe。
- 查找了一下發現QyFragment.exe是奇藝影音輔助程序
Our database contains 13 variants of the file "qyfragment.exe" with final rating Safe and zero variants with final rating Threat . (13個殺軟都檢測是安全的,0個殺軟檢測是有威脅的)
- 檢測是安全的,繼續查看信息。突然發現我捕捉的信息中有4個愛奇藝的軟件,出現的頻率都很高,上網查之后發現除QyPlayer.exe以外,另外3個軟件都是流氓軟件。反正也不大需要,就直接把愛奇藝卸載了。
- 將這四個軟件篩選出去,出現最多的是svchost.exe,官方解釋是:
Svchost.exe 是從動態鏈接庫 (DLL) 中運行的服務的通用主機進程名稱。這個程序對系統的正常運行是非常重要,而且是不能被結束的。許多服務通過注入到該程序中啟動,所以會有多個進程。
- 看來是正常的,繼續排查。接下來的WpnService是個系統服務,但是wpn是什么沒查到,可能是vpn。
- OneSyncSvc是個開機啟動項,會頻繁讀取磁盤。這兩個服務奇奇怪怪的,網上也查不到什么,繼續看看有沒有可疑的軟件
- dosvc也是一個系統程序
此程序可以一次點擊簡單刪除啟動程序、瀏覽器輔助對象、工具欄、服務等。可以容易刪除惡意廣告軟件、惡意代碼、惡意軟件、惡性程序、垃圾程序、特洛伊木馬下載等。
- backgroundTaskHost進程屬於照片應用的進程,modulecoreservice.exe是網絡核心模塊服務,除此之外,其他進程在三天的時間里聯網的次數都小於3。
- 對剩下軟件一個個查找,發現一個可疑的HxTsr.exe,查找了一下是outlook的一個進程。大部分網友認為其被偽裝成病毒是因為它不斷啟動並隨后消失,但是就我捕捉到的信息來看,它的聯網次數只有2,應該是正常的插件。
- 綜合來看聯網比較多的大多是系統程序,但由於剛剛重裝系統,系統里面應該不會有問題。查找了一下大多數電腦都會有這些自動運行的程序,但不排除病毒的可能性。
- 對連接數大於10的IP地址進行批量查詢
- 手動分析完接下來就借助工具了。
使用sysmon監控系統運行
- 之前已經配置文件並啟動sysmon,修改配置文件,添加檢測HxTsr.exe的語句。
- 用
sysmon -c c:/Sysmoncfg.xml
使配置生效 - 進入
事件管理器
查看sysmon中的operational,可以看到事件5是關閉進程。查看的backgroundTaskHost進程,是照片應用進程。 - 事件1是創建進程,截取進程是svchost.exe,點擊
system
顯示它的parentImage是mmc.exe
mmc.exe是系統管理程序的一個框架程序,全稱是Microsoft Management Console,它提供給擴展名為msc的管理程序一個運行的平台,比如組策略,系統清單,任務管理器,以及打印管理、本地安全策略等等,另外本進程也可能同時運行兩個或更多個。
(二)惡意軟件分析
惡意軟件是通過讀取、添加、刪除注冊表項或文件實現對靶機的控制的。
- 本次實驗分析的是用
vs c+shellcode
直接生成的可執行文件,沒有任何偽裝。
virscan分析文件
- 使用virscan查看行為分析
- 文件信息
- 查看行為信息,其網絡行為描述的套接字的連接就是我kali的IP地址
使用systracer
分析惡意軟件
安裝到目標機時
- 注冊表修改了
HKEY_CURRENT_USER
的鍵值 - 注冊表在鍵值中增加了
VirtualDesktop
- 注冊表刪除了
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters
的鍵值 - 新增了我的后門軟件
- 刪除了我的系統文件
- 新增了系統控制文件
- 連接外部ip
啟動回連時
- 注冊表新增了
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\HomeGroup\UIStatusCache
的鍵值,新增了用戶組中的用戶信息 - 注冊表更改了UI的狀態
- 注冊表刪除本地計算機中的一些用戶策略了
- 更改了一些系統文件
- 刪除了一些系統批處理文件
- 添加了一些trn文件
- 看到我的虛擬機和主機之間的通信
使用shell命令查看靶機系統信息
- 注冊表新增了系統用戶信息
- 注冊表修改了
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\UserSettings
的鍵值 - 刪除了舊的控制台信息
- 新增了控制台的配置文件
- 查看控制機和靶機之間的通信
實驗中遇到的問題
- 一開始創建計划任務的時候命令行顯示創建成功,但是打開任務計划顯示錯誤代碼為1
,分析了一下應該是因為c盤中沒有netstatlog.txt
- 運行計划任務時導出的文件中顯示
請求的操作需要提升
,判斷是權限不夠造成的,選用最高權限運行
實驗后問題回答
- 如果在工作中懷疑一台主機上有惡意代碼,但只是猜想,所有想監控下系統一天天的到底在干些什么。請設計下你想監控的操作有哪些,用什么方法來監控。
- 想監控的操作主要有網絡連接、端口使用、CPU占用情況。
- 使用計划任務每隔一個固定時間運行一次控制台的
netstat
命令,對捕獲到的信息進行批量分析。 - 可以使用sysmon,通過修改配置文件來監控覺得可疑的端口、軟件和事件。
- 設置計划任務運行任務管理器查看cpu占用情況,監控可疑程序。
- 如果已經確定是某個程序或進程有問題,你有什么工具可以進一步得到它的哪些信息。
- 可以使用systracer拍攝快照,對程序或進程的可疑動作的前后進行對比,對比注冊表、系統用戶、系統文件的變化情況。
- 使用wireshark抓包,檢測是否連接可疑的外部IP地址。
實驗總結
這次實驗的關鍵在於分析惡意軟件的動作,通過使用各種工具分析,我可以知道惡意軟件都做了些什么,是怎么通過修改系統的注冊表、文件等等來做到的。這次用到的工具能幫助更好的保護電腦,這樣我就可以在懷疑有惡意代碼的時候先做一下基礎檢查了。