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
RemotePSpy — Live-Überwachungstool für Remote-PowerShell-Sitzungen, das ETW nutzt, um das WinRM/PSRP-Protokoll zu erfassen und zu dekodieren und so Befehlsausführungs-Traces und Protokollierung für die Sicherheitsanalyse bereitstellt. | Kitploit
Tools/GitHubGitHub/withsecurelabs/remotepspy
DefensivwerkzeugeNetzwerksicherheitDigitale ForensikBedrohungsanalyseIncident ResponseLog-Analyse
GitHubwithsecurelabs/remotepspy

RemotePSpy

Live-Überwachungstool für Remote-PowerShell-Sitzungen, das ETW nutzt, um das WinRM/PSRP-Protokoll zu erfassen und zu dekodieren und so Befehlsausführungs-Traces und Protokollierung für die Sicherheitsanalyse bereitstellt.

Repository anzeigen
1989vor 6 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

RemotePSpy

RemotePSpy ermöglicht die Live-Überwachung von Remote-PowerShell-Sitzungen, was besonders für ältere (vor 5.0) PowerShell-Versionen nützlich ist, die keine umfassenden integrierten Protokollierungsfunktionen besitzen.

Es verwendet Event Tracing for Windows (ETW), um Nachrichtendaten aus dem WinRM-Protokoll zu erhalten, das als Transport für Remote-PowerShell dient, und dekodiert die verschiedenen Protokollebenen, um eine Ablaufverfolgung der ausgeführten Skriptbefehle sowie deren Ein-/Ausgabe bereitzustellen.

Dies ist derzeit ein früher Forschungsprototyp und unterstützt daher nicht jeden Aspekt des PowerShell Remote Protocol (PSRP). Es kann dennoch nützliche Einblicke darüber liefern, was in einer Remote-PowerShell-Sitzung geschieht.

Installation

Der einfachste Weg zur Installation ist die Verwendung von pip:

root@kitploit:~
pip install remotepspy

Abhängigkeiten

Die Abhängigkeiten sollten bei der Installation über pip automatisch installiert werden. Falls Sie jedoch aus dem Quellcode installieren möchten, sind sie hier aufgelistet:

  • Python 3.7
  • pywintrace (https://github.com/fireeye/pywintrace oder https://pypi.org/project/pywintrace/)
  • psutils (https://pypi.org/project/pywintrace/)
  • libwim-15.dll von https://wimlib.net/ (aus Bequemlichkeit im RemotePSpy-Paket gebündelt)

Die libwim-15.dll wird nur benötigt, wenn der (empfohlene und standardmäßige) Microsoft-Windows-WinRM-ETW-Anbieter als Datenquelle verwendet wird. Sie wird verwendet, um bestimmte Stream-Objekte im WinRM/WSMan-Protokoll zu dekomprimieren, die PSRP-Nachrichtenfragmente enthalten. Legen Sie sie einfach in dasselbe Verzeichnis wie das Haupt-Python-Skript.

Verwendung

Führen Sie einfach RemotePSpy aus, um die Überwachung und Protokollierung zu starten, und drücken Sie die Eingabetaste, wenn Sie fertig sind. Das Protokoll wird in das aktuelle Arbeitsverzeichnis geschrieben und heißt RemotePSpy.log.

Das Tool gibt außerdem eine ungefähre Nachbildung dessen, was der Benutzer von Remote-PowerShell auf seinem Bildschirm sehen würde, auf stdout aus, zusammen mit den ausführlicheren Informationen in der Protokolldatei. Eine komplexere Protokollierung ist verfügbar – siehe „Logging“ unten.

Wenn Sie Python so installiert haben, dass es sich in Ihrem PATH befindet, befinden sich die ausführbaren RemotePSpy-Skripte ebenfalls in Ihrem PATH. Andernfalls müssen Sie möglicherweise in Ihrem Python-site-packages-Verzeichnis danach suchen.

PowerShell-ETW-Anbieterversion

Das standardmäßige RemotePSpy verwendet den (empfohlenen) WinRM-ETW-Anbieter als Datenquelle. Wenn Sie stattdessen den PowerShell-ETW-Anbieter verwenden möchten, können Sie RemotePSpy_powershell_prov ausführen.

Diese Version kann aufgrund der zusätzlichen Komplexität der Verfolgung bestimmter Zustände, die darauf basiert, wie die Daten in diesem speziellen ETW-Anbieter bereitgestellt werden, einige unnötige Warnungen erzeugen.

Interna

Der Code besteht aus einer Reihe recht modularer Klassen, die Eingaben auf verschiedenen Ebenen des Protokollstapels akzeptieren können. Dies ermöglicht es, sie je nachdem, woher die Daten stammen und in welcher Form, auf leicht unterschiedliche Weise miteinander zu verbinden. Die meisten Klassen akzeptieren eine Callback-Funktion, mit der sie das von ihnen erzeugte Ergebnis an die nächste Ebene im Stapel weitergeben.

Eine Beschreibung der wichtigsten verwendeten Klassen finden Sie unten, gefolgt von einigen Verarbeitungsabläufen, die zeigen, welche Klasse in welchen Szenarien in welche andere einspeist.

  • ETWWinRM – Ruft ETW-Ereignisse vom WinRM-Anbieter ab.

  • ETWPowerShell – Ruft ETW-Ereignisse vom PowerShell-Anbieter ab.

  • PowerShellETWParser – Identifiziert den Shell-Kontext für PowerShell-ETW-Ereignisse und leitet die Fragmentdaten an PSRPDefragmenter weiter. Bietet außerdem Thread-Synchronisierung.

  • SoapDefragmenter – Setzt vollständige WSMan-SOAP-Nachrichten aus WinRM-ETW-Ereignissen wieder zusammen und leitet das vollständige SOAP an WSManPS weiter.

  • WSManPS – Filtert nicht PowerShell-bezogene WinRM-Nachrichten heraus, verfolgt den Shell-Kontext, extrahiert PSRP-Fragmentdaten aus dem WSMan-SOAP und leitet die Fragmentdaten an PSRPDefragmenter weiter.

  • PSRPDefragmenter – Setzt PSRP-Fragmente zu vollständigen PSRP-Nachrichten wieder zusammen. Fragmente werden nach ObjectID zusammengesetzt, und die Eindeutigkeit der ObjectID wird durch Berücksichtigung des Shell-Kontexts sichergestellt. Leitet endgültige PSRP-Nachrichten an PSRPParser weiter.

  • PSRPParser – Dekodiert die rohe binäre PSRP-Nachricht und extrahiert Header-Details wie RPID, Pipeline-ID und MessageType. Leitet dekodierte Nachrichten an SimpleCommandTracer weiter.

  • SimpleCommandTracer – Interpretiert PSRP-Nachrichten mithilfe von MessageType und extrahiert und protokolliert/druckt Befehle, Argumente und deren Ausgabe. Enthält eine partielle Dekodierung serialisierter PowerShell-Objekte. Keine vollständige Implementierung jedes möglichen Features, versucht jedoch, die meisten gängigen Fälle abzudecken, um eine Ausführungsablaufverfolgung zu ermöglichen.

Verarbeitungsablauf bei Verwendung des Microsoft-Windows-WinRM-ETW-Anbieters:

ETWWinRM -> SoapDefragmenter -> WSManPS -> PSRPDefragmenter -> PSRPParser -> SimpleCommandTracer

Verarbeitungsablauf bei Verwendung des Microsoft-Windows-PowerShell-ETW-Anbieters:

ETWPowerShell -> PowerShellETWParser -> PSRPDefragmenter -> PSRPParser -> SimpleCommandTracer

Logging

Auf jeder Ebene des Protokollstapels gibt es eine umfassende Protokollierung. Dies ermöglicht das Debuggen auf verschiedenen Ebenen und war während der Entwicklung besonders hilfreich. Hoffentlich kann es auch für alle nützlich sein, die Remote-PowerShell in Aktion untersuchen möchten, da es möglich ist, eine vollständige Ablaufverfolgung des Protokolls auf allen wichtigen Ebenen zu erhalten.

Derzeit muss der Quellcode am Ende des Skripts, wo die Logger konfiguriert sind, bearbeitet werden, um die Protokollierung zu ändern. Zukünftige Versionen sollten hoffentlich eine bessere Methode für eine solche Konfiguration bereitstellen.

Jeder Loggername wird durch eine Konstante, LOGGER_NAME, in der Klasse definiert, die ihn verwendet. Jeder Logger ist als Kind von „RemotePSpy“ definiert (z. B. RemotePSpy.etw). Programmatisch können Logger mit logging.getLogger() und dem entsprechenden Protokollnamen konfiguriert werden.

Als schnelle Referenz liefern Ihnen die folgenden Logger und Ebenen Protokollablaufverfolgungen auf verschiedenen Ebenen des Protokolls:

Wichtige ProtokolldatenLogger-Name-KonstanteEbene
BefehlsablaufverfolgungSimpleCommandTracer.LOGGER_NAMEINFO
Vollständige ETW-EreignisablaufverfolgungETWWinRM.LOGGER_NAMEDEBUG
Vollständige WSMan-SOAP-NachrichtenablaufverfolgungSoapDefragmenter.LOGGER_NAMEINFO
Vollständige Ablaufverfolgung jedes PSRP-FragmentsPSRPDefragmenter.LOGGER_NAMEDEBUG
Vollständige PSRP-NachrichtenablaufverfolgungPSRPParser.LOGGER_NAMEDEBUG

Beachten Sie, dass SimpleCommandTracer zusätzlich eine Ablaufverfolgung auf stdout ausgibt, die versucht, die Anzeige etwas zu replizieren, wie sie der Remote-PowerShell-Benutzer sehen würde. Dies unterscheidet sich vom Befehlsablaufverfolgungsprotokoll, das jeden Befehl, jeden Pipeline-Methodenaufruf und jede Pipeline-Ausgabe auf eine präzisere Weise protokolliert, einschließlich zusätzlichem Kontext wie RPID und Pipeline-ID.

Eine ausführlichere Zusammenfassung dessen, was in jedem Protokoll auf welcher Ebene erscheint, finden Sie unten:

SimpleCommandTracer.LOGGER_NAME

ERROR:

  • Parsing-Fehler

WARNING:

  • Nicht unterstützter Typ oder nicht unterstützte Pipeline-Methode aufgetreten

INFO:

  • Die tatsächliche Befehlsablaufverfolgung

DEBUG:

  • Pipeline-Methode ohne Argumente aufgerufen

PSRPParser.LOGGER_NAME

DEBUG:

  • Vollständige PSRP-Nachrichtenablaufverfolgung

PSRPDefragmenter.LOGGER_NAME

ERROR:

  • Fragment außerhalb der Reihenfolge empfangen

WARNING:

  • Nicht fatale Shell-Verfolgungsanomalien

INFO:

  • Endfragment gefunden
  • Verfolgte Shell-ID in Fragmentdaten gefunden, die zuvor nicht explizit verfolgt wurde

DEBUG:

  • Vollständige Ablaufverfolgung jedes PSRP-Fragments

WSManPS.LOGGER_NAME

ERROR:

  • Schwerwiegende Parsing-Fehler

WARNING:

  • Weniger schwerwiegende Parsing-Fehler
  • Überschreiben vorhandener Shell-/Befehlsverfolgungskontexte

INFO:

  • Shell- und Befehlsverfolgungsinformationen

DEBUG:

  • Vollständige Ablaufverfolgung von WSMan-Nachrichten, die ignoriert werden, da sie nicht PowerShell-bezogen sind

SoapDefragmenter.LOGGER_NAME

INFO:

  • Vollständige WSMan-SOAP-Nachrichtenablaufverfolgung

DEBUG:

  • SOAP-Chunk verarbeitet

PowerShellETWParser.LOGGER_NAME

DEBUG:

  • Shell-Verfolgungsinformationen

ERROR:

  • Fehler bei der Shell-Kontextidentifizierung
  • Auffang-Ausnahmen von unteren Ebenen

ETWWinRM.LOGGER_NAME

DEBUG:

  • Vollständige ETW-Ereignisablaufverfolgung

INFO:

  • ETW-Sitzung starten/stoppen
Tool herunterladen