20202431 《网络与系统攻防技术》实验三 实验报告

lzr15109001810 2023-06-06 13:42:39

目录

  • 1 实验内容
  • 1.1 实践目标
  • 1.2 基础知识
  • 2 实验过程
  • 2.1 利用msf编码器
  • 2.5 通过组合应用各种技术实现恶意代码免杀
  • 2.5.1 C+shellcode
  • 2.5.2 C+shellcode+异或

1 实验内容

1.1 实践目标

根据要求,我们通过本次实验,需要掌握免杀原理与技术。包括,正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧、通过组合应用各种技术实现恶意代码免杀等。

1.2 基础知识

下面,回答以下几个问题。
(1)杀软是如何检测出恶意代码的?
主要有以下三种方式:
一是利用检测特征码。杀软利用自己的特征库,检索程序代码是否和库中特征码吻合,从而判断某段代码是否属于病毒。
二是利用启发式恶意软件检测。如果程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可认定为病毒程序。
三是基于行为检测。如出现恶意行为,则属于恶意代码。
(2)免杀是做什么?
免杀,从字面意思看,就是免除杀软的“杀”了!也就是让恶意软件不被杀毒软件查杀,从而实现自己的目的。
(3)免杀的基本方法有哪些?
基本方法有如下几点:
一是改变特征码。杀软利用检测特征码来检测恶意代码,那免杀就一定可以通过改变特征码来实现了。在不影响程序功能的情况下,依靠分片等方法尝试找出特征码区域,并对该区域代码进行编码即可。
二是加花。乱花渐欲迷人眼,我们加一下花里胡哨的东西迷惑杀软,让它找不到特征码,就实现了。
三是加壳。就是给含有恶意代码的程序加一个外包装,使其无法进行逆向比对病毒库中的特征码。
等等。

2 实验过程

2.1 利用msf编码器

我们尝试用不同编码次数、不同输出格式进行检测。
#### 2.1.1 不同编码次数
使用x86/shikata_ga_nai作为编码器,设置不同的编码次数进行多次迭代,观察免杀效果是否有变化。
2.1.1.1 无编码

img

如图所示,不进行编码,利用virusTotal进行测试,检测免杀效果。

img

2.1.1.2 一次编码

如图所示,进行1次编码,利用virusTotal进行测试,检测免杀效果。

img

img

2.1.1.3 二十四次编码
分别设置了24次编码、45次编码。

如图所示,进行24次编码,利用virusTotal进行测试,检测免杀效果。

img

img

2.1.1.4 四十五次编码

如图所示,进行45次编码,利用virusTotal进行测试,检测免杀效果。

img

img

img

根据我的观察,并没有发现多次编码与免杀效果有什么必然关系,数值基本都偏大。
#### 2.1.2 不同输出格式
payload的命名由“操作系统/运行方式+控制方式+模块具体名称”共同组合而成。我尝试选择不同运行方式下的payload,通过检出率观察免杀效果是否有变化。
如图所示,构造了jar文件、php文件、py文件、apk文件。

img

利用virusTotal判断,免杀效果如下:
jar:

img

php:

img

py:

img

apk:

img

这里数据差距就比较大了,可见payload对免杀的效果有影响。依据我的判断,py的免杀效果相对最好,php文件和apk文件差不多,最差的是jar文件。
### 2.2 Veil-Evasion
首先,安装Veil-Evasion工具,这应该是这步骤中最复杂的部分了。根据网上链接的指导,我疯狂安装,来回来去安装了五次才成功,出现了许多未知错误,还要感谢王老师的指导,我在他的办公室安装成功了,哈哈。这点在问题及解决方案中阐述。
我们进入veil工具,使用evasion模块,构造c/meterpreter/rev_tcp.py和python/meterpreter/rev_tcp.py两个payload,并利用virusTotal进行免杀效果测试。
以下是py文件:

img

以下是c文件:

img

由此可见,也没什么太大的区别。二者的免杀效果都欠佳。
### 2.3 加壳
#### 2.3.1 压缩壳
我们利用upx,给文件进行压缩,并利用virusTotal进行免杀效果测试。

img

看数值,好像有效果,但不多。
#### 2.3.2 加密壳
我们利用Hyperion对文件进行加密,并利用virusTotal进行免杀效果测试。

img

img

img

同样,有效果,但不多。
### 2.4 C + shellcode编程
利用msfvenom生成一个shellcode,然后利用它编写c程序,编译后利用virusTotal进行免杀效果测试。
如图,生成了shellcode。

编写了程序:

img

img

利用virusTotal,这次相较于之前的,免杀效果很不错!

img

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

2.5.1 C+shellcode

把处理后的文件输出为raw格式,再将第一步的输出结果作为输入传递给msfvenom。

img

2.5.2 C+shellcode+异或

异或一次,就类似于一次加密。我们可以把shellcode进行异或,把结果作为新的shellcode,最后再异或回来。
利用该程序对shellcode数组进行异或:

img

得到如下结果:

img

最后编写c程序:

img

编译后的文件经过virusTotal免杀测试,效果还是比较好的。

img

把它放在我的windows主机上,没有被金山毒霸查杀。

但是被windows defender发现了。

由此可见,金山毒霸水平不怎么高。
### 2.5.3 C+shellcode+异或+加密壳
把编译出的文件加一个加密壳。

用virusTotal查一下,反而效果不好了,好离谱。

### 2.5.4 C+shellcode+异或+加密壳+压缩壳
再在之前的基础上加一个压缩壳:

用virusTotal查一下,效果还是不咋好。

### 2.6 用另一电脑实测,在杀软开启的情况下,可运行并回连成功
我用自己的windows主机,作为另一台电脑。这里,我根据马同学的思路进行实验。
在Veil-Evasion中选择cs/shellcode_inject/virtual.py。输入generate,进行参数配置。

img

将其发送到windows主机上,没有被发现。

最后,在kali上开启监听,在windows上点击此文件,实现了在杀软开启的情况下运行并回连,kali主机可以调用windows的命令。

至此,本次实验圆满成功。
## 3.问题及解决方案
问题:安装Veil-Evasion工具的问题。在安装veil-evasion的过程中,我报了七八个错。这时候,我利用apt-get
pdate更新了一下源,然后再将之前的veil卸载,重新安装。但是到了最后一步,还是报各种各样的错,我重新安装了四次,不好使。
解决办法:在老师的帮助和指导下,我解决了最后一个问题:

解决办法就是执行如下命令: /usr/share/veil/config/setup.sh --force --silent,等待过后,得以解决此问题。
此后实验很顺。
## 4.学习感悟、思考等
本次实验是第三次实验了,在本次实验中,我接触了许多免杀工具,实现了恶意代码免杀,最终还实现了在杀软开启的情况下,可运行并回连成功。对此我收益良多

...全文
145 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

93

社区成员

发帖
与我相关
我的任务
社区描述
网络与系统攻防技术课程作业
网络安全系统安全 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧