Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
execute-assembly-pico — Ein PICO für Crystal Palace, das CLR-Hosting implementiert, um eine .NET-Assembly im Speicher auszuführen. | Kitploit
Tools/GitHubGitHub/ofasgard/execute-assembly-pico
ShellcodePost-ExploitationPenetrationstestsRed TeamingPayload-Entwicklung
GitHubofasgard/execute-assembly-pico

execute-assembly-pico

Ein PICO für Crystal Palace, das CLR-Hosting implementiert, um eine .NET-Assembly im Speicher auszuführen.

Repository anzeigen
1421817vor 8 MonatenVon 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

Execute Assembly PICO

Ein PICO für Crystal Palace, das natives CLR-Hosting implementiert, um eine angehängte .NET-Assembly im Speicher auszuführen – mithilfe derselben Technik wie der donut-Shellcode-Generator. Dadurch kannst du .NET-Tools wie Rubeus oder Seatbelt aus positionsunabhängigem Code laden, ohne sie auf der Festplatte abzulegen.

Ein Screenshot des PICO in Aktion, das eine angehängte Seatbelt-Assembly ausführt

Erstellen

Du benötigst MinGW GCC, das zip-Dienstprogramm und die CPL-Executables, die zum Linken des Projekts benötigt werden. Ändere config.spec, um die .NET-Assembly anzugeben, die du mit dem Projekt linken möchtest, sowie die Befehlszeilenargumente, die du übergeben möchtest. Ändere Makefile, um den Speicherort von crystalpalace.jar anzugeben.

Um das PICO allein (als COFF) zu bauen, führe make pico aus. Um den Beispiel-Runner zu bauen und mit dem PICO zu linken, führe make runner aus.

Der Beispiel-Runner wird nach out/runner.bin geschrieben. Die Standardkonfiguration ruft eine angehängte Rubeus-Assembly auf, um beim Ausführen "asktgt" mit einigen generischen Dummy-Zugangsdaten auszuführen:

Ein Screenshot des PICO in Aktion, das eine angehängte Rubeus-Assembly ausführt

Verwenden des PICO

Die Signatur des Einstiegspunkts des PICO lautet:

HRESULT (*EXECUTE_ASSEMBLY_PICO)(char *assembly, size_t assembly_len, WCHAR *argv[], int argc);

Die ersten beiden Argumente sollten einen Zeiger auf eine rohe .NET-Assembly und deren Größe enthalten. Die zweiten beiden Argumente werden verwendet, um der Assembly Zeichenfolgenparameter zu übergeben, wenn sie aufgerufen wird.

Erfassen der Ausgabe

Dieses PICO ruft die Assembly lediglich mit den von dir bereitgestellten Argumenten auf. Es unternimmt keinen Versuch, die Ausgabe zu erfassen.

Wenn du Eingaben über STDIN bereitstellen oder die Ausgabe von STDOUT erfassen musst, solltest du deinen Loader so ändern, dass er WIN32-API-Aufrufe wie CreatePipe() und SetStdHandle() verwendet und die Standard-I/O-Geräte deines Prozesses mit einer anonymen Pipe verbindet. Danach kannst du wie gewohnt von ihr lesen und in sie schreiben.

Danksagungen

  • Raphael Mudge für Crystal Palace und LibTCG.
  • XPNSec für dieses Gist, das mir geholfen hat, den grundlegenden Ablauf des CLR-Hostings zu verstehen.
  • TheWover für den Donut-Generator/-Loader. Ich habe dessen In-Memory-Assembly-Ausführung ausführlich als Referenz herangezogen und clr.h direkt im PICO verwendet.
Tool herunterladen