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
MoveKit — Cobalt Strike-Kit für Lateral Movement | Kitploit
Tools/GitHubGitHub/0xthirteen/movekit
Exploit-FrameworksLaterale BewegungPost-ExploitationPenetrationstestsRed Teaming
GitHub0xthirteen/movekit

MoveKit

Cobalt Strike-Kit für Lateral Movement

Repository anzeigen
6781081vor 6 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

MoveKit - Cobalt Strike Lateral Movement Kit

Movekit ist eine Erweiterung der integrierten lateralen Bewegung von Cobalt Strike, die die execute_assembly-Funktion mit den .NET-Assemblies SharpMove und SharpRDP nutzt. Das Aggressor-Skript übernimmt die Erstellung der Payloads, indem es die Vorlagendateien für einen bestimmten Ausführungstyp liest.

WICHTIG: Um das Skript zu verwenden, muss der Benutzer lediglich das Aggressor-Skript MoveKit.cna laden, das automatisch alle anderen erforderlichen Skripte lädt. Zusätzlich müssen – abhängig von den durchgeführten Aktionen – die Assemblies SharpMove und SharpRDP kompiliert und im Verzeichnis Assemblies abgelegt werden. Schließlich erfordert das Verschieben von Dateien dynamisches Kompilieren, wofür Mono benötigt wird.

Beim Laden des Aggressor-Skripts wird ein Selektor in der menubar mit dem Namen Move geladen. Der Benutzer kann mehrere Optionen auswählen. Erstens kann ein Befehl auf einem entfernten System über WMI, DCOM, Task Scheduler, RDP oder SCM ausgeführt werden. Zweitens gibt es den Command-Ausführungsmechanismus, der Download-Cradles verwendet, um die Dateien abzurufen und auszuführen. Drittens legt die File-Methode eine Datei auf dem System ab und führt sie aus. Es gibt Write File Only, das keine Ausführung durchführt, sondern nur Daten verschiebt. Schließlich gibt es eine Default-Einstellung, um die GUI schneller zu machen und mit Beacon-Befehlen zu verwenden. Die Standardeinstellungen werden für alles verwendet, das einen Standard akzeptieren kann.

Um die Beacon-Befehle zu verwenden, werden die Standardeinstellungen ausgelesen und einige Befehlszeilenargumente verwendet. Ein Beacon-Befehlbeispiel: <exec-type> <target> <listener> <filename>

move-msbuild 192.168.1.1 http move.csproj

Zusätzlich ist der benutzerdefinierte, vorgefertigte Beacon-Befehl etwas anders. Befehlsbeispiel: move-pre-custom-file <target> <local-file> <remote-filename>

move-pre-custom-file computer001.local /root/payload.exe legit.exe

Das Feld location ist der kniffligste Teil des Projekts. Wenn die Dateiverschiebung per WMI ausgewählt wird, wird location verwendet; wenn SMB ausgewählt ist, wird es nicht verwendet (kann also leer gelassen werden). Location akzeptiert drei verschiedene Werte. Erstens: Wenn location eine URL ist, wird die Payload nach der Erstellung über den Webserver von Cobalt Strike bereitgestellt. Der Beacon-Host, von dem das Assembly ausgeführt wird, sendet eine Webanfrage an die URL und ruft die Datei ab, die dann in einem Event-Sub auf dem Zielhost verwendet wird, um die Datei zu schreiben. Zweitens: Wenn location ein Windows-Verzeichnis ist, wird die erstellte Datei auf den Beacon-Host hochgeladen; das Assembly liest sie aus dem Dateisystem und speichert sie im Event-Sub, um sie auf den entfernten Host zu schreiben. Drittens: Wenn das Feld location ein Linux-Pfad oder das Wort local ist, wird die Payload dynamisch in das ausgeführte Assembly kompiliert. Wenn die Datei jedoch die 1-MB-Größenbeschränkung überschreitet, wird ein Fehler angezeigt.

Bei allen Datei-Methoden wird die Payload durch das Aggressor-Skript erstellt. Wenn jedoch bereits eine Payload erstellt wurde, können Benutzer die Option Custom (Prebuilt) auswählen, um sie zu verschieben und auszuführen.

Das Kit enthält verschiedene Dateiverschiebungstechniken, Ausführungstrigger und Payload-Typen.

Dateiverschiebung bezieht sich auf die Methode, die verwendet wird, um eine Datei auf einen entfernten Host zu bringen. Dateiverschiebungsarten:

  • SMB zu Flatfile
  • WMI zu Flatfile
  • WMI zu Registry-Key-Value
  • WMI zu benutzerdefinierter WMI-Klasseneigenschaft

Befehlstrigger bezieht sich auf die Methode, die verwendet wird, um einen bestimmten Befehl auf einem entfernten Host auszuführen. Befehlstrigger-Arten:

  • WMI
  • SCM
  • RDP
  • DCOM (Mehrere)
  • Geplante Aufgaben
  • Geplante Aufgabe ändern (Vorhandene Aufgabe – Aktion wird aktualisiert, Aufgabe wird ausgeführt und Aktion zurückgesetzt)
  • Service-BinPath ändern (Vorhandener Dienst – BinPath wird aktualisiert, Dienst wird gestartet und auf den ursprünglichen Zustand zurückgesetzt)

Shellcode-only-Ausführung:

  • Excel 4.0 DCOM
  • WMI-Ereignisabonnement (demnächst verfügbar)

Hijacks:

  • Service-DLL-Hijack (demnächst verfügbar)
  • DCOM-Server-Hijack (demnächst verfügbar)

Abhängigkeiten

  • Mono (MCS) zum Kompilieren von .NET-Assemblies (wird bei dynamischer Payload-Erstellung, InstallUtil und Custom-NonPreBuilt verwendet). Auch bei Verwendung des FileWrite-Assemblys.

Fallstricke:

  • Manchmal wird execute_assembly vor der Dateiverschiebung aufgerufen. Wenn dies passiert, kann die Payload ausgeführt werden, indem das Kontrollkästchen Auto deaktiviert wird.
  • Das Kit bereinigt Dateien nicht automatisch; dies bleibt dem Operator überlassen.
Hinweis: Es wird empfohlen, die Standardvorlagen nicht mit dem Projekt zu verwenden.

Um eine Vorlage zu ersetzen, müssen zwei Bedingungen erfüllt sein. Erstens muss die Vorlage nach der Technik benannt sein (Beispiel: msbuild.csproj). Zweitens muss der Quellcode die Zeichenkette $$PAYLOAD$$ enthalten, wo der Base64-kodierte Shellcode eingefügt wird, und der Code muss in der Lage sein, einen Base64-String in ein Byte-Array zu konvertieren. Beispiel für C#:

root@kitploit:~
string strSC = "$$PAYLOAD$$";
byte[] sc = Convert.FromBase64String(strSC);

Es wurde eine Änderung hinzugefügt, die es erlaubt, die Zeichenkette für 'Suchen und Ersetzen' und die Shellcode-Formate im Dialog 'Standardeinstellungen aktualisieren' zu aktualisieren. Standardmäßig sind dies $$PAYLOAD$$ und base64.

Operative Überlegungen

  • Bei Verwendung des Task Schedulers werden geplante Aufgaben erstellt und gelöscht.
  • Bei Verwendung von SCM werden Dienste erstellt und gelöscht.
  • Wenn der AMSI-Bypass verwendet wird, funktioniert er nur für WSH, nicht für PowerShell.
  • Wenn der AMSI-Bypass verwendet wird, wird die Registry entweder durch Erstellen oder Aktualisieren eines Registry-Schlüssels geändert, der dann auf seinen ursprünglichen Wert zurückgesetzt oder gelöscht wird.
  • Es verwendet die Funktion execute-assembly von Cobalt Strike, die wie andere Post-Ex-Jobs in einen Opferprozess injiziert.
  • Bei Verwendung der File- oder Command-Methoden werden Dateien auf der Festplatte abgelegt.
  • Vorlagen sollten nicht verwendet werden; sie sind alle öffentlich bekannt.
  • Alle Techniken sind nicht neu und allgemein bekannt.

Danksagungen

Ein Teil des Codes, der Vorlagen oder der Inspiration stammt von anderen Personen und Projekten:

  • WMI – SharpWMI von harmj0y
  • DCOM – SharpCOM von rvrsh3ll und SharpSploit DCOM von cobbr
  • SCM – CSExec von Tim Malcomvetter
  • Service-DLL-Hijack SharpSC von djhohnstein
  • Service-BinPath-Modifikation SCShell von Mr-Un1k0d3r
  • Shellcode-Runner-Vorlage von subTee
  • CACTUSTORCH-Payloads von vysecurity

Es gibt wahrscheinlich irgendwo Fehler, sie tauchen ab und zu auf. Einfach melden, und ich behebe sie.

Tool herunterladen