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
DllNotificationInjection — Una PoC de una nueva técnica de inyección de procesos “sin hilos” que funciona utilizando el concepto de DLL Notification Callbacks en procesos locales y remotos. | Kitploit
Herramientas/GitHubGitHub/dec0ne/dllnotificationinjection
ExplotaciónShellcodeRed Teaming
GitHubdec0ne/dllnotificationinjection

DllNotificationInjection

Una PoC de una nueva técnica de inyección de procesos “sin hilos” que funciona utilizando el concepto de DLL Notification Callbacks en procesos locales y remotos.

Ver Repositorio

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 →
471839hace 3 añosRevisado por Kitploit
Compartir

DllNotificationInjection

image image

Principales Contribuyentes

Dec0ne

Descripción

DllNotificationInjection es una POC de una nueva técnica de inyección de procesos "sin hilos" que funciona utilizando el concepto de Callbacks de Notificación de DLL en procesos locales y remotos.

Una publicación de blog complementaria con más detalles está disponible aquí:

https://shorsec.io/blog/dll-notification-injection/

¿Cómo Funciona?

DllNotificationInjection funciona creando una nueva LDR_DLL_NOTIFICATION_ENTRY en el proceso remoto. La inserta manualmente en la LdrpDllNotificationList remota parcheando el List.Flink del encabezado de la lista y el List.Blink de la primera entrada (ahora segunda) de la lista.

Nuestra nueva LDR_DLL_NOTIFICATION_ENTRY apuntará a un shellcode trampolín personalizado (construido con el proyecto ShellcodeTemplate de @C5pider) que restaurará nuestros cambios y ejecutará un shellcode malicioso en un nuevo hilo usando TpWorkCallback.

Después de registrar manualmente nuestra nueva entrada en el proceso remoto, solo necesitamos esperar a que el proceso remoto active nuestro Callback de Notificación de DLL cargando o descargando alguna DLL. Obviamente esto no ocurre regularmente en todos los procesos, por lo que se requiere trabajo previo para encontrar candidatos adecuados para esta técnica de inyección. De mi breve búsqueda, parece que RuntimeBroker.exe y explorer.exe son candidatos adecuados para esto, aunque te animo a encontrar otros también.

Notas de OPSEC

Esto es una POC. Para que sea seguro desde el punto de vista de OPSEC y evite productos AV/EDR, se necesitan algunas modificaciones. Por ejemplo, usé RWX al asignar memoria para los shellcodes — no seas perezoso (como yo) y cámbialos. También se podría reemplazar OpenProcess, ReadProcessMemory y WriteProcessMemory con algunas API de nivel inferior y usar Indirect Syscalls o (autobombo descarado) HWSyscalls. Quizás cifrar los shellcodes o incluso ir más allá y modificar el shellcode trampolín para adaptarlo a tus necesidades, o al menos cambiar los valores hash predeterminados en el proyecto ShellcodeTemplate de @C5pider que se utilizó para crear el shellcode trampolín.

Demostración

https://github.com/ShorSec/DllNotificationInjection/assets/54464773/96a72dd9-80de-4cb8-ac4a-54dddfecf822

Agradecimientos

  • @C5pider por su proyecto ShellcodeTemplate que se utilizó para crear el shellcode trampolín. También, por Havoc C2 que se usó en el video de demostración de la POC.
  • Yxel y @Idov31 por el código de coincidencia de patrones binarios que usamos de Cronos.
  • @modexpblog por las definiciones de varias estructuras relacionadas con los Callbacks de Notificación de DLL que se utilizaron en esta POC.
  • @NinjaParanoid por su publicación de blog sobre TpWorkCallbacks que se utilizaron en esta POC.
  • @onlymalware por su POC UnregisterAllLdrRegisterDllNotification, me dio algo de inspiración y me ayudó a entender algunos de los funcionamientos internos de la LdrpDllNotificationList.
  • Sektor7 por el shellcode de la calculadora usado en esta POC. Son increíbles de todas formas y ¡recomiendo encarecidamente sus cursos!
  • @x86matthew y @Kharosx0 por sus comentarios (1, 2) sobre la función GetNtdllBase().
Descargar herramienta