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
TrollDump — Inyecta DLL administradas x64 en procesos GUI mediante SetWindowsHook, con un ejecutor modular de payloads en C# y un PoC de volcado de LSASS para pruebas ofensivas/red team en Windows. | Kitploit
Herramientas/GitHubGitHub/cybersectroll/trolldump
Escalada de PrivilegiosPost-ExplotaciónRed TeamingDesarrollo de Payloads
GitHubcybersectroll/trolldump

TrollDump

Inyecta DLL administradas x64 en procesos GUI mediante SetWindowsHook, con un ejecutor modular de payloads en C# y un PoC de volcado de LSASS para pruebas ofensivas/red team en Windows.

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

TrollDump

  • Inyecta DLL administrada x64 en procesos administrados/no administrados x64 (el proceso debe tener GUI porque obtenemos su manejador de ventana) usando SetWindowsHook
  • Aquí, como TROLL, inyectamos en la ventana oculta de taskmgr para hacer un volcado de lsass no detectado (ver sección Caso de prueba abajo)
  • La DLL inyectora y la DLL inyectada son la misma DLL, por lo que no se requiere DLL adicional
  • El nivel de integridad del proceso objetivo debe ser igual o inferior al del proceso inyector

Créditos (actualización/reescritura del proyecto)

Proyecto original: https://github.com/enkomio/ManagedInjector

  • código adaptado para inyectar en binarios de 64 bits ---> el proyecto original solo permite inyección de DLL en binarios de 32 bits
  • se eliminó la lógica IPC porque era abrumadora
  • se creó código repetitivo para ejecutar tu payload directamente en la función RunOnRemoteProcess() en lugar de la forma complicada anterior
  • el proyecto sigue usando DLLExport para que una DLL .NET exporte funciones
    • Nota: esto no es una dependencia del proyecto, sino más bien un postprocesamiento. DLLExport modificará tu DLL .NET final para exportar una función.
    • Puedes hacer la exportación de funciones manualmente si quieres https://blog.xpnsec.com/rundll32-your-dotnet/

Compilación

  • Descargar el proyecto y compilar la solución como X64, Release
  • No se necesitan dependencias externas

Uso

root@kitploit:~
> Requires High Integrity depending on use case
> [System.Reflection.Assembly]::LoadFrom("C:\Users\public\TrollDump.dll")
> [TrollDump.ForFun]::Main("C:\windows\system32\taskmgr.exe")
  • En esta POC, hacemos un volcado de lsass; puedes ejecutar cualquier "lógica de función exportada por DLL" que quieras modificando la función RunOnRemoteProcess() y recompilando.
  • Como se mencionó antes, el código sirve como plantilla para la inyección de DLL; lo que elijas hacer después se puede escribir convenientemente en código administrado de C#.

Caso de prueba

  • Win 2019 build 17763.737 con los últimos parches de Windefender
    • tanto inyección de DLL como volcado de lsass
  • Otros AV (sin nombre)
    • la inyección de DLL funciona bien
    • obviamente, si el volcado de lsass funciona o no depende de si el AV permite que taskmgr vuelque lsass
  • No probado en ningún EDR -> sospecho que la inyección de DLL debería seguir funcionando en EDR específicos

OPSEC

  • La DLL necesita estar en disco, por lo que debería estar ofuscada
  • La DLL solo debe usarse para hacer la inyección; el payload real nunca debe estar incrustado en la DLL y debe cargarse de forma reflectiva
  • Obviamente, inyectar CLR en un proceso no administrado es sospechoso, ¡pero oye!
  • SetWindowsHook, aunque es una técnica clásica, casi siempre se asocia con keylogging, no con nuestro caso de uso
  • Puedes ser muy creativo con el proceso GUI que quieras inyectar (si se ejecuta como sistema, también puedes inyectar en dwm.exe)

Lista de deseos: el proyecto se hizo durante el fin de semana y no tengo tiempo/intención de perseguir lo siguiente:

  • Inyectar en procesos sin GUI
    • actualmente para SetWindowsHook usa WH_CALLWNDPROC; puedes modificarlo para usar WH_GETMESSAGE, pero el proceso objetivo debe estar ejecutando un bucle de mensajes (GetMessage())
    • si puedes encontrar un binario sin GUI que implemente un bucle de mensajes (sospecho que es poco probable), entonces también puedes inyectar en binarios sin GUI
    • es común que los procesos GUI ejecuten GetMessage()
  • Totalmente reflectivo y sin necesidad de soltarlo en disco
    • Basado en SetWindowsHook, parece que la DLL debe estar en disco
    • Intenté usar delegados de C# para pasar un puntero a función que se ejecutara en lugar de la función exportada de la DLL y eso no funcionó (esta es la técnica clásica de keylogger en C# para procesos locales, pero estamos haciendo proceso remoto)
    • puedes intentarlo incorporando otras técnicas, creo que es factible
  • Taskmgr se generará automáticamente como Alta Integridad incluso si nuestro proceso actual es Medio (así que técnicamente si inyectamos DLL en él, es un bypass de UAC)
    • La inyección parece funcionar bien según los resultados de retorno de la API de Windows
      • aunque sendMessage() tiene éxito, el mensaje se descarta silenciosamente. Explicado aquí https://stackoverflow.com/questions/40122964/cross-process-postmessage-uipi-restrictions-and-uiaccess-true
    • Sin embargo, taskmgr no llama a la función exportada

Descargo de responsabilidad

¡Solo debe usarse con fines educativos!

Descargar herramienta