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
inject-assembly — Inyectar ensamblados de .NET en un proceso existente | Kitploit
Herramientas/GitHubGitHub/kyleavery/inject-assembly
ExplotaciónShellcodePost-ExplotaciónRed Teaming
GitHubkyleavery/inject-assembly

inject-assembly

Inyectar ensamblados de .NET en un proceso existente

Ver Repositorio
50874hace 4 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

inject-assembly - Ejecutar .NET en un Proceso Existente

Esta herramienta es una alternativa a la ejecución tradicional fork and run para Cobalt Strike. El cargador puede ser inyectado en cualquier proceso, incluido el Beacon actual. Los ensamblados de larga duración continuarán ejecutándose y enviando la salida de vuelta al Beacon, de manera similar al comportamiento de execute-assembly.

Hay dos componentes de inject-assembly:

  1. Inicializador BOF: Un programa pequeño encargado de inyectar el cargador de ensamblados en un proceso remoto con los argumentos proporcionados. Utiliza BeaconInjectProcess para realizar la inyección, lo que significa que este comportamiento puede personalizarse en un perfil Malleable C2 o con BOFs de inyección de procesos (a partir de la versión 4.5).

  2. Cargador de ensamblados PIC: La mayor parte del proyecto. El cargador inicializará el runtime de .NET, cargará el ensamblado proporcionado y lo ejecutará. El cargador creará un nuevo AppDomain en el proceso destino para que el ensamblado cargado pueda descargarse por completo cuando la ejecución termine.

La comunicación entre el proceso remoto y el Beacon ocurre a través de una tubería con nombre (named pipe). El script Aggressor genera un nombre de tubería y lo pasa al inicializador BOF.

Características Notables

  • Parchea Environment.Exit() para evitar que el proceso remoto termine.
  • Sobrescritura de cabecera del ensamblado .NET (bytes MZ, e_lfanew, DOS Header, Rich Text, PE Header).
  • Generación de nombres de tubería aleatorios basada en SourcePoint.
  • No bloquea el Beacon, incluso si el ensamblado se carga en el proceso actual.

Uso

Descargue y cargue el script Aggressor inject-assembly.cna en Cobalt Strike. Luego puede ejecutar ensamblados usando el siguiente comando:

root@kitploit:~
inject-assembly pid assembly [args...]

Especifique 0 como PID para ejecutar en el proceso Beacon actual.

Se recomienda usar otra herramienta, como FindObjects-BOF, para localizar un proceso que ya cargue el runtime de .NET, aunque esto no es un requisito para que inject-assembly funcione.

Advertencias

  • Actualmente solo soporta procesos remotos x64.
  • Hay varias comprobaciones a lo largo del programa para reducir la probabilidad de bloquear el proceso remoto, pero aún así podría ocurrir.
  • La inyección de procesos predeterminada de Cobalt Strike puede delatarle. Considere usar un BOF de inyección personalizado o un hook IAT de UDRL.
  • Algunos ensamblados dependen de Environment.Exit() para finalizar la ejecución. Esto impedirá que ocurra la fase de limpieza del cargador, pero aún puede desconectar la tubería con nombre usando jobkill.
  • Descomente las líneas 3 o 4 de scmain.c para habilitar los modos de error o verbose, respectivamente. Están deshabilitados por defecto para reducir el tamaño del shellcode.

Referencias

Este proyecto no habría sido posible sin los siguientes proyectos:

  • Definiciones e implementación relacionadas con CLR - https://github.com/TheWover/donut
  • Interfaz de trabajos de Beacon y estructura del proyecto - https://github.com/SecIdiot/netntlm

Otras características e inspiración se tomaron de los siguientes recursos:

  • https://github.com/med0x2e/ExecuteAssembly
  • https://github.com/anthemtotheego/InlineExecute-Assembly
  • https://www.mdsec.co.uk/2020/08/massaging-your-clr-preventing-environment-exit-in-in-process-net-assemblies
Descargar herramienta