1、實踐目標linux
1.是監控你本身系統的運行狀態,看有沒有可疑的程序在運行。git
2.是分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具儘可能使用原生指令或sysinternals,systracer套件。算法
3.假定未來工做中你以爲本身的主機有問題,就能夠用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行爲與性質。chrome
2、實踐內容shell
1.系統運行監控windows
(1)使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出全部連網的程序,連了哪裏,大約幹了什麼(不抓包的狀況下只能猜),你以爲它這麼幹合適不。若是想進一步分析的,能夠有針對性的抓包。瀏覽器
(2)安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。安全
參考:schtask與sysmon應用指導網絡
2.惡意軟件分析ide
3、實踐過程與步驟
(一)系統運行監控
(1)輸入命令:
schtasks /create /TN netstat4314 /sc MINUTE /MO 2 /TR "cmd /c netstat -bn > c:\netstat4314.txt"
實現每2分鐘記錄一下有哪些程序在鏈接網絡
(忘記截圖了···)
其中,TN是TaskName的縮寫,這裏計劃任務名是netstat5330;sc表示計時方式,以分鐘計時填MINUTE;TR=Task Run,要運行的指令是netstat -bn
,b表示顯示可執行文件名,n表示以數字來顯示IP和端口。
(2)在C盤要目錄下建一個文件c:\netstat4314.bat
(能夠先在桌面新建txt文本文件,使用記事本寫入後在修改後綴爲.bat,複製到C盤中),寫入內容以下:
date /t >> c:\netstat4314.txt time /t >> c:\netstat4314.txt netstat -bn >> c:\netstat4314.txt
(3)經過「Windows->控制面板->管理工具->任務計劃程序」,找到個人任務
(4)雙擊這個任務,點擊操做
-編輯
,將其中的程序或腳本
改成咱們建立的netstat4314.bat
批處理文件,參數可選項
爲空,點擊肯定。
(注意:必定要勾選使用最高權限運行
,不然可能致使文件不能自主更新或者記錄裏出現權限問題)
(5)打開記錄文件netstatlog.txt記事本,能夠看到每隔2分鐘記錄而且可以顯示日期和時間
(6)統計分析數據(兩小時的數據信息)
導入數據:
選擇一部分數據,使用數據透視工具分析獲得直觀的數據透視圖
第一個選取了程序接入網絡的次數:
上網查詢瞭解瞭如下幾個聯網次數較多和我不熟悉的進程:
dlna_player.exe應該是音樂播放器的程序;
upc.exe應該是uplay平臺的一個程序;
sesvc.exe是360瀏覽器的廣告程序;
svchost.exe 是從動態連接庫(DLL) 中運行的服務的通用主機進程名稱。這個程序對系統的正常運行是很是重要,並且是不能被結束的。
第二個選取了程序接入網絡的IP:
看到最多的是127.0.0.1即本機地址,後來經查詢得知,127.0.0.1是綁定在loopback接口上的地址沒若是服務端套接字綁定在它上面,你的客戶端程序就只能在本機訪問。
上網查了一些IP:
不知道這個美國的IP是個什麼狀況·······
(二)使用Sysmon工具
Sysmon是微軟Sysinternals套件中的一個工具,首先進入微軟官網下載sysmon(下好後我把文件放到了D盤)
(1)肯定監控目標爲網絡鏈接。
(2)配置文件:
<Sysmon schemaversion="3.10"> <!-- 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.exe</Image> </NetworkConnect> <NetworkConnect onmatch="include"> <DestinationPort condition="is">80</DestinationPort> <DestinationPort condition="is">443</DestinationPort> <DestinationPort condition="is">4314</DestinationPort> </NetworkConnect> <FileCreateTime onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </FileCreateTime> <ProcessCreate onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </ProcessCreate> <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="end with">powershell.exe</SourceImage> </CreateRemoteThread> </EventFiltering> </Sysmon>
相關釋義:
(3)把配置文件放入c盤;
(4)以管理員身份運行cmd,執行命令
接着輸入命令:
sysmon.exe -i c:\sysmon20164314.xml
提示版本不一樣,將「20164314.xml」文件中 <Sysmon schemaversion="3.10"> 改成 <Sysmon schemaversion="4.20">
輸入上一步中的命令,執行,此時會彈出一個窗口,點擊agree;
安裝成功以下:
(5)在事件查看器裏查看日誌
依次點開應用程序和服務日誌→Microsoft→Windows→Sysmon→Operational。
(6)分析實驗二生成的後門程序,按步驟進行回連
查找事件
找到事件
打開詳細信息,能夠看到這個後門映像文件的具體位置、源IP和端口、目的IP和端口等
(三)惡意軟件分析
(1)靜態分析
使用VirusTotal分析惡意軟件
算法庫支持
(2)動態分析
安裝SysTracer工具,監聽端口選擇4314
使用SysTracer工具動態分析我是在兩臺虛擬機上進行的,一臺是win10虛擬機,一臺是Linux的虛擬機
(1)點擊右側的take snapshot,存儲快照
dir
指令,保存爲Snapshot #3record_mic
指令,保存爲Snapshot #4
(2)經過右下角的 compare
鍵或者 View Differences Lists
比對各快照,能夠選擇 Only Difference
只查看不一樣的項
①對比快照一和快照二(後門啓動前與啓動後):
如上圖所示,一些Systracer未受權的地方咱們是無法查看的
HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE和HKEY_USER沒法查看
②對比快照二和快照三:Linux上執行 dir
指令
不是很懂爲啥又是查看不了·····(難道由於是虛擬機?)
③ 對比快照三和快照四:Linux上執行 record_mic
指令
Apache HTTP Server
4、實驗後回答問題
(1)若是在工做中懷疑一臺主機上有惡意代碼,但只是猜測,全部想監控下系統一每天的到底在幹些什麼。請設計下你想監控的操做有哪些,用什麼方法來監控。
(2)若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。
5、實驗感想
在當了屢次的「小偷」後,咱們此次實驗終於到了一次「警察」,對過去本身的所做所爲進行分析,知道了很多小卻十分方便的工具,也知道了Windows自帶的一些很方便的服務。經過這些工具,能夠查看「小偷」對咱們的電腦作了些什麼,從而對「小偷」進行管理。
( 就是感受好多Systracer未受權的地方呀·······)