(1)若是在工做中懷疑一臺主機上有惡意代碼,但只是猜測,因此想監控下系統一每天的到底在幹些什麼。請設計下你想監控的操做有哪些,用什麼方法來監控。html
我想了解的大概有linux
監控方法:git
(2)若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。web
返回目錄chrome
第一步:在windows命令行下輸入命令:schtasks /create /TN 20155312netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
shell
【注】:經過閱讀盧肖明學長的博客,我發現其實不用像後續操做這樣複雜,其實只須要「編輯netstatlog.bat」->執行指令schtasks /create /TN 20155312netstat /sc MINUTE /MO 1 /TR "c:\netstatlog.bat"
兩步便可建立一個每隔兩分鐘記錄計算機聯網狀況的任務。但這裏仍是詳細的記錄了我使用學姐的方法探索的過程,若是你們想省事,不用像我這麼麻煩~小程序
c:\netstatlog.txt相似於Linux中的重定向,輸出將存放在C盤下的netstatlog.txt文件中(自動生成)。windows
建立成功結果以下:瀏覽器
此命令完成後,每1分鐘就會監測哪些程序在使用網絡,並把結果記錄在netstatlog.txt文檔裏,爲了顯示日期和時間,咱們經過bat批處理文件來實現。安全
第二步:在C盤要目錄下建一個文件c:\netstatlog.bat
type nul>netstatlog.bat
,結果提示拒絕訪問。sudo
結果仍是提示拒絕訪問。date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
第三步:編輯任務操做:
1.進入任務計劃程序:「win+c」選擇「設置」->進入「控制面板」->選擇「管理工具」->進入「任務計劃程序」
2.找到咱們的任務20155312netstat,雙擊點開
3.點擊下方「操做」->右側所選項欄中「屬性」->屬性頁面上方的「操做」
4.雙擊任務進入「編輯操做」界面
5.在程序腳本處點擊「瀏覽」->選擇剛纔建立的「netstat.bat」,「參數可選項」爲空,
6.點擊「肯定」完成修改,詳細信息處以下圖:
7.查看netstat.txt文件,已經有了時間的記錄,至此完成了任務的建立:
第四步:等待一直兩天;
【注】:這裏須要一直保持開機聯網狀態,才能持續監控哦~天真的我甚至還關了機在那傻等……
此外,若是發現netstatlog.txt沒有每分鐘更新一次,多是由於設置時默認選擇了「只有計算機使用交流電源時才啓用此任務」,因此一旦咱們不給電腦充電,任務就無法運行。解決方法就是在netstat任務屬性的設置中取消選中該選項,以下圖所示,而後就能夠發現每隔一分鐘命令行會閃現一下,其中包含netstatlog.bat中的三行指令,netstatlog.txt本身就隨之更新了。
第五步:用excel分析數據。
1.導入文本數據:新建excel文件->選擇上方「數據」->選擇「獲取外部數據」->選擇「自文本」
2.選擇記錄鏈接狀況的文本netstatlog.txt,點擊「導入」
3.進入文件導入嚮導第一步,選中「分隔符號」,點擊「下一步」
4.進入文件導入嚮導第二步,選中所有分隔符號,點擊「下一步」
5.進入文件導入嚮導第三步,列數據格式選擇常規,點擊「完成」。
6.鼠標選中左上角第一個單元格,而後點擊「肯定」
待分析數據以下:
第六步:對數據進行統計學分析:
1.首先查看全部聯網程序的聯網次數,具體excel操做以下:
①首先選中咱們要分析的列:
②其次點擊上方「插入」->「數據透視表」->「數據透視圖」
③默認選擇在一個新工做表中生成
④在右側「選擇要添加到報表的字段」中點擊對應字段右側的小箭頭->取消選擇那些沒有意義的字段,而後點擊「肯定」
②將該字段拖動到下方的「軸字段」和「數值」兩個區域中
⑥而後就能夠看到咱們的統計圖進行分析了:
2.由上圖所示,聯網最多的是360瀏覽器對應的程序「360chrome.exe」,排名第二的是「wpscloud.exe」,它是wps軟件雲端的一個服務的進程。這裏咱們還能夠找到微信、虛擬機、後門程序zjy_backdoor.exe這些連網的進程。
沒發現什麼其餘可疑的程序,既然這樣咱們就分析一下wpscloud.exe連了哪裏,大約幹了什麼吧。
經過查看錶格,咱們發現它鏈接了外部網絡119.75.216.20:443,猜想他就是不斷的檢測系統文件有沒有更新,而後往雲端傳送吧。
第一步:肯定監控木匾。我感興趣的是進程建立ProcessCreate、進程建立時間FileCreatTime、網絡鏈接NetworkConnect、遠程線程建立CreateRemoteThread。
第二步:寫配置文件。
1.瞭解一下配置文件應該怎麼寫:
①進程建立ProcessCreate的過濾事件選項有:
UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
↑ 這裏我用到了Image、SourceIp、SourcePort。
②進程建立時間FileCreatTime的過濾事件選項有:
UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
↑ 這裏我用到了Image。
③網絡鏈接NetworkConnect的過濾事件選項有:
UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
↑ 這裏我用到了Image、SourceIp、SourcePort。
④遠程線程建立CreateRemoteThread的過濾事件選項有:
UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
↑ 這裏我用到了TargetImage、SourceImage。
其餘時間過濾器、過濾事件的選項、onmatch選項可取值、condition可設置的值、配置文件樣例,能夠參考使用輕量級工具Sysmon監視你的系統
2.寫與本身想要監控的事件想對應的配置文件。個人建立配置文件20155312Sysmoncfig.txt內容以下:(配置文件是xml文件,爲了簡單編輯就直接命令爲.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">chrome.exe</Image> </ProcessCreate> <FileCreateTime onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </FileCreateTime> <NetworkConnect onmatch="exclude"> <Image condition="end with">chrome.exe</Image> <SourcePort condition="is">137</SourcePort> <SourceIp condition="is">127.0.0.1</SourceIp> </NetworkConnect> <NetworkConnect onmatch="include"> <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>
解釋:
3.把配置文件放在C盤下。
第三步: 啓動sysmon。
1.下載老師提供的SysinternalsSuite201608壓縮包,解壓。
2.在命令提示符(管理員)中進入到該目錄下。win8中用管理員身份運行cmd方法:使用「win+x」調出win8開始菜單->選擇「命令提示符(管理員)」
2.安裝sysmon:執行命令sysmon.exe -i C:\20155312Sysmoncfig.txt
,這裏注意要把配置文件名換成本身的。
3.這裏彈出的窗口點擊agree:
4.成功安裝的結果以下:
【注】:若是沒有以管理員身份運行安裝指令,安裝後會提示:「You need to launch Sysmon as an Administrator.」以下圖。且在第四步中將沒法找到Windows下的Sysmon。
5.若是修改了配置文件,要運行指令:sysmon.exe -c C:\20155312Sysmoncfig.txt
第四步:在事件查看器裏查看日誌
1.桌面「這臺電腦」圖標,右鍵菜單中,點擊打開「管理」。
2.點擊左側「系統工具」->「事件查看器」
3.點擊「事件查看器」右側小箭頭,選擇日誌的位置:應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational。
4.利用Sysmon具體分析日誌的例子我選擇了本身實驗二中生成的後門zjy_backdoor.exe進行分析。
第一步:啓動回連、安裝到目標主機。
14:21:28時可找到運行後門文件zjy_backdoor.exe相對應的日誌以下:
與此同時,我還發現了一個名爲360toasts.exe的程序,由於我運行後門時有被360攔截,因此它就是360檢測到危險時運行的程序。
後來我添加後門到了信任文件,因此360衛士後續還運行了其餘一些可執行文件,例如:360RealPro.exe、360sctblist.exe、360sclog.exe、360tray.exe、。
第二步:Linux執行了record_mic截獲音頻、webcam_snap截獲照片、keyscan_start記錄擊鍵記錄、getuid獲取當前用戶等操做。
15:16前我完成了record_mic截獲音頻、webcam_snap截獲照片、keyscan_start記錄擊鍵記錄、getuid獲取當前用戶等操做,相對應的觀察日誌文件發現有這樣幾條記錄:
15:15:16時啓動了conhost.exe的事件:
15:16:15時有一個啓動了SearchFilterHost.exe的事件:
因此沒分析出個因此然,這個日誌看不出來是否獲取了攝像頭什麼的。
第三步:既然上述行爲暫時分析不出什麼,咱們試試下面這些操做:dir、shell、getuid、getpid、ps等
①運行dir後,首先咱們發現了一個很是重要的進程svchost.exe:
②運行shell後,咱們能夠觀察到一個和咱們後門所在文件夾有關的C:\Windows\SysWOW64\cmd.exe程序以下圖所示。
其餘幾個命令分析方法相似,通常Kali中執行個指令,Windows日誌中就會記錄這個C:\Windows\SysWOW64\cmd.exe。
分析該軟件在(1)啓動回連,(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件
(1)讀取、添加、刪除了哪些註冊表項
(2)讀取、添加、刪除了哪些文件
(3)鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)
第一步:下載安裝Systracer。
1.首先下載完成後進行安裝,步驟爲:agree->選第二個(全面點總不會有錯吧)
->設置監聽端口號(我設成了後門生成時利用的端口)
->安裝完成
2.在打開後門前先快照一下,點擊「take snapshot」,如圖,按照如下步驟進行:
完成後顯示Snapshop #1
3.Kali打開msfconsole,完成相關設置後開始監聽,Windows運行後門後,拍攝快照:
完成後顯示Snapshop #2
4.進行分析:
①點擊上方「Applications」->左側「Running Processes」->找到後門進程「zjy_backdoor.exe」->點擊「Opened Ports」查看回連地址、遠程地址和端口號:
②在快照界面「Snapshots」右下角點擊「Compare」,比對一下回連先後計算機發生的變化:
全部藍色標註的地方,就是先後發生變化的地方。例如,我發現後門啓動後,對個人"Local Settings"->"Software"中的文件進行了修改:
此外還對註冊表中hkey_local_machine根鍵的System子鍵進行了修改,修改內容以下:
此外,一些Systracer未受權的地方咱們是無法查看的。
5.接下來咱們訪問讓攻擊機獲取目標主機音頻、攝像頭、擊鍵記錄,而後生成快照,看看它又作了什麼:
它改了HKEY_CURRENT_USER->software->SogouInput中用戶搜狗輸入的一部份內容,我以爲好像和擊鍵記錄有關係,由於他確定是獲取了我輸入的權限。而HKEY_CURRENT_USER的做用以下:
對比結果以下:
此外,還有這些修改咱們是沒有辦法查看的,雖然不知道具體改了什麼,但咱們仍是能夠了解攻擊機獲取主機權限後修改了什麼:
6.此外咱們能夠經過查看後門軟件的「opened handles」(打開的句柄)來對比他們都作了什麼:
回連成功時:
獲取權限進行相關操做後,跟只是回連相比,多了不少內容:
第二步:用wireshark抓包分析鏈接了哪些外部IP,傳輸了什麼數據
1.在回連以前,開始捕獲;
2.回連完成後結束捕獲,並把過濾規則設置爲ip.addr == 192.168.217.132
,這裏我只想查看和虛擬機IP有關的數據包,因此把沒用的包過濾掉:
3.接下來能夠看看它鏈接了哪些外部IP:
4.再往下看看,發現本身的Windows主機IP:
5.看看都傳了啥數據:
①第一條是Windows向Kali發出TCP同步請求包SYN:
②第二條是Kali給Windows的復位包RST和確認包ACK:
可是RST標示覆位、用來異常的關閉鏈接。這樣看來是Kali如今還不是和主機鏈接的時機哈哈哈哈,再往下看看。
③果真!找到了後面他們兩個握手的包:
這是SYN同步請求包:
這是SYN+ACK:
後面Kali還給Windows傳了一大堆ACK包,這裏省略,有時還伴有PSH+ACK包。(PSH就表示有 DATA數據傳輸)
6.Kali獲取下攝像頭、錄個音、獲取擊鍵記錄並查看,再看看wireshark:
這回PSH+ACK的包好像多了些,具體的數值看不出個因此然,但一猜確定就是那些擊鍵記錄啥的唄。
經過本次實驗,我學會了如何讓計算機週期性執行一個任務,若是把命令行下的結果記錄到文件中、如何利用.bat文件顯示時間、如何利用excel分析數據、如何利用Sysmon監控本身感興趣的事件、如何寫配置文件、如何分析日誌中的大量信息、如何對惡意代碼進行進一步分析。
經過本身動手實踐,實現了從攻擊者身份到檢測、分析者身份的轉變,更全面的理解了前兩次實驗中生成的後門程序到底在作什麼,對惡意代碼有了更深刻的理解。