Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
inject-assembly — .NET-Assemblys in einen bestehenden Prozess injizieren | Kitploit
Tools/GitHubGitHub/kyleavery/inject-assembly
ExploitationShellcodePost-ExploitationRed Teaming
GitHubkyleavery/inject-assembly

inject-assembly

.NET-Assemblys in einen bestehenden Prozess injizieren

Repository anzeigen
508744vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

inject-assembly – .NET in einem bestehenden Prozess ausführen

Dieses Tool ist eine Alternative zur traditionellen Fork-and-Run-Ausführung für Cobalt Strike. Der Loader kann in jeden Prozess injiziert werden, einschließlich des aktuellen Beacons. Langlaufende Assemblies werden weiter ausgeführt und senden die Ausgabe zurück an den Beacon, ähnlich wie das Verhalten von execute-assembly.

Es gibt zwei Komponenten von inject-assembly:

  1. BOF-Initialisierer: Ein kleines Programm, das dafür verantwortlich ist, den Assembly-Loader mit allen übergebenen Argumenten in einen entfernten Prozess zu injizieren. Es verwendet BeaconInjectProcess, um die Injektion durchzuführen, was bedeutet, dass dieses Verhalten in einem Malleable-C2-Profil oder mit Prozessinjektions-BOFs (ab Version 4.5) angepasst werden kann.

  2. PIC-Assembly-Loader: Der Hauptteil des Projekts. Der Loader initialisiert die .NET-Laufzeit, lädt die bereitgestellte Assembly und führt sie aus. Der Loader erstellt eine neue AppDomain im Zielprozess, sodass die geladene Assembly nach Abschluss der Ausführung vollständig entladen werden kann.

Die Kommunikation zwischen dem entfernten Prozess und dem Beacon erfolgt über eine Named Pipe. Das Aggressor-Skript generiert einen Pipe-Namen und übergibt ihn dann an den BOF-Initialisierer.

Besondere Merkmale

  • Patches Environment.Exit(), um zu verhindern, dass der entfernte Prozess beendet wird.
  • .NET-Assembly-Header-Stomping (MZ-Bytes, e_lfanew, DOS-Header, Rich Text, PE-Header).
  • Zufällige Pipe-Namensgenerierung basierend auf SourcePoint.
  • Keine Blockierung des Beacons, selbst wenn die Assembly in den aktuellen Prozess geladen wird.

Verwendung

Tool herunterladen

Download und lade das Aggressor-Skript inject-assembly.cna in Cobalt Strike. Danach kannst du Assemblies mit dem folgenden Befehl ausführen:

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

Gib 0 als PID an, um die Assembly im aktuellen Beacon-Prozess auszuführen.

Es wird empfohlen, ein weiteres Tool wie FindObjects-BOF zu verwenden, um einen Prozess zu finden, der bereits die .NET-Laufzeit lädt. Dies ist jedoch keine Voraussetzung für die Funktion von inject-assembly.

Warnungen

  • Unterstützt derzeit nur x64 entfernte Prozesse.
  • Es gibt mehrere Prüfungen im Programm, um die Wahrscheinlichkeit eines Absturzes des entfernten Prozesses zu verringern, aber es kann dennoch passieren.
  • Die standardmäßige Cobalt-Strike-Prozessinjektion könnte dich auffliegen lassen. Erwäge eine benutzerdefinierte Injektions-BOF oder einen UDRL-IAT-Hook.
  • Einige Assemblies verlassen sich auf Environment.Exit(), um die Ausführung zu beenden. Dies verhindert die Bereinigungsphase des Loaders, aber du kannst die Named Pipe dennoch mit jobkill trennen.
  • Kommentiere die Zeilen 3 oder 4 in scmain.c aus, um den Fehler- bzw. ausführlichen Modus zu aktivieren. Diese sind standardmäßig deaktiviert, um die Shellcode-Größe zu reduzieren.

Referenzen

Dieses Projekt wäre ohne die folgenden Projekte nicht möglich gewesen:

  • CLR-bezogene Definitionen und Implementierung – https://github.com/TheWover/donut
  • Beacon-Job-Schnittstelle und Projektstruktur – https://github.com/SecIdiot/netntlm

Weitere Funktionen und Inspiration wurden aus den folgenden Ressourcen übernommen:

  • 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