20222424 2024-2025-1 《网络与系统攻防技术》实验三实验报告
1.实验内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
- veil,加壳工具
- 使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
2.实验过程
2.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
2.1.1使用msf编码器,对后门进行多次编码
查看虚机ip:
无编码:
扫描结果如下:(使用virscan和virustotal,下同)
大部分都可以查杀出来。
1次编码:
扫描结果如下:
24次编码:
扫描结果如下:
可以看出多次编码对免杀没有帮助。
2.1.2使用msf编码器,生成不同文件格式
文件格式jar:
扫描结果如下:
文件格式apk:
扫描结果如下:
文件格式php:
扫描结果如下:
文件格式py:
扫描结果如下:
通过不同格式分别测试,总体来说对于免杀有一定帮助,其中py、php、apk格式的效果较好,有相当一部分没有查杀到。
2.1.3使用veil工具
(此处直接开始使用安装好的veil,安装过程详见问题及解决方案)
查看虚机ip:
进入veil:
选择使用evasion模块:
输入list查看可以使用的payload:
选择一个可用的playload,首先尝试c/meterpreter/rev_tcp.py:
设置反弹连接IP及端口:
查看设置情况:
输入generate生成文件,然后输入你想要playload的名字:
扫描结果如下:
然后尝试一下go/meterpreter/rev_tcp.py:
设置反弹连接IP及端口:
查看设置情况:
输入generate生成文件,然后输入你想要playload的名字:
扫描结果如下:
再尝试一下python/meterpreter/rev_tcp.py:
设置反弹连接IP及端口:
查看设置情况:
输入generate生成文件,然后输入你想要playload的名字:
扫描结果如下:
最后尝试一下ruby/meterpreter/rev_tcp:
设置反弹连接IP及端口:
查看设置情况:
输入generate生成文件,然后输入你想要playload的名字:
扫描结果如下:
2.1.4使用C + shellcode编程
查看虚机ip:
首先,用msf生成一段shellcode,输入命令:
使用vim编辑器新建20222424.c文件并编写保存:
编译器在64位系统上构建32位应用程序,生成exe文件:
扫描结果如下:
2.1.5使用加壳工具(使用上一步生成的20222424.exe文件)
首先尝试压缩壳upx:
扫描结果如下:
然后尝试加密壳Hyperion,将exe文件复制到工作目录:
使用hyperion.exe加密:
扫描结果如下:
2.2通过组合应用各种技术实现恶意代码免杀
免杀原理:msfvenom生成shellcode+异或操作+upx压缩壳
使用金山毒霸查杀:
用另一电脑实测,在杀软开启的情况下,可运行并回连成功:
杀软:
3.问题及解决方案
- 问题1:安装veil的过程时遇到的问题及解决方案
安装veil:
安装后输入命令veil,还会继续安装,过程中会出现如下报错:
不能解析主机名,因为veil默认主机名为kali,于是我又把主机名改为了kali,安装过程中出现安装Python的界面:
连续点击next后会卡死,强制退出后再次执行veil :
按照提示执行命令/usr/share/veil/config/setup.sh--force --silent后,再次开始安装,又报了一个错误:
再按照提示执行命令apt-get install wine32:i386:
又报错了,到这不知该怎么办了,互联网上查找资料后,解决步骤如下:
apt-get install libncurses5*
apt-get install libavutil55*
apt-get install gcc-mingw-w64*
dpkg --add-architecture i386
apt-get update
apt-get install wine32
最后两步可能需要等待的时间比较长,此时再次执行/usr/share/veil/config/setup.sh--force --silent,即可安装成功! - 问题2:使用veil工具时未能生成exe文件
- 问题2解决方案:
4.学习感悟、思考等
4.1 问题回答
(1)杀软是如何检测出恶意代码的?
-
特征码扫描:杀软通过比对文件中的代码与已知恶意软件数据库中的特征码来检测威胁。这种方法依赖于不断更新的病毒数据库。
-
启发式分析:通过分析文件的结构、行为或代码模式预测潜在的恶意活动,借此检测未知威胁。
-
行为监控:实时监控程序行为,如文件操作、网络通信或系统调用,识别异常活动。
-
云查杀:利用云端数据库进行检测,通过互联网快速更新和分析庞大数据库来识别威胁。
-
沙箱技术:在虚拟环境中运行可疑文件,观测其行为以判断是否恶意。
(2)免杀是做什么?
- 免杀指的是通过各种技术手段,使恶意代码躲避杀毒软件的检测。目的是使恶意软件在目标系统上成功执行,不被安全工具识别和阻止。这通常是恶意软件开发者的工作。
(3)免杀的基本方法有哪些?
-
代码混淆:通过对恶意代码的结构进行修改,使其特征不易被识别。例如,插入无用代码、重命名变量和函数等。
-
加壳和编码:使用加壳工具通过编码和加密技术改变恶意软件的二进制结构,使其原始特征不可识别。
-
多态技术:每一次生成恶意代码的变种,自动修改代码结构和特征。
4.2实验感悟
在这次实验中,我深入探索了如何使用多种技术来实现恶意代码的免杀,在对不同恶意代码进行检测后,直观地看到了不同技术对于免杀的效果,并对这些技术有了更深入的理解和实践。
在实验过程中,我发现免杀技术的核心在于避开杀毒软件的特征码检测和行为分析。通过使用多层次的加密与混淆手段,例如编码器转换格式和自定义shellcode,能够有效提高免杀效果。同时,使用Veil等工具提供的加壳技术,进一步对恶意代码进行伪装,从而提升其对杀软检测的抵抗力。
这次实验不仅提高了我对攻击技术的理解,还让我对如何增强防御有了反思和更深刻的认识。网络安全攻防更是一个两面技术不断变化进步的过程。