20165214 2018-2019-2 《網絡對抗技術》Exp4 惡意代碼分析 Week6

《網絡對抗技術》Exp3 免殺原理與實踐 Week5

1、實驗目標與內容

  • 1.實踐目標html

    • 1.1是監控你本身系統的運行狀態,看有沒有可疑的程序在運行。linux

    • 1.2是分析一個惡意軟件,就分析Exp2或Exp3中生成後門軟件;分析工具儘可能使用原生指令或sysinternals,systracer套件。web

    • 1.3假定未來工做中你以爲本身的主機有問題,就能夠用實驗中的這個思路,先整個系統監控看能不能找到可疑對象,再對可疑對象進行進一步分析,好確認其具體的行爲與性質。chrome

  • 2.實踐內容(3.5分)shell

    • 2.1系統運行監控(2分)
      • (1)使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。目標就是找出全部連網的程序,連了哪裏,大約幹了什麼(不抓包的狀況下只能猜),你以爲它這麼幹合適不。若是想進一步分析的,能夠有針對性的抓包。
      • (2)安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。

實際日誌的分析還須要發揮下本身的創造力,結合之前學過的知識如linux的文本處理指令等進行。分析的難點在於從大量數據中理出規律、找出問題。這都依賴對結果過濾、統計、分類等進一步處理,這就得你們會什麼用什麼了。windows

- 2.2惡意軟件分析(1.5分)

    - 分析該軟件在(1)啓動回連,(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件

    -(3)讀取、添加、刪除了哪些註冊表項

    -(4)讀取、添加、刪除了哪些文件

    -(5)鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)

2、實驗步驟

步驟一:系統運行監控

使用如計劃任務,每隔一分鐘記錄本身的電腦有哪些程序在聯網,鏈接的外部IP是哪裏。運行一段時間並分析該文件,綜述一下分析結果。

  • 一、使用schtasks指令。schtasks.exe是安排命令和程序按期運行或在指定時間內運行。從計劃表中添加和刪除任務,按須要啓動和中止任務,顯示和更改計劃任務。
    • schtasks指令的參數:
      • TN:任務名,我起爲schtasks5214
      • sc:計時方式,這裏用MINUTE表示以分鐘爲單位
      • bn:b是顯示可執行文件的名字,n是用數字表示IP和端口
      • TR:要運行的指令、
      • >:輸出重定向,也就是要將輸出放在哪一個文件,本次爲c:\netstatlog.txt
    • 根據上面參數構造指令爲schtasks /create /TN schtasks5214 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"。打開cmd,在cmd輸入這句指令並回車。
  • 二、打開C盤,新建schtasks5214.bat,輸入date /t >> c:\netstat5318.txt time /t >> c:\netstat5318.txt netstat -bn >> c:\netstat5318.txt,保存並關閉。(因爲在C盤權限不夠不能直接建立,因此只能經過先在其餘地方輸入而後再複製到C盤目錄下。)瀏覽器

  • 三、打開任務計劃,查看咱們在第一步建立的任務計劃。
    網絡

  • 四、雙擊打開,在操做欄下點擊編輯,將程序或腳本選擇爲第二步中所新建的bat腳本
    app

  • 五、考慮到開始實驗的時間已經接近11點了,即將斷點,因而再在條件欄下,將只有在計算機使用交流電源時才啓動此任務這一項取消
    工具

  • 六、接着,在常規欄下選擇使用最高權限運行,點擊肯定保存。

  • 七、而後就是等待。。(4小時過去了)。期間我嘗試了斷網,發現斷網不會形成影響,網一連上就又繼續獲取相關數據了。打開netstatlog.txt進行查看:

  • 八、使用excel進行數據分析。打開WPS,導入netstatlog.txt:

  • 九、使用B列的數據生成數據透視圖,統計以下:

使用最多的是火狐瀏覽器,其次是wps。看着這些數據,再回想昨天作實驗的時候我所使用的app,能對得上。

安裝配置sysinternals裏的sysmon工具,設置合理的配置文件,監控本身主機的重點事可疑行爲。

  • 一、下載老師所給的資源SysinternalsSuite.zip,解壓。sysmon就在解壓好的文件夾中。

  • 二、在使用sysmon以前,先在這篇文章中進行粗略的瀏覽,掌握大概的原理與方法。

  • 三、查看sysmon的版本。右鍵Sysmon.exe,在屬性->詳細信息中進行查看

  • 四、在sysmon所在目錄下建立sysmon5214.xml(能夠先建立txt文件,以後再轉換格式),在裏面輸入
<Sysmon schemaversion="4.12">
  <!-- 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> 
      <Image condition="end with">firefox.exe</Image>
      <Image condition="end with">wps.exe</Image>
    </ProcessCreate>

    <ProcessCreate onmatch="include"> 
      <ParentImage condition="end with">cmd.exe</ParentImage>
    </ProcessCreate>

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">firefox.exe</Image>
     <Image condition="end with">wps.exe</Image>
    </FileCreateTime>
    
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">firefox.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>
  • 針對經常使用的Firefox和wps我把他們放在iniclude裏。在上面的代碼中,第一行的sysmon版本號要跟使用的sysmon對上。ProcessCreate表示進程建立,NetworlConnect是網絡鏈接,CreateRemote是遠程線程建立,FileCreate Time是進程建立時間。在onmatch後面跟的參數include和exclude分別表示「免檢」和「必檢」名單。

  • 五、打開cmd,進入到sysmon所在的文件夾中,輸入sysmon.exe -i sysmon5214.xml

    • 不知道爲何,這裏提示版本不對,提示版本應該是3.10,然而我上面在查看版本號的時候是4.12。先改爲3.10,再次運行,成功運行:
  • 六、打開事件查看器時間查看器(本地)->應用程序和服務日誌->Microsoft->Windows->Sysmon->Operational,雙擊Operational,能夠查看按照sysmon5214.xml中的配置信息所記錄的一些信息。選擇其中任一條,能夠看見進程號、運行的軟件名等信息。

  • 七、接下來使用實驗3中的惡意程序(更換了ip地址,從新生成)進行回連,進行日誌分析

  • 八、打開事件查看器,根據運行時間能夠很容易地找到剛剛運行的後門的相關信息。

  • 九、回到kali,使用webcam_snap進行拍照。回到事件查看器,能夠看到出現了兩條這樣的信息:


    SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要做用是創建快速索引文件,讓用戶可以更好的搜索出電腦中的任意資料。它會在計算機空閒時自動掃描索引位置的文件名、屬性信息和給定類別的文件內容,這些索引位置默認包括桌面、收藏夾、開始菜單、系統目錄。

  • 十、再使用getuid指令,回到事件查看器,沒有發現什麼。

  • 十一、是否是使用不一樣的指令,日誌是不一樣的呢?接下來嘗試一下簡單的dir命令,進行查看,發現沒有出現什麼提示。這是怎麼回事呢?getuid和dir指令在network中都沒顯示。我沒有找到緣由。
    (不過我卻是發現了wps一直在後臺默默在用着個人網絡。。。當我沒上網的時候,network類別幾乎都是wps.exe和wpscenter.exe,看來之後不用的時候仍是將他們完全退出吧)

步驟二:惡意軟件分析

分析該軟件在(1)啓動回連,(2)安裝到目標機(3)及其餘任意操做時(如進程遷移或抓屏,重要是你感興趣)。該後門軟件(3)讀取、添加、刪除了哪些註冊表項(4)讀取、添加、刪除了哪些文件(5)鏈接了哪些外部IP,傳輸了什麼數據(抓包分析)。在這一步中,因爲wps.exe關於network實在很煩人,我從新修改了sysmon的配置。

  • 一、使用wireshark進行抓包分析。
    • 打開wireshark,選擇wlan模式。開始抓包後,本機啓動惡意程序回連kali虛擬機,回連成功後中止捕包,輸入篩選條件ip.addr == 172.30.4.217進行查看

    • 能夠看到一開始創建了三次握手鍊接。
    • 再次開始抓包,kali調用屏幕拍照webcam_snap和獲取uidgetuid,而後中止捕包,進行查看
    • 使用時getuid出現了4條記錄:

    • 使用時webcam_snap出現了不少條記錄,我以爲應該是圖片的空間比較大致使的:

  • 二、使用Systracer分析(爲了可以看到惡意軟件鏈接時的變化,每嘗試新的分析軟件時,都先關閉鏈接再從新啓動連接)
    • 安裝並運行systracer。systracer就好像一個「照相機」。他能夠記錄下計算機某個時刻的狀態。而後過一段時間後再次「拍照」記錄。經過比較兩張「照片」中計算機的不一樣進行相應的分析。一開始我是在本機上作快照的,後來發現本機東西太多了,一次快照要花的時間太長。因此我決定用win7虛擬機來作。
    • 未植入惡意軟件以前,先進行一次記錄;(記錄1)
    • 植入惡意軟件以後進行一次記錄;(記錄2)
    • 惡意軟件回連以後進行記錄;(記錄3)
    • 在kali終端進行相應操做以後進行記錄。這裏選的是webcam_snap(記錄4)和pwd(記錄5)。
    • 選中記錄1和記錄2,點擊右下角的view different list,再點擊view,能夠看到增長了不少不知道是什麼的文件和鍵值:
    • 選中記錄2和記錄3進行比較:
      • 運行的進程多了後門程序

      • 植入了一些鍵值

      • 能夠看到鏈接的目的ip以及端口號

    • 選中記錄3和記錄4進行比較(這裏顯示systracer沒有註冊):

      • 再查看file欄下:
    • 選中記錄4和記錄5進行比較:

  • 三、使用PEID檢查是否加殼(PEID下載很簡單,直接百度就能夠知道找到)。
    • 不加殼

    • 壓縮殼

    • 加密殼(這裏不當心刪除掉了加密殼使用的軟件hyperion,參考了這個回答找回。。有驚無險)

    • 壓縮殼後再加密殼

    • 能夠看到,只有有加密殼居然都不能識別出來。。而咱們以前實驗的時候也是隻要涉及到加密殼就不能回連。這二者是否有關聯?

  • 四、使用VirusTotal進行檢查,結果以下:
    • 能夠看到該惡意代碼的相關信息,MD五、SHA-一、文件類型、文件大小、加殼方式等信息。

3、遇到的問題

一、任務啓動失敗,在任務計劃界面一直顯示0x01,查詢了一下0x01在windows表示運行失敗。

解決方法:在同窗的幫助下,我發現是由於在步驟一的第4小步的操做界面我沒有去掉參數,致使了這一的狀況。把參數去掉就解決了問題。

二、啓動sysmon失敗,提示以下:

解決方法:讀提示信息後發現,運行Sysmon.exe須要管理員權限。因而使用管理身份打開cmd,從新輸入,解決了問題。

三、想要把systracer轉移到win7虛擬機中,插U盤沒法識別

解決方法:關閉虛擬機,在USB控制器選項勾選所有,再打開虛擬機,插入U盤,解決問題

4、基礎問題問答

  • 一、若是在工做中懷疑一臺主機上有惡意代碼,但只是猜測,全部想監控下系統一每天的到底在幹些什麼。請設計下你想監控的操做有哪些,用什麼方法來監控。
    答:可使用schtasks定時監聽,一段時間後統計數據;可使用Sysmon,經過編寫配置文件,監視相應的進程狀況;可使用Systracer進行快照比較。

  • 二、若是已經肯定是某個程序或進程有問題,你有什麼工具能夠進一步獲得它的哪些信息。
    答:可使用VirusTotal進行檢查;可使用Systracer進行分析,查看其對註冊表、文件的修改;可使用wireshark進行捕包分析,查看它鏈接到了哪些ip、與外部進行了哪些通訊。

5、心得體會

本次實驗難度不是很大,主要是一些相關軟件的應用以及對相關數據的分析。我以爲比較費時間的一點是,遇到一堆數據不知從何下手進行分析,不少系統的應用都不懂是幹嗎的,只能一個一個百度查,逐個排除嫌疑。不過這樣下來之後我對系統的一些進程有了更好的瞭解,不會把他們和其餘的進程混在一塊兒分不清了。 經過對惡意代碼的分析,也使得我對惡意代碼的行爲、特徵有了更好的瞭解。 不過在網上查找相關信息的時候,甚至還有能夠繞過度析的方法!使人驚訝。然而咱們如今連作徹底免殺都有點費力。看來學習的道路還很長。 感受本身每次實驗都要好久,由於總是喜歡進行各類各樣的嘗試。。問題是那些嘗試居然還都失敗了,浪費了大把的時間。。

相關文章
相關標籤/搜索