20222418 2024-2025-1 《网络与系统攻防技术》实验三实验报告
1.实验内容
实验内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
- veil,加壳工具
- 使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
问题回答
(1)杀软是如何检测出恶意代码的?
一般是基于特征码或者基于行为来检测的,也有启发式恶意软件检测,是一种比较模糊的检测方法,没有特征码检测那么精确。它可以通过分析软件的片面特征(如签名、结构、厂商信息等)以及行为(如是否连接恶意软件、开放端口、修改系统文件等)来推断是否是恶意代码。这种方式优点是能够检测0-day恶意软件,具有一定通用性,但缺点是可能产生误报,且实时监控系统行为会增大开销。
(2)免杀是做什么?
免杀是使病毒木马免于被杀毒软件查杀的技术。
(3)免杀的基本方法有哪些?
主要有改变特征码、改变行为方式、使用免杀工具、加密与混淆等。
2.实验过程
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
1. 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
metasploit中有大量的攻击载荷,而msfvenom就是用于快速创建我们需要的攻击载荷并生成指定平台运行的程序,实际上msfvenom就是攻击载荷(payloads)和编码器(encoders)的组合工具。
(1)用msf不同编码器、编码不同次数生成exe文件
在实验二中已经用msf默认编码器生成过后门exe文件,我们先把上次生成的exe文件用VIirusTotal扫描一下:
真是漏洞百出的后门文件,直接生成的exe文件免杀效果的确很差,那再试试msf其他编码器。
我们先查看msf支持的所有编码器:
输入msfvenom --list encoder
我决定尝试一下这个rank为excellent的编码器shikata_ga_nai
用选中的编码器编码生成exe文件,进行检测:
效果变化不大,看来msf作为经典工具特征都广为人知了。
在option菜单中,我发现可以指定编码次数,指令为-i [-次数]:
于是我尝试增加编码次数,并进行检测,分别编码了18次、50次、120次:
由结果发现查杀概率几乎不改变,增加编码次数的方法是行不通的,只能试试别的方法了。
(2)用msf生成jar文件
检测一下
有所下降,那再试试其他格式。
(3)用msf生成php文件
检测一下
这简直是大幅减小,看来不同格式对查杀概率影响还是蛮大的,继续试试别的。
(4)用msf生成py文件
我最开始沿用了生成exe文件时的excellent编码器,检测后居然显示免杀了?!
这可真奇怪,问了其他同学发现有人也免杀了但有的同学没有,我猜会不会是这个shikata_ga_nai编码器的问题。于是换了默认编码器,果然失败了(当时就抱着试试的心态忘记截图了😥)。
以及其实还尝试了apk之类的格式但没都没有截图保存就不放了。
2. 使用veil,加壳工具
安装veil
这是一个十分漫长且痛苦的过程,出的问题数不胜数,报的错千奇百怪,我尝试了5678记不清多少次才终于成功。由于过程持续时间较长并且截图不全且忘记了很多参考的是什么所以问题分析只写了第一次的错误🤦,这里展示最后成功的步骤。
首先在Linux系统中通过命令行下载Wine Gecko的安装包。Wine是一个开源的兼容层,允许Linux和Unix-like操作系统运行Windows应用程序。Wine Gecko是Wine项目的一部分,它提供了对Gecko引擎的支持,Gecko是Mozilla Firefox浏览器使用的布局引擎,用于显示网页内容。这对于运行依赖Internet Explorer或旧版Firefox功能的Windows应用程序来说非常重要。
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
执行这些命令后,在~/.cache/wine目录下拥有两个.msi文件,分别是32位和64位版本的Wine Gecko 2.47安装包。这些文件可以随后被Wine使用来安装Gecko引擎,以支持那些需要它的Windows应用程序。
然后,使用apt-get 来安装库和程序,个别包的名称有出入,根据报错提示修改命令即可。
sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install gcc-mingw-w64*
sudo apt-get install wine32
sudo apt-get update
完成后安装veilapt-get install veil
然后进入对应文件修改setup.sh的下载地址:
然后执行setup.sh进行安装,成功。
用veil生成后门程序
进入veil,输入use evasion
进入Evil-Evasion
选择载荷,进入配置页面use c/meterpreter/rev_tcp.py
设置主机ip和端口,可以输入options查看配置:
设置好后生成文件,输入generate
,然后输入文件名称2418_veil。
由上图可知文件保存路径:
扫描生成的文件:
使用压缩壳UPX
对上面生成的文件进行加壳upx 2418_veil -o upxed_2418_veil.exe
对加壳文件进行检测:
害,还是很典型的后门文件。
之后我尝试加密壳,也失败了。
3. 使用C + shellcode编程
首先用msf生成一段shellcode:
然后我把这段shellcode插进新建的.c文件中:
编译.c文件:
将编译成的exe文件放入VT扫描:
(2)通过组合应用各种技术实现恶意代码免杀
1. 检查之前文件是否免杀(发现.py文件)
先让查杀软件指定扫描一下之前实验过程中产生的文件:
金山毒霸:
可以发现,使用msf的shikata_ga_nai编码器生成的jar、py、php文件都实现了免杀。
火绒:
这里只有php、py文件实现免杀。
结合之前VT的检查结果,可知这个py文件是基本免杀了的。
这一步用到的杀软:
火绒:
主机:Windows 11, version 23H2
2. 尝试其他方法
我打算尝试了使用evasion的其他载荷:
最先尝试的是第40个:
检测结果:
尝试传输到windows主机时被查杀了:
之后我尝试了第28个载荷,结果和预料差不多,不理想:
最后我尝试了aes加密的py文件(第29):
加密后检测结果果然好了很多:
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
我打算用上一步中成功免杀的py文件尝试,但由于间隔时间太长ip地址已换过几轮,于是决定重新生成一个来实验。
生成并检测:
传入Windows主机也未被查杀,杀毒软件扫描安全。
开始监听:
在主机运行文件,成功!
3.问题及解决方案
问题1:ifconfig找不到虚拟机IP地址。
-
原因:尝试用虚拟机ping主机提示网络不可达,发现是实验室网络太差虚拟机连不上网。
-
解决方案:换自己的热点。
问题2:安装veil失败
请看错误思路:
首先安装git:apt-get -y install git
然后用git克隆一个Veil Evasion:
之后就进入其所在目录,直接尝试执行setup.sh安装,历经长时间沉默后开始疯狂报错😭。
中止安装,按照提示输入apt-get update --fix-missing
仍报错。
这个问题暂时解决不了,我决定先放一下换个方式从头开始。这时我发现万一换个克隆地址就能搞到不出错的呢?于是我根据另一教程修改了下载地址并执行,出现了和上面相同的问题🤧。
因为报错的确说的不太明确不像是操作的教程的问题,而是像少了什么工具或者功能,我想我可能是真的少了很多步骤,于是开始找准备工作更多的教程。
之后就是不停的持续好几天晚上的探索,直到每一天解决了下面两个问题后突然成功了……步骤在正文里。
问题3:虚拟机内存爆满
为了解决问题二,我一路尝试到了最后成功的教程,然后教程前两步需要下载wine安装包,这时它告诉我,空间不够下不了了……我想起刚刚尝试复制一个文件失败了,我勒个豆,一看居然0字节可用了。
- 解决方案:
输入以下命令
apt-get autoclean
//清理旧版本软件缓存
apt-get clean
//清理所有软件缓存
apt-get autoremove
//删除系统不再使用的孤立软件
但这只是稍稍缓解,为了避免电脑罢工,在安装veil后我立刻面临问题4↓
问题4:虚拟机又满了
之前没扩容是因为预感自己正在成功安装veil的路上,不想中途关机,但当时的处理方法治标不治本,现在随时在黑屏的边缘,比如当我想再安装工具:
于是我速速找教程扩容,很顺利。
4.学习感悟、思考等
真是一次战线拉得太长的实验,时间几乎是整整两周。其实第一天就做到了安装veil,此后一周在第二周的周五左右在安装好veil,第二周又是漫长的胡乱尝试的过程……感觉都快习惯每天晚上点开虚拟机随机尝试两种方法😂最后做出来的结果感觉靠谱中带着一点草率。这个实验从头做下来的感觉是自己的计算机确实不太安全,特别是这个火绒还是为了实验新下的,之前只有一个没用也没删的金山毒霸……但根据我在找教程过程中看见的实验数据,金山毒霸时实验的杀软中最没用的一个hh
另外的一个收获就是,给自己的随笔加上了目录和不那么好看的标题框,但资金和绿色都是我的心头好,所以……👉👈