2018-2019-2 網絡對抗技術 20165206 Exp4 惡意代碼分析
- 2018-2019-2 網絡對抗技術 20165206 Exp4 惡意代碼分析
- 實驗任務
1系統運行監控(2分)
(1)使用如計劃任務,每隔一分鐘記錄自己的電腦有哪些程序在聯網,連接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出所有連網的程序,連了哪裏,大約幹了什麽(不抓包的情況下只能猜),你覺得它這麽幹合適不。如果想進一步分析的,可以有針對性的抓包。
(2)安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控自己主機的重點事可疑行為。
參考:schtask與sysmon應用指導
實際日誌的分析還需要發揮下自己的創造力,結合以前學過的知識如linux的文本處理指令等進行。分析的難點在於從大量數據中理出規律、找出問題。這都依賴對結果過濾、統計、分類等進一步處理,這就得大家會什麽用什麽了。
2惡意軟件分析(1.5分)
分析該軟件在(1)啟動回連,(2)安裝到目標機(3)及其他任意操作時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件
(3)讀取、添加、刪除了哪些註冊表項
(4)讀取、添加、刪除了哪些文件
(5)連接了哪些外部IP,傳輸了什麽數據(抓包分析)
- 基礎問題回答
- (1)如果在工作中懷疑一臺主機上有惡意代碼,但只是猜想,所有想監控下系統一天天的到底在幹些什麽。請設計下你想監控的操作有哪些,用什麽方法來監控。
我想監控的操作有:註冊表的修改、進程的創建、可疑端口的占用、主機與可疑網絡進行通信、哪些文件被查看了等。
監控方法有:使用sysmon並通過修改配置文件,記錄相關操作的系統日誌文件、使用netstat,讓其定時執行,對記錄的網絡連接進行分析等。
- (2)如果已經確定是某個程序或進程有問題,你有什麽工具可以進一步得到它的哪些信息。
使用wireshark軟件進行抓包分析,查看與主機進行的通信過程,判斷是否存在可疑連接;
使用Systracer軟件對比分析,通過註冊表等信息是否改變等相關信息來進行分析。
- 實驗過程
- 系統運行監控
- 使用schtasks指令監控系統
使用schtasks /create /TN netstat5206 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog5206.txt命令,創建計劃任務netstat5206;
- 指令含義:
TN是TaskName的縮寫,我們創建的計劃任務名是netstat5206;
TR=Task Run,要運行的指令是 netstat
-bn,b表示顯示可執行文件名,n表示以數字來顯示IP和端口;
c:\netstatlog5206.txt類似於Linux中的重定向,輸出將存放在C盤下的netstatlog5206.txt文件中(自動生成)。 創建腳本文件netstat5206.bat,將它放到c盤中,修改文件內容為:
date /t >> c:\netstatlog5206.txt
time /t >> c:\netstatlog5206.txt
netstat -bn >> c:\netstatlog5206.txt
打開任務計劃程序,找到新創建的任務netstat5206;
對這個任務進行編輯,將“程序或腳本”改為netstat5206.bat批處理文件;
- 運行一定時間,可在netstatlog5206.txt中查看本機在該時間內的聯網記錄(由於我不小心將之前統計的netstatlog5206.txt刪掉了,分析的數據不是很多。。);
- 將所得數據在excel中進行分析,導入文本數據;
選擇分隔符號;
選中全部分隔符號;
列數據格式選擇常規;
導入成功;
選中要分析的列;
生成統計圖進行分析,雖然數據較少,但也可以看出TCP連接是最多的,聯網最多的是搜狗瀏覽器對應的程序“Sogoucloud.exe”,也可以看到後門程序20165206_exp4.exe、VM等聯網的進程。
- 使用sysmon工具監控系統
- 創建配置文件sysmon20165206.xml,修改內容為:
<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>
指令含義:
exclude相當於白名單,不用記錄。include相當於黑名單。
Image condition這裏要根據自己使用的瀏覽器更改,例如谷歌瀏覽器是“chrome.exe”,IE瀏覽器是“iexplore.exe”,寫在exclude中就是不記錄由該瀏覽器創建的進程。
進程創建時間類似,也是不創建瀏覽器創建進程的時間。
網略連接過濾掉了瀏覽器的網絡連接、源IP為127.0.0.1的網絡連接和目的端口為137的連接服務,且查看目的端口為80(http)和443(https)的網絡連接。
137端口的主要作用是在局域網中提供計算機的名字或IP地址查詢服務,一般安裝了NetBIOS協議後,該端口會自動處於開放狀態。
127.0.0.1表示本機IP。
遠程線程創建記錄了目標為explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的遠程線程。
explorer.exe是Windows程序管理器或者文件資源管理器
svchost.exe是一個屬於微軟Windows操作系統的系統程序,是從動態鏈接庫 (DLL) 中運行的服務的通用主機進程名稱。
winlogon.exe是Windows NT 用戶登陸程序,用於管理用戶登錄和退出。
powershell.exe是專為系統管理員設計的新 Windows 命令行外殼程序。該外殼程序包括交互式提示和腳本環境,兩者既可以獨立使用也可以組合使用。- 在cmd中輸入sysmon.exe -i C:\sysmon20165206.xml命令,安裝sysmon;
彈出的窗口選擇agree;
成功安裝;
在計算機管理中查看事件查看器,選擇日誌的位置為應用程序和服務日誌/Microsoft/Windows/Sysmon/Operational;
- 利用Sysmon具體分析後門程序;
啟動Kali,進行回連;
找到運行後門文件相對應的日誌,查看詳細信息,可以看到這個後門映像文件的具體位置等一些信息;
- 惡意軟件分析
- 用VirusTotal分析惡意代碼
- 可以看到這個惡意代碼的SHA-1、MD5摘要值、文件類型、文件大小等基本屬性。
- 使用PEiD分析惡意軟件
掃描沒有加殼的後門程序,什麽也沒有找到;
掃描加了壓縮殼的後門程序,可以發現壓縮殼;
掃描加了加密殼的後門程序,什麽也沒有找到;
掃描加了壓縮殼後又加了加密殼的後門程序,什麽也沒有找到;
發現PEid可以發現壓縮殼,但不能掃描出加密殼。
- 用Systracer分析惡意代碼
下載完成後進行安裝,選擇第二個;
設置監聽端口號;
完成安裝後進行對回連前後分別進行快照,take snapshot;
點擊上方“Applications”->左側“Running Processes”->找到後門進程“20165206_ex4.exe”->點擊“Opened Ports”查看回連地址、遠程地址和端口號;
- 點擊“Compare”,比對一下回連前後計算機發生的變化,選擇only difference,查看改變的地方;
可以發現對文件和註冊表等進行了修改;
- 還有許多信息由於未註冊不能查看;
-查看opened handles來對比他們都做了什麽;
- 用Wireshark分析惡意代碼
- 查看VM虛擬機的ip和主機上VM的ip;
- 設置過濾規則為ip.addr == 192.168.154.128,只查看與虛擬機IP有關的數據包;
- 在回連之前,開始捕獲,回連完成後結束捕獲;
可以看到先進行了TCP三次握手,然後開始傳輸數據,並傳輸了大量ACK、PSH+ACK等數據包;
分析數據包可以看到占用的端口等信息;
- 實驗總結與體會
- 這次實驗相對以前而言,並沒有太多動手的地方,主要是分析惡意代碼。通過這次實驗,我們可以使用一些惡意代碼分析軟件來分析惡意代碼,也初步嘗試監控我們電腦了。比如可以周期性的運行一個任務,查看聯網的程序、連接的外部IP等。通過分析,可以發現我們電腦存在的一些隱患或問題。這次和前幾次不同,調換了身份,從攻擊者變成了防禦者,讓我對惡意代碼有了進一步的理解,收獲很大。
2018-2019-2 網絡對抗技術 20165206 Exp4 惡意代碼分析