DVenom:一款功能强大的Shellcode加密封装和加载工具

2024-01-05 07:20

本文主要是介绍DVenom:一款功能强大的Shellcode加密封装和加载工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于DVenom

DVenom是一款功能强大的Shellcode加密封装和加载工具,该工具专为红队研究人员设计,可以帮助红队成员通过对Shellcode执行加密封装和加载实现反病毒产品的安全检测绕过。

功能介绍

1、支持绕过某些热门反病毒产品;

2、提供了多种加密方法,包括RC4、AES256、XOR和ROT;

3、可以生成C#、Rust、PowerShell、ASPX和VBA形式的源代码;

4、采用了不同的Shellcode加载技术,其中包括VirtualAlloc、进程注入、NT Section注入、镂空进程注入;

工具要求

1、配置Golang环境;

2、了解Shellcode操作的基础知识;

3、熟悉C#、Rust、PowerShell、ASPX和VBA代码;

工具部署

广大研究人员可以使用下列方式将项目源码拷贝到本地设备中,并在本地设备上部署和使用DVenom。

首先,我们需要使用下列命令将该项目源码克隆至本地:

$ git clone https://github.com/zerx0r/dvenom

然后切换到项目目录中:

$ cd dvenom

使用go build命令完成项目代码构建:

$ go build /cmd/dvenom/

工具使用

安装完成后,我们就可以直接使用下列命令运行DVenom了:

./dvenom -h

命令行参数

-e:指定Shellcode的加密类型,支持的类型有xor、rot、aes256和rc4;-key:提供要使用的加密密钥;-l:指定语言,支持的语言有cs、rs、ps1、aspx和vba;-m:指定方法类型,支持的类型有valloc、pinject、hollow和ntinject;-procname:提供需要注入的进程名称,默认为“explorer”;-scfile:提供shellcode文件的路径地址;

工具使用样例

下列命令可以生成包含加密Shellcode的C#源代码:

./dvenom -e aes256 -key secretKey -l cs -m ntinject -procname explorer -scfile /home/zerx0r/shellcode.bin > ntinject.cs

注意,如果选择了AES256作为加密方法,工具将自动生成初始化向量IV。

工具限制

编程语言

支持的函数方法

支持的加密方法

C#

valloc, pinject, hollow, ntinject

xor, rot, aes256, rc4

Rust

pinject, hollow, ntinject

xor, rot, rc4

PowerShell

valloc, pinject

xor, rot

ASPX

valloc

xor, rot

VBA

valloc

xor, rot

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

DVenom:【GitHub传送门】

这篇关于DVenom:一款功能强大的Shellcode加密封装和加载工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572099

相关文章

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端