Tutoriales

Supernova: el kit de herramientas de conversión y cifrado Shellcode definitivo

Supernova es una herramienta de cifrado Shellcode nueva y mejorada creada para los piratas informáticos éticos de hoy. Supernova está escrito en Golang y está disponible para Windows y Linux.

Tiene varios cifrados de cifrado como ROT, XOR, RC4 y AES. ¿Qué lo distingue? No es sólo un cifrador; es un cifrador. También cambia el código shell cifrado a un formato utilizable en C, C#, Rust y Nim.

En este artículo, le mostraremos por qué Supernova es la mejor herramienta para el cifrado de código shell seguro, eficiente y flexible al explicarle qué hace Supernova, cómo instalarlo y cómo usarlo.

describir

Supernova es una herramienta Golang de código abierto que permite a los usuarios cifrar de forma segura su código shell sin formato. Además, puede convertir automáticamente shellcode cifrado a formatos compatibles con varios lenguajes de programación, incluidos:

Admite una variedad de cifrados diferentes, que incluyen:

Supernova está escrito en Golang, un lenguaje multiplataforma que se puede utilizar en sistemas Windows y Linux.

agradecimiento especial a mis hermanos @S1ckB0y1337 y @0xvmquien brindó una valiosa ayuda durante la fase de prueba beta de la herramienta.

Supernova fue creada por ❤️ @Nick Ward, Compromiso @IAM y @Papadope9.

Tabla de contenido

Instalar

Para instalar Supernova, ejecute el siguiente comando o use binarios compilados:

go build Supernova.go

Supernova funciona sin instalar dependencias adicionales.

fondo

uso de la línea de comando

Supernova v1.0.0 - Real fucking shellcode encryptor.
Supernova is an open source tool licensed under MIT.
Written with <3 by @nickvourd, @IAMCOMPROMISED and @Papadope9...
Please visit https://github.com/nickvourd/Supernova for more...

Usage of Supernova.exe:
  -d    Enable Debug mode
  -enc string
        Shellcode encryption (i.e., ROT, XOR, RC4, AES)
  -i string
        Path to the raw 64-bit shellcode
  -k int
        Key lenght size for encryption (default 1)
  -lang string
        Programming language to translate the shellcode (i.e., Nim, Rust, C, CSharp)
  -o string
        Name of the output file
  -v string
        Name of dynamic variable (default "shellcode")
  -version
        Show Supernova current version

Acerca de los nombres de variables dinámicas

Utilice nombres de variables dinámicas para insertar nombres de variables requeridos por la carga útil del código shell. Este enfoque anima el código de salida incorporando variables, mejorando así la usabilidad del código para copiar y pegar.

Utilice nombres de variables dinámicas a Alterna y proporciona tu valor preferido.

El valor predeterminado para los nombres de variables dinámicas es shellcode.

Ejemplos de nombres de variables dinámicas

A continuación se muestra un ejemplo sencillo que demuestra cómo funcionan los nombres de variables dinámicas.

El atacante utiliza cifrado XOR y utiliza opciones del lenguaje C# combinadas con configuraciones variables como valores. nickvourd:

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

resultado:

Acerca de la depuración

El modo de depuración es útil si desea observar la carga útil sin procesar en el lenguaje de programación de su elección.Para activar esta función, debe incluir -d opciones.

ejemplo de depuración

Este es un ejemplo sencillo de lo que pueden hacer las opciones de depuración.

El atacante utiliza cifrado ROT y utiliza la opción de lenguaje C# en combinación con la opción de depuración:

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

resultado:

Acerca de los archivos de salida

Las opciones de salida están dadas por -o El interruptor, seguido del valor deseado, le permite guardar la carga útil cifrada en un archivo.

Archivo de salida de ejemplo

El atacante utiliza cifrado RC4 y utiliza la opción de lenguaje C con la opción de salida y el nombre de archivo deseado:

A continuación se muestra un ejemplo sencillo de lo que pueden hacer las opciones de salida.

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

resultado:

cifrado de rotación

Los cifrados ROT, también conocidos como cifrados rotacionales, son una familia de cifrados de sustitución simple en los que las letras del alfabeto se desplazan un número fijo de posiciones.

El término "ROT" suele ir seguido de un número que indica la cantidad de rotación aplicada a la letra. Cada variante del cifrado ROT corresponde a un valor de desplazamiento específico.

Según la clave, cada letra del mensaje de texto plano se reemplaza con una letra que aparece un cierto número de posiciones antes en el alfabeto. El cambio se realiza cíclicamente, de "Z" a "A".

Por ejemplo, usando la tecla Swift 13:

"A" becomes "N"
"B" becomes "O"
...
"N" becomes "A"
"O" becomes "B"
...
"Z" becomes "M"

Para usar Supernova con el cifrado ROT, debe elegir una clave que represente la tecla Shift (lenguaje de programación preferido) y proporcionar el código shell original:

En el ejemplo proporcionado, el idioma preferido es Rust y la clave Swift seleccionada es 7:

.\Supernova.exe -i C:\Users\User\Desktop\shellcode.bin -enc rot -lang rust -k 7

resultado:

cifrado XOR

Un cifrado XOR, también conocido como cifrado OR exclusivo, es una técnica de cifrado básica que opera aplicando una operación XOR (OR exclusivo) entre cada bit del texto sin formato y el bit correspondiente de la clave.

Esto hace que el texto cifrado parezca aleatorio y solo se puede descifrar aplicando XOR nuevamente con la misma clave.

Cada bit del mensaje de texto sin formato se realiza mediante operación XOR con el bit correspondiente de la clave. Si los bits son iguales (ambos 0 o ambos 1), el resultado es 0; si los bits son diferentes, el resultado es 1.

Por ejemplo, dada la clave "10110":

Plaintext "01001" XOR Key "10110" = Ciphertext "11111"

Para usar Supernova con un cifrado XOR, debe elegir una clave que genere una clave de bytes XOR aleatoria, su lenguaje de programación preferido, y proporcionar el código shell original:

En el diagrama dado, el lenguaje de programación preferido es Nim y la clave seleccionada es 4. Esta clave se utilizará para generar una secuencia de cuatro bytes con fines de cifrado:

.\Supernova.exe -i C:\Users\User\Desktop\shellcode.bin -enc xor -lang nim -k 4

resultado:

Cifrado RC4

El cifrado RC4, también conocido como Rivest Cipher 4 o ARC4, es un cifrado de flujo simétrico diseñado por Ron Rivest en 1987.

Es popular por su simplicidad y eficiencia a la hora de generar flujos de bits pseudoaleatorios que pueden utilizarse para cifrar y descifrar.

El cifrado RC4 era originalmente un secreto comercial, pero desde entonces se ha vuelto ampliamente conocido y utilizado para diversas aplicaciones.

El algoritmo RC4 primero inicializa dos matrices: S (estado) y T (temporal). Las claves se utilizan para inicializar estas matrices de acuerdo con un proceso llamado programación de claves. La longitud de la clave puede ser variable, lo que afecta la solidez del cifrado.

PRGA (Algoritmo de generación pseudoaleatorio) genera un flujo de bytes pseudoaleatorios que se utilizan para cifrar o descifrar texto sin formato. El PRGA funciona de la siguiente manera:

  • Las matrices S y T se mezclan según la clave para crear el estado inicial.
  • Para cada byte del flujo de salida, los valores de las matrices S y T se mezclan aún más y se utilizan para generar bytes pseudoaleatorios.
  • Este byte pseudoaleatorio se aplica mediante operación XOR con los bytes de texto sin formato para producir los bytes de texto cifrado (o viceversa para el descifrado).

El flujo pseudoaleatorio generado por el PRGA se denomina flujo clave. El flujo de claves se combina con el texto sin formato mediante una operación XOR para generar el texto cifrado.

Para utilizar Supernova con el cifrado RC4, debe elegir la clave que genera el cifrado aleatorio, su lenguaje de programación preferido y proporcionar el código shell original.

Además, el valor numérico proporcionado en el parámetro "clave" especifica la longitud deseada de la contraseña aleatoria generada:

En el diagrama dado, el lenguaje de programación preferido es CSharp y la clave seleccionada es 9:

.\Supernova.exe -i C:\Users\User\Desktop\shellcode.bin -enc rc4 -lang csharp -k 9

resultado:

Cifrado estándar de cifrado avanzado

El Estándar de cifrado avanzado (AES) es un algoritmo de cifrado simétrico ampliamente adoptado que proporciona una gran seguridad para una variedad de aplicaciones.

El Instituto Nacional de Estándares y Tecnología (NIST) lo estableció como el algoritmo de cifrado estándar en 2001 luego de una carrera para encontrar un reemplazo para el antiguo Estándar de cifrado de datos (DES).

AES es conocido por su eficiencia y sólidas funciones de seguridad, lo que lo convierte en la piedra angular de la criptografía moderna. Supernova utiliza el cifrado AES-256-CBC.

AES-256-CBC

El "AES-256" en el nombre se refiere a la longitud de la clave utilizada en el algoritmo. AES-256 utiliza una clave de cifrado de 256 bits, lo que significa que hay 2^256 combinaciones de claves posibles, lo que hace que sea muy difícil y lento para un atacante forzar la clave y descifrar los datos cifrados sin la clave correcta.

La parte "CBC" del nombre significa Cipher Block Chaining. Este modo de operación mejora la seguridad del cifrado al encadenar bloques de texto plano antes del cifrado.

Cada bloque de texto sin formato se realiza mediante XOR (exclusivamente OR) con el bloque de texto cifrado anterior antes del cifrado, lo que introduce un elemento de aleatoriedad y dependencia entre bloques.

Esto ayuda a evitar que aparezcan patrones en texto sin formato en texto cifrado, agregando una capa adicional de secreto.

Aquí hay una explicación detallada de cómo funciona AES-256-CBC:

  • Vector de inicialización (IV): IV es un valor aleatorio utilizado para inicializar el proceso de cifrado. Garantiza que incluso si el mismo texto sin formato se cifra varias veces con la misma clave, el texto cifrado resultante será diferente debido a la aleatorización introducida por el IV.
  • Divida los datos en fragmentos: Los mensajes de texto sin formato se dividen en bloques de tamaño fijo (normalmente 128 bits o 16 bytes) antes de cifrarse.
  • bloque de enlace: Antes del cifrado, cada bloque de texto sin formato se realiza mediante operación XOR con el último bloque de texto cifrado (o el IV del primer bloque). El encadenamiento ayuda a evitar que aparezcan patrones en el texto cifrado.
  • cifrado: Luego, el bloque XOR se cifra utilizando el algoritmo de cifrado AES-256 y la clave de cifrado proporcionada.

Para utilizar Supernova con cifrado AES-256-CBC, debe elegir su lenguaje de programación preferido y proporcionar el código shell original. Además, la clave generada es un valor aleatorio de 32 bytes y el IV generado es un valor aleatorio de 16 bytes.

En el diagrama dado, el lenguaje de programación preferido es Csharp,

.\Supernova.exe -i C:\Users\User\Desktop\shellcode.bin -enc aes -lang csharp

resultado:

LEER  DLL Hijack SCanner una útil para ayudar con el descubrimiento

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba