監控你本身系統的運行狀態,看有沒有可疑的程序在運行。html
分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具儘可能使用原生指令或sysinternals,systracer套件。linux
假定未來工做中你以爲本身的主機有問題,就能夠用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行爲與性質。git
實踐內容(3.5分)shell
(1)使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出全部連網的程序,連了哪裏,大約幹了什麼(不抓包的狀況下只能猜),你以爲它這麼幹合適不。若是想進一步分析的,能夠有針對性的抓包。windows
(2)安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。api
參考:schtask與sysmon應用指導瀏覽器
實際日誌的分析還須要發揮下本身的創造力,結合之前學過的知識如linux的文本處理指令等進行。分析的難點在於從大量數據中理出規律、找出問題。這都依賴對結果過濾、統計、分類等進一步處理,這就得你們會什麼用什麼了。安全
分析該軟件在(1)啓動回連(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件微信
(3)讀取、添加、刪除了哪些註冊表項網絡
(4)讀取、添加、刪除了哪些文件
(5)鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)
該實驗重點在「分析」,不是「如何使用某軟件」。組長、課題負責人要求寫細一點,其餘人能夠重點放在分析上。
(1)若是在工做中懷疑一臺主機上有惡意代碼,但只是猜測,全部想監控下系統一每天的到底在幹些什麼。請設計下你想監控的操做有哪些,用什麼方法來監控。
我感受後門程序會
①建立一些進程來進行惡意行爲
②佔用一些端口
③修改我電腦上的一些文件,偷看個人文件內容
④鏈接一些網絡以進行一些信息交互
監控的話,能夠
①讓主機執行netstat並分析網絡鏈接狀況。
②還能夠利用Sysmon,編寫配置文件,記錄日誌。
(2)若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。
①利用Wireshark抓包,進行分析有沒有異常的或可疑的鏈接。
②還能夠利用Systracer來拍攝快照,進行對比分析改變的註冊表及文件信息。
1. 使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出全部連網的程序,連了哪裏,大約幹了什麼(不抓包的狀況下只能猜),你以爲它這麼幹合適不。若是想進一步分析的,能夠有針對性的抓包。
(1)使用schtask監控系統運行
對於計劃任務,我打算使用Schtasks
命令來監視,學姐的博客中建議閱讀Schtask命令詳解。
學習也要有目的地學習,咱們想要建立一個計劃任務,因而,瞭解到與建立任務有關的命令參數:
/tn TaskName ------- 指定任務的名稱 /tr TaskRun ------- 指定任務運行的程序或命令 /sc schedule ------- 指定計劃類型,有效值MINUTE表示指定計劃的單位時間爲minute。 /mo modifier 指定任務在其計劃類型內的運行頻率,默認值爲1
由此,命令可爲
schtasks /create/tn TaskName /tr TaskRun /sc MINUTF [/mo {1 - 365}]
第一步:建立一個計劃任務
schtasks /create /TN 20165203netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
便可以每分鐘監測哪些程序在利用網絡,而且能夠把結果記錄進netstatlog.txt文件裏,如圖所示建立成功。在文檔中如何顯示日期和時間呢?咱們須要經過bat
批處理來實現。那什麼又是bat批處理
呢?學姐推薦了dos命名大全,.bat文件的寫法,
>命令在清除掉原有文件中的內容後才把新的內容寫入原文件 >>命令會另起一行把新的內容追加到原文件中。 time,顯示和設置DOS的系統時間。[格式] time [hh[:mm[:ss[.cc]]] date,顯示和設置DOS的系統日期。[格式] date [MM-DD-YY] netstat,顯示與IP 、TCP 、UDP 和ICMP 協議相關的統計數據 -b顯示包含於建立每一個鏈接或監聽端口的可執行組件 -n以數字形式顯示地址和端口號。 因此,最後bat文件以下: date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
第二步:
date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt natstat -bn >> c:\netstatlog.txt
第三步:編輯任務
控制面板
-> 選擇管理工具
-> 選擇任務計劃程序
活動任務
中找到咱們建立的計時任務20165203netstat
,並雙擊點開。操做
-> 點擊右欄中的屬性
-> 屬性頁面上方的操做
編輯操做
界面程序或腳本
處點擊瀏覽
-> 選擇咱們建立的netstat.txt
,添加參數
處可選空。修改完畢後,點擊肯定就能夠啦。
還要提升任務權限。(後面問題解決模塊詳細說明)
netstat.txt
文件,就已經有了時間的記錄了,任務的建立完成了。第四步:接下來咱們要作的就是等待,等待的時間取決於你想要監視的時長,注意,必定是電腦接通交流電源的時候監視任務才能運行哦,可不要竹籃打水一場空。
第五步:分析數據
獲得了數據,咱們就要分析數據了,這須要咱們的數學知識和計算機基本操做知識了,分析數據最直觀的就是統計圖的形式了,那麼在哪裏能夠找到統計圖呢?個人選擇是Excel。
導入數據:在新建的excel文件中選擇上方的數據
-> 獲取外部數據
-> 自文本
。並選擇帶有咱們所要統計數據的文本netstatlog.txt
,點擊導入
。
進入嚮導後,選擇分隔符號
,點擊下一步
。
下一步
。列數據格式
選擇常規
,點擊完成
便可。肯定
便可。第六步:獲得數據的統計圖,並進行統計學分析
咱們能夠統計一下哪一個程序鏈接互聯網的次數最多。
插入
-> 數據透視圖
選擇要添加到報表的字段
,點擊下三角
,取消沒有意義的字段(由於TCP和一些時間信息不在咱們統計範圍內,咱們須要的是程序名),點擊肯定
。軸字段
和數值
兩個區域中。分析一下,根據個人圖,聯網最多的是虛擬機vm對應的程序vmware-hosted.exe
,由於我一下午一直在整理我虛擬機裏的文檔,用虛擬機作可信的實驗,嘻嘻,排名第二的是vmware.exe
,是虛擬機的一個進程程序,此外,咱們還能夠看到你們熟悉的微信wechat.exe
,QQTIMTIM.exe
等等。
咱們還能夠分析一些進程程序的鏈接位置,幹了什麼事,例如,個人搜狗瀏覽器SougouExplorer.exe
的外部地址是36.110.170.195:55261
,應該是我在查東西的時候進入到這個地址而後進行數據傳輸。
(2)安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。
這一步,我想在Windows7虛擬機裏作。
我選擇的是進程建立ProcessCreate、進程建立時間FileCreatTime、網絡鏈接NetworkConnect、遠程線程建立CreateRemoteThread。
根據本身想要監控的事件對應的配置文件,由於使用瀏覽器不少,爲了,因此,我不想監視虛擬機的瀏覽器,天然就要過濾掉對應iexplorer.exe
,創建一個配置文件20165203Sysmoncfig.txt
,內容以下:
<Sysmon schemaversion="3.10"> <!-- Capture all hashes --> <HashAlgorithms>*</HashAlgorithms> <EventFiltering> <!-- Log all drivers except if the signature --> <!-- contains Microsoft or Windows --> <ProcessCreate onmatch="exclude"> <Image condition="end with">iexplore.exe</Image> </ProcessCreate> <FileCreateTime onmatch="exclude" > <Image condition="end with">iexplore.exe</Image> </FileCreateTime> <NetworkConnect onmatch="exclude"> <Image condition="end with">iexplore.exe</Image> <SourcePort condition="is">137</SourcePort> <SourceIp condition="is">127.0.0.1</SourceIp> </NetworkConnect> <NetworkConnect onmatch="include"> <DestinationPort condition="is">5203</DestinationPort> <DestinationPort condition="is">80</DestinationPort> <DestinationPort condition="is">443</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="end with">powershell.exe</SourceImage> </CreateRemoteThread> </EventFiltering> </Sysmon>
解釋一下個人文件:
iexplore
,本身能夠寫本身經常使用的瀏覽器,能夠在任務管理器中的進程中查看。explorer.exe
、svchost.exe
、winlogon.exe
和powershell.exe
的遠程線程。把配置文件放在C盤根目錄下。
咱們在[老師給的連接]https://gitee.com/wildlinux/NetSec/attach_files)上下載SysinternalsSuite201608.zip
,並解壓。
以管理員的身份進入cmd.exe,輸入sysmon.exe -i C:\20165203Sysmoncfig.txt
以安裝sysmon。
輸入運行後會彈出如圖所示的一個窗口,點擊agree便可。
接下來,咱們來查看一下咱們的日誌
右擊計算機
,點擊打開管理
點擊左側系統工具
-> 事件查看器
事件查看器
右側小箭頭,選擇日誌的位置:應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational
20165203_backdoor.exe
。分析:
qqpctray.exe
的程序啓動,這應該是電腦管家試圖殺死後門程序所啓用的程序。dir、shell、getuid、getpid
等一些操做我又發現了一些新的線索。svchost.exe
,如圖所示。shell
,觀察到一個進程```C:\Windows\SysWOW64\cmd.exe,這個忘了截圖了。分析該軟件在(1)啓動回連(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件
(3)讀取、添加、刪除了哪些註冊表項
(4)讀取、添加、刪除了哪些文件
(5)鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)
靜態分析
virscan
網站上,掃描本身的後門程序xyx_backdoor.exe
。在PEid的官網上下載工具,它是一款著名的查殼工具,其功能強大,幾乎能夠偵測出全部的殼,其數量已超過470 種PE 文檔 的加殼類型和簽名。
下載後解壓,點擊文件夾中的.exe文件,進行安裝啓用。
咱們能夠直接選擇本身想要分析的後門程序或者直接把後門程序拖進PEid中。
什麼也沒發現
。>>
,能夠看到關於殼的詳盡信息。在官網上下載PE explorer。
在軟件中打開咱們須要查看的後門程序,我選擇的是本身生成的xyx_backdoor2.exe。
試圖
-> 數據目錄
中查看程序靜態數據目錄信息。試圖
-> 節頭
中查看節頭
信息。工具
-> 反彙編器
能夠進行反彙編,咱們能夠看到頭部的彙編語言。導入
標誌,咱們能夠查看引用的Dll庫。msvcrt.dll
:msvcrt.dll是微軟在windows操做系統中提供的C語言運行庫執行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C語言庫函數的具體運行實現,而且爲使用C/C++(Vc)編譯的程序提供了初始化(如獲取命令行參數)以及退出等功能。kernel32.dll
:kernel32.dll是Windows 9x/Me中很是重要的32位動態連接庫文件,屬於內核級文件。它控制着系統的內存管理、數據的輸入輸出操做和中斷處理,當Windows啓動時,kernel32.dll就駐留在內存中特定的寫保護區域,使別的程序沒法佔用這個內存區域。advapi32.dll
:advapi32.dll是一個高級API應用程序接口服務庫的一部分,包含的函數與對象的安全性,註冊表的操控以及事件日誌有關。xp系統通常位於C:\WINDOWS\system32\目錄下,大小659KB。wsock32.dll
:wsock32.dll是Windows Sockets應用程序接口,用於支持不少Internet和網絡應用程序,容易遭受木馬病毒的破壞而致使系統找不到該文件,而且出現錯誤提示框。ws2_32.dll
:Windows和須要執行TCP/IP網絡通訊的應用程序會調用動態連接庫ws2_32.dll。動態分析
Systracer
來分析:首先,下載安裝Systracer(在老師給的連接中),
agree -> 選第二個
take snapshot
,記錄一下電腦安全時的文件狀況,快照名字爲Snapshop #1。進行分析:
Applications -> 左側Running Processes -> 找到後門程序"xyx_backdoor2.exe" -> 點擊"Opened Ports"
就能查看回連地址、遠程地址和端口號。Snapshots
右下角點擊Compare
,比對一下回連先後計算機文件所發生的變化。UserAssist
中的Count
發生了變化,如圖所示,這是註冊表中的一個表項,它是軟件使用記錄,不過常常會被病毒或木馬用到,應該是啓動後門程序後,後門程序對該鍵項值作了修改。nsi
表項是一個腳本表項,用來描述安裝程序的行爲和邏輯的,後門的程序侵入電腦,記錄天然會發生變化。此外,咱們訪問讓攻擊機獲取目標主機音頻、攝像頭和擊鍵記錄生成了快照snapshop #3和#4。
UserAssist
中的Count
又發生了改變,Nsi也發生了改變。在回連以前,開始捕獲包;
在回連完成後結束捕獲,由於咱們只想查看和虛擬機IP有關的數據包,因此,把沒用的包過濾掉,咱們能夠把過濾規則設置爲ip.addr == 192.168.1.186
。
發現了本身的windows主機IP
分析一下所傳輸的數據:
問題1:在使用schtask監控系統運行時,關於監控的狀況始終寫不進記錄文件中。
解決1:後來,發如今計算機管理中找到咱們所建立的任務,右鍵 -> 屬性,設置成最高權限
,就能夠了。
問題2:在安裝sysmon時,在終端輸入輸入sysmon.exe -i C:\20165203Sysmoncfig.txt
後,顯示安裝失敗,如圖所示。
解決2:後來發現,原來是沒有以管理員身份運行cmd.exe,咱們點擊查找,在cmd.exe處點擊右鍵,選擇以管理員身份運行便可。
本次實驗,咱們經過各個軟件對後門程序做了分析,你們使用的軟件有不少,還有一些我沒寫進博客中,可是也在課下嘗試了一下。隨着軟件的不一樣,咱們的分析方法也不一樣。經過這些軟件,咱們更加全面地分析了後門程序所犯下的罪行,這些後門都繞過了殺毒軟件,這些更加證實了殺毒軟件不是萬能的,打鐵還需自身硬,提升本身的知識才能不給這些後門程序可乘之機。