2018-2019-2 网络对抗技术 20162329 Exp3 免杀原理与实践
免杀原理与实践
一、基础问题回答
1.杀软是如何检测出恶意代码的?
- 基于特征码的恶意软件检测:简单来说特征码就是一串代码段,只是由于这一串代码段可以表明某个软件或程序具有恶意功能(当然一般正常的程序是不会携带该代码段的),所以被杀软所记录保存在其数据库中(病毒库),每当机器需要运行或安装某程序或软件的时候杀软就会对程序或软件与病毒库中信息进行比对,如果发现特征码段就认定该程序为恶意软件。
 - 启发式恶意软件检测:在安装和运行开始都没有检测出某软件为恶意的,但在该软件提供服务的过程中出现恶意行为(如:连接恶意网站、开放端口、修改系统文件等),杀软就会提醒用户,认为该软件可能是恶意软件。
 - 基于行为的恶意软件检测:在程序运行期间杀软会对程序的行为进行记录,并保存在某个日志文件中,且不定期的检查该日志文件,如果查到有异常行为,就认定该软件可能为恶意软件。
 
2.免杀是做什么?
- 简单来说免杀就是使用各种特殊手段改变程序的基本状态,使得一个原本能被杀软检测并杀掉的恶意软件能不被杀软所检测到,以达到渗透的目的。
 
3.免杀的基本方法有哪些?
- 改变特征码:
- 只有可执行文件——加壳处理(压缩壳、加密壳)
 - 有shellcode——使用编码器进行重新编码
 - 有源代码——更换语言重写源码
 
 - 改变行为
- 通讯方式
- 尽量使用反弹式连接
 - 使用隧道技
 - 加密通讯数据
 
 - 操作模式
- 基于内存操作
 - 加入正常功能代码
 
 
 - 通讯方式
 
二、实验内容
1. 正确使用msf编码器
使用msfvenom加基本反弹链接载荷生成exe文件:

使用VirusTotal扫描结果如下:

在原命令中加-e使用编码器加-i对进行多次编码后生成exe文件:

使用VirusTotal扫描结果如下:

2. msfvenom生成如jar之类的其他文件
使用msfvenom生成jar文件:

使用VirusTotal扫描结果如下:

3. veil-evasion安装和使用
Veil-Evasion是用其他语言如c,c#,phython,ruby,go,powershell
等重写了
meterperter
,然后再通过不同方式编译成exe,共性特征比较少,并且在生成可执行文件时还会给出源码。但是kali默认并没有安装该软件需要手动安装一下。
执行
apt-get install veil
就可以安装了,如果不行的话尝试换一下软件源或者更新一下软件源。
安装还是比较漫长的,安装好后输入veil命令进入软件界面

输入use Evasion进入Veil-Evasion

输入list可以看到所有可用模块

我们可以找一找自己想要使用的模块,使用use + 编号就可以选中该模块了,我选中的是7号模块,也就是Windows反弹链接tcp的模块,模块默认信息如下图:

使用set命令对其进行配置

使用option命令查看配置

使用generate命令准备生成文件,输入输出文件名

在如图所示目录中找到exe文件并上传检测如下图:

4. 加壳工具
使用upx给原程序添加压缩壳

检测如下:

使用Hyperion加密壳工具加壳
注:该程序需要将待加壳可执行文件拷贝到该程序目录中即
/usr/share/windows-binaries/hyperion/
再执行wine hyperion.exe -v XXX.exe XXX.exe才可执行
结果如下:


5. 使用shellcode编程
使用msfvenom生成反弹链接模块的c语言代码如下:

然后使用vim编辑器,编写C语言代码
# include <stdio.h>
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();
}
使用交叉编译工具生成可执行文件并检测:


6.总结
下图是我本机的杀软-->腾讯电脑管家检测结果,我把检测到病毒的都信任了

所以说腾讯电脑管家还是不太行。
三、异主机实测
我把在我的主机上未检测出威胁的程序拷贝给实验室的另外一个同学,让他帮忙测试———很不幸,被他的360成功截获:

我让他在杀软中对该软件添加信任,然后实测回连——成功:

可是当我想要再获取他的其他信息,比如摄像头,最高权限时他的360都会发出警告。
四、总结与体会
本实验通过让我们了解杀软的运作过程,让我们实践去做出可以防止杀软查杀的木马程序,这让我们知道了,杀软是不可能完全保护我们的电脑的,所以还是要注意上网安全,不随意下载未知软件。
2018-2019-2 网络对抗技术 20162329 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.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
 
随机推荐
- torchvision 作用
			
1. 提供主流的model,和常用数据集 2. 对 torch.utils.data.Dataset进行扩充,针对不同类别图像放入不同文件夹的数据进行读取, torchvision.datasets. ...
 - js分享功能(微信,QQ,微博,空间,豆瓣等)
			
日常编程中,我们可能会碰到项目中的分享功能,各大平台都有分享接口和文档说明,当然也有一些一键分享插件,例如:sosh,iShare.js等等 但有些同学不想引用插件,那么我整理了一些常用的分享至平台功 ...
 - go  [第一篇]初识
			
[第一篇] 简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发 ...
 - 关于SVN报错 svn: E170013 E125006: contains invalid filesystem format option 'addressing logical'
			
在使用svn的时候,遇到了这样的一个问题 首先我使用TortoiseSVN 右键创建的repository. 之后用IDEA,配置了1.9.4版本的SVN,去commit访问这个仓库 结果出现了以下的 ...
 - Scanner输入数字时个位十位百位千位单独取出。
			
Scanner inn = new Scanner(System.in); int i = inn.nextInt(); System.out.println("个位是"+i%10 ...
 - renren-fast
			
一开始不成功的,多半是粗心或者对这个框架不熟悉造成的. //=============== 代码生成器中这个要填好 我用了默认,但是我把它放到了 renren-fast\src\main\java\i ...
 - Python爬虫之selenium各种注意报错
			
刚刚写完第一个selenuim+BeautifulSoup实战爬虫 爬淘宝.发现代码写完后不加for 翻页的时候没什么问题 解析 操作 都没问题 也就是说第一页 的内容 完好 pagebtn=wait ...
 - Unsafe 的简单使用
			
Unsafe 简介 Unsafe 是sun.misc包中的一个类,可以通过内存偏移量操作类变量/成员变量 Unsafe 用途 AQS(AbstractQueuedSynchronizer) 常用作实现 ...
 - python封装configparser模块获取conf.ini值
			
configparser模块是python自带的从文件中获取固定格式参数的模块,因为是python只带的,大家用的应该很多,我觉得这个参数模块比较灵活,添加参数.修改参数.读取参数等都有对应的参数供用 ...
 - Codeforces Round #352 (Div. 2) (A-D)
			
672A Summer Camp 题意: 1-n数字连成一个字符串, 给定n , 输出字符串的第n个字符.n 很小, 可以直接暴力. Code: #include <bits/stdc++.h& ...