Supernova: shellcode encryption tool

Supernova

Supernova is an open-source tool that empowers users to securely encrypt and/or obfuscate their raw shellcode.Supernova supports various features beyond those typically found in a common shellcode encryptor tool.

Features

Supernova offers automatic conversion of the encrypted shellcode into formats compatible with various programming languages, including:

  • C
  • C#
  • Rust
  • Nim
  • Golang (Community request by @_atsika)
  • Python
  • Perl
  • PowerShell
  • VBA (Implemented by @verydamptowel)
  • Java
  • Ruby
  • Raw (Implemented by @y2qaq)

Supports a variety of different ciphers, including:

  • ROT
  • XOR
  • RC4
  • AES (AES-128-CBC, AES-192-CBC, AES-256-CBC)
  • Chacha20 (Implemented by @y2qaq)

Supports various obfuscation techniques, which make the malicious shellcode appear as if it were:

Supernova is written in Golang, a cross-platform language, making it compatible with Windows, Linux, and macOS.

About Dynamic Variable Name

A dynamic variable name is employed to insert the desired variable name for the shellcode payload. This approach imparts dynamism to the output code by incorporating variables, thereby enhancing the code’s copy-and-paste utility.

Use a dynamic variable name with a -v switch and provide your preferred value.

The default value of the dynamic variable name is shellcode.

Dynamic Variable Name Example

Here is a simple example demonstrating how the dynamic variable name operates.

An attacker uses XOR encryption and utilizes the C# language option in conjunction with the variable setting as value nickvourd :

.\Supernova.exe -i C:\Users\User\Desktop\shellcode.bin -enc xor -lang csharp -k 2 -v nickvourd

 

About Debug

The debug mode is useful if you want to observe the original payload in a selected programming language. To activate this functionality, you need to include the -d option.

Debug Example

Here is a simple example illustrating the functioning of the debug option.

An adversary uses ROT encryption and utilizes the C# language option in conjunction with the debug option:

.\Supernova.exe -i C:\Users\User\Desktop\shellcode.bin -enc rot -lang csharp -k 2 -d

About Output File

The output option is indicated by the -o switch, followed by the desired value, allowing you to save the encrypted payload into a file.

Output File Example

Here is a simple example illustrating the functioning of the output option.

An attacker uses RC4 encryption and utilizes the C language option in conjunction with the output option and a desired filename:

.\Supernova.exe -i C:\Users\User\Desktop\shellcode.bin -enc rc4 -lang c -k 3 -o shellcode.bin

Install

Copyright (c) 2023 Nikos Vourdas