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.学习感悟、思考等
本次实验是第三次实验了,在本次实验中,我接触了许多免杀工具,实现了恶意代码免杀,最终还实现了在杀软开启的情况下,可运行并回连成功。对此我收益良多

...全文
490 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
源码下载地址: https://pan.quark.cn/s/8d2c461c797c JavaWeb程序设计构成了掌握Web交互式应用程序开发的核心领域,对于初学者来说,精通这一技术具有决定性意义。在“JavaWeb程序设计(第三版)作业答案”中,我们可以预期获得针对该教材习题的一系列深入解析,从而协助学习者强化知识体系。 JavaWeb所包含的技术组件涵盖了Servlet、JSP(JavaServer Pages)、JDBC(Java Database Connectivity)以及各类框架如Spring MVC、Struts等。Servlet是Java平台提供的一种扩展服务器功能的接口,能够处理HTTP请求并生成相应的反馈。JSP则是一种用于构建动态网页的工具,它支持开发者将HTML代码与Java代码进行整合编写,从而简化了Web应用程序的开发流程。 作业答案通常会涉及以下几个核心内容: 1. **Servlet基础**:可能包含Servlet生命周期、init(), service(), destroy()方法的应用,以及如何在web.xml文件中设定Servlet的映射关系。 2. **JSP基础**:JSP的九大内置对象,如request、response、session、application等的使用,以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的实际操作。 3. **HTTP协议理解**:GET和POST请求方法的差异,请求头与响应头的应用,以及会话管理的概念阐释。 4. **JDBC数据库操作**:与数据库建立连接,执行SQL指令,处理查询结果集,以及...
源码链接: https://pan.quark.cn/s/a4b39357ea24 斐讯K2是一款广受用户青睐的无线路由器,其运行表现稳定且具备较高的可操作性,在DIY爱好者群体中拥有极高的声誉。本资料将系统性地阐述斐讯K2的固件刷机方法及其关联的技术要点。固件升级是路由器爱好者改善设备性能、扩展功能的一种普遍手段,经由替换出厂固件,能够达成更加个性化的网络配置、增强安全防护等目标。斐讯K2固件资源库涵盖了多种知名的非官方固件,诸如Tomato Pheonix 不死鸟、高恪、PandoraBox 潘多拉等,这些固件均具备独特的优势,能够适配不同用户的需求。 1. Tomato Pheonix 不死鸟:Tomato是一款立足于Linux的开源固件,以其精巧、高效而备受推崇。不死鸟版本是专门为华硕及斐讯路由器优化的分支,提供了卓越的QoS(服务质量)配置、详尽的图表监控以及便捷的固件升级途径。对于那些需要精准调控带宽和监测网络状态的用户而言,这是一个理想的选项。 2. 高恪:高恪固件是OpenWrt的定制化版本,着重于操作的便捷性和运行的可靠性,特别适合对路由器操作不甚熟悉的用户群体。它提供了一些实用的功能,例如内置的广告屏蔽、快速测速工具等,同时保留了OpenWrt的适应性。 3. PandoraBox 潘多拉:潘多拉盒是另一款基于OpenWrt的固件,它以丰富的插件库和强大的自定义潜力而闻名。用户能够依据个人需求安装各类插件,实现更多功能,如远程接入、DDNS(动态域名解析服务)等。 4. 官方固件的纯净版本与定制版本:官方固件通常更侧重于稳定性,纯净版意味着未预置额外的应用或服务,适合注重稳定性的用户。定制版则可能包含了制造商的特色功能或优...

93

社区成员

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

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