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
Trawler — PowerShell-Skript, das Incident Respondern hilft, potenzielle Persistenzmechanismen von Angreifern zu entdecken. | Kitploit
Tools/GitHubGitHub/joeavanzato/trawler
DefensivwerkzeugePersistenzmechanismenForensikDigitale ForensikIncident Response
GitHubjoeavanzato/trawler

Trawler

PowerShell-Skript, das Incident Respondern hilft, potenzielle Persistenzmechanismen von Angreifern zu entdecken.

Repository anzeigen
34038vor 1 JahrVon 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

Windows nach Persistenz durchsuchen

Was ist das?

Trawler ist ein PowerShell-Skript, das Incident Respondern dabei helfen soll, potenzielle Anzeichen einer Kompromittierung auf Windows-Hosts zu entdecken. Der Fokus liegt dabei auf Persistenzmechanismen, einschließlich geplanter Aufgaben, Dienste, Registrierungsänderungen, Startobjekte, Binärdateiänderungen und mehr.

Derzeit kann Trawler die meisten Persistenstechniken erkennen, die von MITRE und Atomic Red Team speziell genannt werden, und es werden regelmäßig weitere Erkennungen hinzugefügt.

Hauptfunktionen

  • Scan von Windows-Betriebssystemen auf eine Vielzahl von Persistenstechniken (siehe unten)
  • CSV-Ausgabe mit MITRE-Technik und Metadaten für den Untersuchungsstart
  • Dokumentation zu Analyse- und Abhilfemaßnahmen (https://github.com/joeavanzato/Trawler/wiki/Analysis-and-Remediation-Guidance)
  • Dynamische Risikozuweisung für jede Erkennung
  • Integrierte Zulassungslisten für gängige Windows-Konfigurationen (Windows 10/Server 2012|2016|2019|2022) zur Rauschreduzierung
  • Erfassung von Persistenzmetadaten aus einem ‚goldenen‘ Unternehmensimage (Snapshot) zur Verwendung als dynamische Zulassungsliste zur Laufzeit
  • Analyse von eingehängten Datenträger-Images über Laufwerk-Neuausrichtung

Wie benutze ich es?

Laden Sie einfach trawler.ps1 herunter und führen Sie es in einer administrativen PowerShell/cmd-Eingabeaufforderung aus – alle Erkennungen werden in der Konsole angezeigt und auch in einer CSV-Datei (‚detections.csv‘) im aktuellen Arbeitsverzeichnis gespeichert. Die generierte CSV enthält Erkennungsname, Quelle, Risiko, Metadaten und die relevante MITRE-Technik.

Oder verwenden Sie diesen Einzeiler in einem administrativen PowerShell-Terminal:

root@kitploit:~
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/joeavanzato/Trawler/main/trawler.ps1'))

Bestimmte Erkennungen verfügen über integrierte Zulassungslisten, um Rauschen durch Standard-Windows-Konfigurationen (10/2016/2019/2022) zu reduzieren – z. B. erwartete geplante Aufgaben, Dienste usw. Natürlich ist es immer möglich, dass Angreifer diese direkt übernehmen und sich mit großer Detailtreue als Standard-OS-Prozess tarnen – seien Sie bei der Analyse und Erkennung geschickter Gegner vorsichtig und verwenden Sie mehrere Analysemethoden.

Wenn Sie Beispiele oder Ideen für zusätzliche Erkennungen haben, reichen Sie bitte ein Issue oder einen PR mit den entsprechenden technischen Details/Verweisen ein – der Code ist derzeit noch etwas unordentlich und wird mit der Zeit bereinigt.

Wenn Sie außerdem offensichtliche Fehlalarme identifizieren, lassen Sie es mich bitte wissen, indem Sie ein Issue oder PR auf GitHub eröffnen! Die offensichtlichsten Kandidaten dafür sind nicht standardmäßige COMs, Dienste oder Aufgaben.

CLI-Parameter

root@kitploit:~
-scanoptions : Durch Tabulator blättern, um mögliche Erkennungen anzuzeigen, und eine Teilmenge mit kommagetrennten Begriffen auswählen (z. B. .\trawler.ps1 -scanoptions Services,Processes) oder überspringen, um alle Erkennungen durchzuführen
-quiet : Unterdrückt die Erkennungsausgabe in der Konsole
-snapshot : Pfad zu einer vorherigen Trawler-JSON-Ausgabe, die als Zulassungsliste verwendet werden soll.
-outpath : Definiert einen benutzerdefinierten Dateipfad zum Speichern der Erkennungsausgabe (Standard: "$PSScriptRoot\detections.csv")
-drivetarget : Definiert die Variable für ein eingehängtes Ziellaufwerk (z. B. .\trawler.ps1 -targetdrive "D:") – (Standard: lokales System)
-daysago : Definiert, wie viele ‚Tage zurück‘ wir für zeitbasierte Erkennungen berücksichtigen möchten (Standard: 45)
-hashmode : Definiert, welcher Hashing-Algorithmus für unterstützte Erkennungen verwendet werden soll – unterstützt sha1, md5 oder sha256 (Standard: sha1)
-evtx : Aktiviert die Erstellung einer Ereignisprotokollquelle und das Schreiben von Erkennungen in das Anwendungsereignisprotokoll unter Source=trawler mit EID=9001 (Standard: deaktiviert)

Was unterscheidet dies von PersistenceSniper?

PersistenceSniper ist ein großartiges Tool – ich habe es in der Vergangenheit intensiv genutzt – aber es gibt einige wichtige Punkte, die diese Hilfsprogramme unterscheiden:

  • Trawler ist (derzeit) ein lokales Dienstprogramm – es wäre jedoch recht einfach, es in eine Schleife zu packen und über WinRM/PowerShell-Sitzungen auf entfernten Hosts auszuführen.
  • Trawler implementiert Zulassungslisten für viele ‚laute‘ Erkennungen, um erwartete Erkennungen aus Standardkonfigurationen von Windows (10/2016/2019/2022) zu entfernen, und diese werden ständig aktualisiert (PS macht das auch).
  • Trawlers Ausgabe ist vereinfacht – Name, Risiko, Quelle, MITRE-Technik und Metadaten sind die einzigen Elemente, die für jede Erkennung bereitgestellt werden, um Analysten einen schnellen Start in ihre Persistenzjagd zu ermöglichen – das ist ein zweischneidiges Schwert.
  • Regex wird bei vielen Prüfungen verwendet, um ‚verdächtige‘ Schlüsselwörter oder Muster in verschiedenen kritischen Bereichen zu erkennen, einschließlich gescannter Dateiinhalte, Registrierungswerte usw. Dies bietet etwas mehr Flexibilität, aber auch eine potenziell höhere Fehlalarmrate.
  • Trawler unterstützt ‚Laufwerk-Neuausrichtung‘, um tote Systeme zu überprüfen, die an einen Analyserechner angeschlossen sind.

Insgesamt sind diese Tools extrem ähnlich, nähern sich dem Problem jedoch aus leicht unterschiedlichen Winkeln – PersistenceSniper liefert alle Informationen an den Analysten zurück, während Trawler versucht, die zurückgegebenen Ergebnisse auf solche zu beschränken, die wahrscheinlich potenzielle Persistenzmechanismen von Angreifern sind. Daher besteht bei Trawler die Möglichkeit von Fehlalarmen, wenn ein Angreifer ein auf der Zulassungsliste stehendes Element vollständig nachahmt.

Als Beispiel: PersistenceSniper gibt alle ‚nicht sicheren‘ Windows-Dienste zurück, während Trawler nur diejenigen zurückgibt, die einer bestimmten Erkennungsregel entsprechen usw.

Anpassung an Ihre Umgebung

Trawler unterstützt das Laden einer Zulassungsliste aus einem ‚Snapshot‘ – dazu sind zwei Schritte erforderlich.

  1. Führen Sie '.\trawler.ps1 -snapshot' auf einem ‚Golden Image‘ aus, das die Server in Ihrer Umgebung repräsentiert – nach Abschluss wird zusätzlich zur standardmäßigen 'detections.csv' eine Datei mit dem Namen 'snapshots.csv' erstellt.
  2. Diese Datei kann dann als Eingabe für Trawler verwendet werden, wenn es auf anderen Hosts ausgeführt wird, und die Daten werden dynamisch als Zulassungsliste für jede entsprechende Erkennung geladen.
    1. '.\trawler.ps1' -loadsnapshot "path\to\snapshot.csv"

Das war's – alle relevanten Erkennungen greifen dann auf die Snapshot-Datei als Zulassungsliste zu, um Rauschen zu reduzieren und potenzielle Änderungen am Basis-Image zu identifizieren.

(Die Zulassungsliste wird für die meisten Prüfungen implementiert, aber noch nicht für alle – die Implementierung ist noch aktiv.)

Laufwerk-Neuausrichtung (Drive ReTargeting)

Während einer Untersuchung müssen Ermittler oft ein neues Laufwerk einhängen, das ein abgebildetes Windows-Gerät darstellt – Trawler unterstützt jetzt teilweise das Scannen dieser eingehängten Laufwerke durch die Verwendung des Parameters '-drivetarget'.

Zur Laufzeit setzt Trawler temporäre Skriptvariablen neu, um dateibasierte Artefakte zu überprüfen, und versucht auch, relevante Registrierungsstrukturen (HKLM\SOFTWARE, HKLM\SYSTEM, NTUSER.DATs, USRCLASS.DATs) unter HKLM/HKU mit dem Präfix 'ANALYSIS_' zu laden. Trawler versucht auch, diese temporär geladenen Strukturen nach Abschluss des Skripts wieder zu entladen.

Wenn Sie beispielsweise ein Image an einem Ort wie 'F:\Test' eingehängt haben, das das NTFS-Dateisystem enthält ('F:\Test\Windows', 'F:\Test\User' usw.), dann können Sie Trawler wie folgt aufrufen:

root@kitploit:~
.\trawler.ps1 -drivetarget "F:\Test"

Bitte beachten Sie, dass die Zuordnung eines UNC-Pfads zu einem live entfernten Gerät NICHT funktioniert, da diese Dateien aufgrund von Systemsperren nicht zugänglich sind. Ich arbeite an einem Ansatz, der live entfernte Geräte behandelt, bleiben Sie dran.

Was wird bei der Laufwerk-Neuausrichtung nicht überprüft?

  • Ausgeführte Prozesse
  • Netzwerkverbindungen
  • ‚Phantom‘-DLLs
  • WMI Consumer (wird bearbeitet)
  • BITS-Aufträge (wird bearbeitet)
  • Zertifikatsanalyse (wird bearbeitet)

Die meisten anderen Prüfungen funktionieren einwandfrei, da sie vollständig auf dem Lesen von Registrierungsstrukturen oder dateibasierten Artefakten basieren (oder entsprechend umgewandelt werden können, z. B. direktes Lesen von Task-XML anstelle der Verwendung integrierter Cmdlets).

Alle Einschränkungen bei Prüfungen während der Laufwerk-Neuausrichtung werden im GitHub-Wiki ausführlicher erläutert.

Beispielbilder

Was wird überprüft?

  • Geplante Aufgaben
  • Benutzer
  • Dienste
  • Ausgeführte Prozesse
  • Netzwerkverbindungen
  • WMI-Ereignisconsumer (Befehlszeile/Skript)
  • Erkennung von Startobjekten
  • Erkennung von BITS-Aufträgen
  • Änderungen an Windows-Barrierefreiheitsfunktionen
  • Vorhandensein von PowerShell-Profilen
  • Office-Vertrauensdokumente
  • Office-Add-ins aus vertrauenswürdigen Speicherorten
  • SilentProcessExit-Überwachung
  • Winlogon-Helper-DLL-Entführung
  • Hijacking von Image File Execution Options
  • RDP-Shadowing
  • UAC-Einstellung für Remotesitzungen
  • Druckmonitor-DLLs
  • LSA-Sicherheits- und Authentifizierungspaket-Hijacking
  • Zeitprovider-DLLs
  • Druckprozessor-DLLs
  • Start/Anmeldung Active Setup
  • Hijacking von Benutzerinitialisierungs-Anmeldungsskripten
  • Hijacking von Bildschirmschoner-Executables
  • Netsh-DLLs
  • AppCert-DLLs
  • AppInit-DLLs
  • Application Shimming
  • COM-Objekt-Hijacking
  • LSA-Benachrichtigungs-Hijacking
  • ‚Office test‘-Verwendung
  • Office GlobalDotName-Verwendung
  • Terminaldienst-DLL-Hijacking
  • Autodial-DLL-Hijacking
  • Command AutoRun-Processor-Missbrauch
  • Outlook-OTM-Hijacking
  • Trust-Provider-Hijacking
  • LNK-Zielscan (verdächtige Begriffe, mehrfache Erweiterungen, mehrfache EXEs)
  • ‚Phantom‘-Windows-DLL-Namen, die in laufende Prozesse geladen werden (z. B. unsignierte WptsExtensions.dll)
  • Scannen kritischer OS-Verzeichnisse nach unsignierten EXEs/DLLs
  • Hijacking von nicht in Anführungszeichen gesetzten Dienstpfaden
  • PATH-Binärdatei-Hijacking
  • Hijacking gängiger Dateizuordnungen und verdächtige Schlüsselwörter
  • Jagd nach verdächtigen Zertifikaten
  • Erkennung/Scan von GPO-Skripten
  • DLL-Überschreibungen von NLP-Entwicklungsplattformen
  • AeDebug/.NET/Skript/Prozess/WER-Debug-Ersetzungen
  • Explorer 'Load'
  • Hijacking von Windows-Terminal startOnUserLogin
  • App-Pfad-Ungereimtheiten
  • Dienst-DLL/ImagePath-Ungereimtheiten
  • GPO-Erweiterungs-DLLs
  • Mögliche COM-Hijacks
  • Nicht standardmäßige LSA-Erweiterungen
  • Vorhandensein von DNSServerLevelPluginDll
  • Explorer\MyComputer-Dienstprogramm-Hijack

TODO

  • Analyse-/Abhilfemaßnahmen für jede Erkennung im GitHub-Wiki hinzufügen (in Arbeit)
  • Analyse von Browsererweiterungen (?)
  • RID-Hijacking [https://www.ired.team/offensive-security/persistence/rid-hijacking][https://pentestlab.blog/2020/02/12/persistence-rid-hijacking/]
  • PowerAutomate-Prüfungen
  • ShadowPad-Indikatoren [https://www.secureworks.com/research/shadowpad-malware-analysis, https://www.hexacorn.com/blog/2023/02/25/beyond-good-ol-run-key-part-141/]
  • OBS-Startskript-Scan [https://www.hexacorn.com/blog/2023/04/14/beyond-good-ol-run-key-part-142/]
  • SQL Server Management-Addins [https://www.hexacorn.com/blog/2019/09/28/beyond-good-ol-run-key-part-117/]
  • AutoPlay-Handler-Inspektion [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers]
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\Pending\SPReviewEnabler
  • OCSetup [https://www.hexacorn.com/blog/2019/11/09/beyond-good-ol-run-key-part-122/]
  • Überprüfung von https://hijacklibs.net/# auf zusätzliche Möglichkeiten
  • Überprüfung von https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows auf zusätzliche Möglichkeiten
  • Überprüfung von https://silentrunners.org/launchpoints.html auf zusätzliche Möglichkeiten

Bewertete MITRE-Techniken

Bitte beachten Sie, dass einige dieser Techniken (natürlich) stärker erkannt werden als andere – zum Beispiel erkennen wir nicht alle möglichen Registrierungsänderungen, sondern überprüfen bestimmte Schlüssel auf offensichtliche Änderungen und verwenden die allgemeine MITRE-Technik „Modify Registry“, wenn keine andere Technik anwendbar ist. Bei anderen Elementen wie COM-Hijacking überprüfen wir alle Einträge im entsprechenden Registrierungsabschnitt, vergleichen sie mit ‚bekannt-guten‘ Mustern und heben unbekannte oder nicht übereinstimmende Werte hervor, was zu einer viel vollständigeren Erkennungsoberfläche für diese spezielle Technik führt.

  • T1037: Boot or Logon Initialization Scripts
  • T1037.001: Boot or Logon Initialization Scripts: Logon Script (Windows)
  • T1037.005: Boot or Logon Initialization Scripts: Startup Items
  • T1055.001: Process Injection: Dynamic-link Library Injection
  • T1059: Command and Scripting Interpreter
  • T1071: Application Layer Protocol
  • T1098: Account Manipulation
  • T1112: Modify Registry
  • T1053: Scheduled Task/Job
  • T1136: Create Account
  • T1137.001: Office Application Office Template Macros
  • T1137.002: Office Application Startup: Office Test
  • T1137.006: Office Application Startup: Add-ins
  • T1176: Browser Extensions
  • T1197: BITS Jobs
  • T1505.005: Server Software Component: Terminal Services DLL
  • T1543.003: Create or Modify System Process: Windows Service
  • T1546: Event Triggered Execution
  • T1546.001: Event Triggered Execution: Change Default File Association
  • T1546.002: Event Triggered Execution: Screensaver
  • T1546.003: Event Triggered Execution: Windows Management Instrumentation Event Subscription
  • T1546.007: Event Triggered Execution: Netsh Helper DLL
  • T1546.008: Event Triggered Execution: Accessibility Features
  • T1546.009: Event Triggered Execution: AppCert DLLs
  • T1546.010: Event Triggered Execution: AppInit DLLs
  • T1546.011: Event Triggered Execution: Application Shimming
  • T1546.012: Event Triggered Execution: Image File Execution Options Injection
  • T1546.013: Event Triggered Execution: PowerShell Profile
  • T1546.015: Event Triggered Execution: Component Object Model Hijacking
  • T1547.002: Boot or Logon Autostart Execution: Authentication Packages
  • T1547.003: Boot or Logon Autostart Execution: Time Providers
  • T1547.004: Boot or Logon Autostart Execution: Winlogon Helper DLL
  • T1547.005: Boot or Logon Autostart Execution: Security Support Provider
  • T1547.009: Boot or Logon Autostart Execution: Shortcut Modification
  • T1547.012: Boot or Logon Autostart Execution: Print Processors
  • T1547.014: Boot or Logon Autostart Execution: Active Setup
  • T1553: Subvert Trust Controls
  • T1553.004: Subvert Trust Controls: Install Root Certificate
  • T1556.002: Modify Authentication Process: Password Filter DLL
  • T1564.006: Hide Artifacts: Run Virtual Instance
  • T1574: Hijack Execution Flow
  • T1574.007: Hijack Execution Flow: Path Interception by PATH Environment Variable
  • T1574.009: Hijack Execution Flow: Path Interception by Unquoted Path

Referenzen

Dieses Tool wäre ohne die erstaunliche InfoSec-Community nicht möglich – die wichtigsten Referenzen, die ich verwendet habe, sind unten aufgeführt.

  • PersistenceSniper
  • MITRE ATT&CK
  • Persistence Info GitHub
  • Hexacorn - Persistence Series
  • IRED
  • PayloadsAllTheThings

Weitere Referenzen

  • https://twitter.com/Laughing_Mantis/status/1645268114966470662
  • https://shellz.club/posts/a-novel-method-for-bypass-ETW/
  • https://pentestlab.blog/2023/03/20/persistence-service-control-manager/
  • https://ristbs.github.io/2023/02/15/hijack-explorer-context-menu-for-persistence-and-fun.html
  • https://pentestlab.blog/2022/02/14/persistence-notepad-plugins/
Tool herunterladen
  • Terminal Services InitialProgram-Prüfung
  • RDP-Startprogramme
  • Microsoft-Telemetriebefehle
  • Nicht standardmäßige AMSI-Anbieter
  • Internet Settings LUI-Fehler-DLL
  • PeerDist\Extension-DLL
  • ErrorHandler.CMD-Prüfungen
  • Eingebaute Diagnose-DLL
  • MiniDumpAuxiliary-DLLs
  • KnownManagedDebugger-DLLs
  • WOW64-Kompatibilitätsschicht-DLLs
  • EventViewer MSC-Hijack
  • Scan von Deinstallationszeichenfolgen
  • PolicyManager-DLLs
  • SEMgr-Wallet-DLL
  • WER-Laufzeit-Ausnahmehandler
  • HTML Help (.CHM)
  • Remote-Access-Tool-Artefakte (Dateien, Verzeichnisse, Registrierungsschlüssel)
  • ContextMenuHandler-DLL-Prüfungen
  • Vorhandensein von Office AI.exe
  • Notepad++-Plugins
  • MSDTC-Registrierungs-Hijacks
  • Narrator-DLL-Hijack (MSTTSLocEnUS.DLL)
  • Prüfungen auf verdächtige Dateispeicherorte
  • BootVerificationProgram-Prüfung
  • DiskCleanupHandler-Prüfungen
  • Low-Integrity-Isolation-Prüfungen
  • Verdächtig benannte installierte Software
  • Status des Verzeichnisdienst-Wiederherstellungsmodus
  • Änderungen am Sicherheitsdeskriptor des Dienstkontrollmanagers
  • Windows-Subsystem für Linux-VMs
  • Analyse von Browsererweiterungen