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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
MemFiles — Ein CobaltStrike-Toolkit, um von Beacon erzeugte Dateien in den Speicher statt auf die Festplatte zu schreiben. | Kitploit
Tools/GitHubGitHub/octoberfest7/memfiles
DatenexfiltrationPost-ExploitationCommand and ControlRed Teaming
GitHuboctoberfest7/memfiles

MemFiles

Ein CobaltStrike-Toolkit, um von Beacon erzeugte Dateien in den Speicher statt auf die Festplatte zu schreiben.

Repository anzeigen
4776226vor 2 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

MemFiles

Haftungsausschluss:

Dieses Projekt ist komplex; wenn du nicht verstehst, wie es funktioniert, und es nicht ausreichend testest, kann das dazu führen, dass du Beacons zum Absturz bringst und den Zugriff verlierst!

Ich empfehle dir dringend, die gesamte Dokumentation bis zum Abschnitt „Technische Details, Designüberlegungen und Kommentare“ zu lesen!

Einführung

MemFiles ist ein Toolkit für CobaltStrike, das Operatoren ermöglicht, Dateien, die vom Beacon-Prozess erzeugt werden, in den Speicher zu schreiben, anstatt sie auf der Festplatte des Zielsystems abzulegen. Es wurde erfolgreich auf Windows 7, 10 und 11 getestet; die entsprechenden Serverversionen sollten ohne Probleme funktionieren. MemFiles ist auf x64-Beacons beschränkt.

Dies wird erreicht, indem mehrere verschiedene NtAPIs innerhalb von NTDLL.dll gehookt und Aufrufe an diese APIs auf Funktionen umgeleitet werden, die in den Speicherraum des Beacon-Prozesses injiziert wurden.

MemFiles setzt eine saubere/ungehookte Kopie von NTDLL im Beacon-Prozess voraus. Es wird keine Garantie dafür übernommen, dass MemFiles in einem Beacon-Prozess funktioniert, in dem noch EDR-Hooks vorhanden sind. Repariere/aktualisiere NTDLL, bevor du MemFiles verwendest!

Innerhalb des MemFiles-Toolkits wird ein „spezielles“, nicht vorhandenes Verzeichnis definiert; alle Dateien, die in dieses spezielle Verzeichnis geschrieben werden, werden von MemFiles erfasst und in den Speicher geschrieben, von wo sie anschließend auf den Teamserver heruntergeladen werden können.

MemFiles ist mit den meisten (nicht allen) Tools kompatibel, die innerhalb des Beacon-Prozesses ausgeführt werden und die angewiesen werden können, ihre Ausgabe in ein bestimmtes Verzeichnis zu schreiben. Es sind keine erhöhten Rechte erforderlich.

Dazu gehören:
-BOFs
-.NET-Assemblys, die inline mit etwas wie inline-executeAssembly ausgeführt werden
-PEs, die inline mit etwas wie Inline-Execute-PE ausgeführt werden

Alle diese sind kompatibel, weil sie innerhalb des Beacon-Prozesses ausgeführt werden, in dem die relevanten NtAPIs gehookt wurden.

MemFiles funktioniert NICHT mit Dingen wie:
-execute-assembly
-shell
-run

Keines davon ist kompatibel, weil sie alle andere Prozesse starten, deren NtAPIs NICHT gehookt wurden.

MemFiles wurde erfolgreich mit Tools wie Rubeus, SharpHound, Procdump und Powershell getestet, wenn sie innerhalb des Beacon-Prozesses ausgeführt werden.

Einrichtung

Klon das Repository und ändere optional die Variable hookdir, die in Zeile 56 in /PIC/Source/NtCreateFile.c und /PIC/Source/NtOpenFile.c definiert ist. Diese Variable ist das „spezielle“ Verzeichnis, das MemFiles signalisiert, dass es die erstellte Datei abfangen soll. Die Variable hookdir ist standardmäßig auf „redteam“ gesetzt. Stelle sicher, dass diese Variable kein reales Verzeichnis auf dem Zielsystem ist und dass sie in beiden Dateien identisch ist!

image

Führe 'make all' aus, um sowohl die erforderlichen BOFs als auch die PIC-Funktionen zu kompilieren.

Lade MemFiles.cna in den CobaltStrike-Client. Stelle sicher, dass das Verzeichnis, aus dem CobaltStrike ausgeführt wird, für deinen Benutzer beschreibbar ist; MemFiles erstellt dort eine Textdatei (memfiles.txt), um die Verfügbarkeit der für MemFiles erforderlichen Daten sicherzustellen.

MemFiles kann so konfiguriert werden, dass es in jedem neuen Beacon installiert wird, der sich beim Teamserver meldet; dies wird über den Menüpunkt MemFiles->Config erreicht. Standardmäßig installiert sich MemFiles NICHT automatisch in neuen Beacons. Beachte, dass dies eine globale Einstellung ist; wenn zwei Clients mit dem Teamserver verbunden sind und beide MemFiles.cna geladen haben, wirkt sich das Umschalten der Einstellung „Install on beacon initial“ durch Client A auch auf Client B aus!

image

Befehle

MemFiles besteht aus 4 targetorientierten Befehlen, die BOFs ausführen, und 1 internem Befehl, der die Projektdatenstruktur manipuliert.

Targetorientiert:

  1. meminit
  2. memlist
  3. memfetch
  4. memclean

Interne Datenstruktur:

  1. memtable

meminit

meminit ist dafür verantwortlich, MemFiles im Beacon-Prozess zu installieren.

Die Liste der von MemFiles gehookten NtAPIs lautet wie folgt:

  1. NtCreateFile
  2. NtWriteFile
  3. NtClose
  4. NtQueryVolumeInformationFile
  5. NtQueryInformationFile
  6. NtSetInformationFile
  7. NtOpenFile
  8. NtReadFile
  9. NtFlushBuffersFile

meminit führt die folgenden wichtigsten Aktionen aus:

  1. Sendet eine positionsunabhängige Ersatzfunktion für jede gehookte NtAPI an den Beacon
  2. Erstellt eine Struktur im Beacon-Speicher, um verschiedene Werte zu halten, die MemFiles während seines Lebenszyklus benötigt
  3. Patcht die Adresse dieser Struktur in jede der PIC-Ersatzfunktionen
  4. Allokiert Speicher und injiziert jede PIC-Ersatzfunktion in den Speicher des Beacon-Prozesses
  5. Erstellt für jede gehookte NtAPI einen Trampolin
  6. Hookt jede aufgeführte NtAPI, indem einige/alle Bytes überschrieben werden und die Ausführung auf die PIC-Ersatzfunktion umgeleitet wird.

memlist

memlist wird verwendet, um alle Dateien anzuzeigen, die von MemFiles für einen bestimmten Beacon derzeit im Speicher abgelegt sind.
image
Es werden mehrere Felder angezeigt; für den Benutzer am relevantesten und interessantesten sind der Name der Datei und die Länge der gespeicherten Daten.

memfetch

memfetch wird verwendet, um tatsächlich Dateien abzurufen, die von MemFiles für einen bestimmten Beacon im Speicher abgelegt wurden.

Standardmäßig ruft memfetch alle Dateien ab, die von MemFiles gespeichert wurden und deren „Handle“ geschlossen wurde. Diese Designentscheidung wurde getroffen, um Probleme zu vermeiden, die beim Herunterladen einer Datei auftreten können, die ein Programm/eine Anwendung noch nicht fertig geschrieben hat.

Das bedeutet: Wenn ein Programm/eine Anwendung das Handle, das es zur Datei geöffnet hat, nicht schließt, wird die Datei von memfetch nicht heruntergeladen.
Dies kann durch Verwendung des Arguments „force“ mit memfetch umgangen werden, also 'memfetch force', um alle Dateien unabhängig vom Status ihres Handles aus dem Speicher abzurufen.

Dateien, die memfetch aus dem Speicher abruft, werden als Download an den Teamserver gesendet und können über die Registerkarte „Downloads“ in CobaltStrike vom Teamserver auf den Client synchronisiert werden.

Sobald eine Datei vom Teamserver heruntergeladen wurde, wird sie aus dem Speicher des Beacon-Prozesses gelöscht und ihr Eintrag, der über memlist angezeigt wird, entfernt.

memclean

memclean ist dafür verantwortlich, MemFiles aus einem Beacon-Prozess zu entfernen und aufzuräumen.

Der Standard-Anwendungsfall für MemFiles besteht darin, es zu installieren und für die Lebensdauer des Beacons installiert zu lassen; sollte man MemFiles jedoch zusammen mit einem Tool verwenden wollen, um Dateiausgaben zu erfassen und abzurufen, und MemFiles anschließend deinstallieren wollen, damit seine Artefakte nicht im Speicher verbleiben, kann memclean verwendet werden, um den Beacon-Prozess in seinen ursprünglichen Zustand vor der Ausführung von meminit zurückzuversetzen.

Das beinhaltet:

Tool herunterladen