Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
DbgNexum — Inyección de shellcode mediante la API de depuración de Windows | Kitploit
Herramientas/GitHubGitHub/dis0rder0x00/dbgnexum
Generación de PayloadsExplotaciónShellcodePost-ExplotaciónPruebas de PenetraciónRed TeamingGeneración de ShellcodeDesarrollo de PayloadsExplotación de Binarios
GitHubdis0rder0x00/dbgnexum

DbgNexum

Inyección de shellcode mediante la API de depuración de Windows

18339hace 7 mesesRevisado 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 →
Compartir
Ver Repositorio

DbgNexum - Inyección de Shellcode

DbgNexum es una prueba de concepto (PoC) para inyectar shellcode mediante la API de depuración de Windows y memoria compartida (File Mapping). Evita escribir y leer memoria remota directamente; en su lugar, utiliza la manipulación del contexto para forzar al proceso objetivo a cargar y ejecutar el payload por sí mismo.

Descripción general

El inyector se adjunta a un proceso objetivo y crea un hilo suspendido. A través de un bucle de depuración, establece un punto de interrupción de hardware (Hardware Breakpoint) para atrapar la ejecución en una dirección de retorno específica. En cada trampa, el inyector modifica los registros de la CPU para simular llamadas a funciones, orquestando una secuencia de llamadas a funciones de la API de Windows dentro del proceso objetivo.

Al momento de escribir este README, probé la técnica contra MDE y Elastic, y ninguno de los dos la detectó.

Características principales

  • Sin WriteProcessMemory / VirtualAllocEx: el payload se transfiere mediante CreateFileMapping y MapViewOfFile.
  • Sin ReadProcessMemory: el enfoque obtiene toda la información clave del contexto del hilo.

Uso

El PoC utiliza un shellcode de msfvenom con XOR que ejecuta "calc.exe". ¡Pero usa tu propio shellcode!

  1. Incluye tu shellcode (y la clave XOR) en shellcode.h
  2. Encuentra el ID de proceso (PID) del objetivo.
  3. Ejecuta el inyector:
root@kitploit:~
DbgNexum.exe <PID>

Ejemplo de salida:

root@kitploit:~
[i] Section 'MZ' created and shellcode copied
[+] Bait thread created. Setting HWBP on FileTimeToSystemTime
[i] Execution Redirected:
|-> [0] Preparation & anchoring stack
|-> [1] Setting HWBP & buffer alloc
|-> [2] Copying File-Mapping name
|-> [3] Zeroing stack slot
|-> [4] Opening handle to named file mapping
|-> [5] Mapping payload into mem. with exec. perm.
|-> [6] Cleanup & shellcode execution
[+] Successfully detached from process 19256
[i] Orchestration complete.

Cómo funciona

El flujo de ejecución es un constante ir y venir entre el bucle de depuración del inyector y el proceso objetivo.

Etapas de inyección

La función DebugLoop contiene la lógica principal de inyección y orquesta la "máquina de estados":

0. Preparación:

  • El inyector guarda el puntero de pila actual para reutilizarlo en cada etapa.
  • Para obtener la dirección de retorno de la pila anclada, establecemos un flag de trampa (trap flag) y dirigimos la ejecución a una llamada ret instantánea.

1. Asignación:

  • Establece un HWBP en la dirección de retorno de la pila anclada para recibir una notificación cuando una función llamada retorne.
  • Prepara y fuerza al hilo a llamar a LocalAlloc para (obviamente) asignar un pequeño búfer.

2. Preparación de datos:

  • Prepara y fuerza al hilo a llamar a memcpy para copiar la cadena MZ en el búfer asignado previamente.

3. Preparación de la pila:

  • Fuerza al hilo a llamar a memset para poner a cero una ranura de la pila. Esto es en preparación de la etapa 5, que llamará a MapViewOfFile. Dado que la función usará más de 4 argumentos, el quinto argumento se pasa mediante la pila (que establecemos aquí).

4. Abrir la asignación:

  • Fuerza al hilo a llamar a OpenFileMappingA usando el nombre MZ, "creado" en las etapas 2 y 3.

5. Mapear el payload:

  • Fuerza al objetivo a llamar a MapViewOfFile. Esto mapea la sección de memoria compartida (que contiene el shellcode) en el espacio de direcciones del objetivo con permisos EXECUTE.

6. Ejecución:

  • Redirige RIP a la dirección devuelta por MapViewOfFile.
  • Limpia los registros de depuración y se desvincula.
Descargar herramienta