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
chainsaw — Durchsuchen und Jagen Sie schnell Windows-Forensik-Artefakte | Kitploit
Tools/GitHubGitHub/withsecureopensource/chainsaw
DefensivwerkzeugeSchwachstellenanalyseForensikDigitale ForensikBedrohungsanalyseIncident ResponseLog-Analyse
GitHubwithsecureopensource/chainsaw

chainsaw

Durchsuchen und Jagen Sie schnell Windows-Forensik-Artefakte

Repository anzeigen
3.7k3054vor 18 TagenVon 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

Schnelle Suche und Jagd in Windows-Forensik-Artefakten


Chainsaw bietet eine leistungsstarke „First-Response“-Fähigkeit, um Bedrohungen in Windows-Forensik-Artefakten wie Event Logs und der MFT-Datei schnell zu identifizieren. Chainsaw bietet eine generische und schnelle Methode zur Suche in Event Logs nach Schlüsselwörtern sowie zur Identifizierung von Bedrohungen mithilfe der integrierten Unterstützung für Sigma-Erkennungsregeln und über benutzerdefinierte Chainsaw-Erkennungsregeln.

Funktionen

  • 🎯 Bedrohungen mit Sigma-Erkennungsregeln und benutzerdefinierten Chainsaw-Erkennungsregeln aufspüren
  • 🔍 Forensische Artefakte durch String-Matching und Regex-Muster suchen und extrahieren
  • 📅 Ausführungszeitlinien durch Analyse von Shimcache-Artefakten und deren Anreicherung mit Amcache-Daten erstellen
  • 💡 Die SRUM-Datenbank analysieren und Einblicke dazu liefern
  • ⬇️ Den Rohinhalt forensischer Artefakte (MFT, Registry-Hives, ESE-Datenbanken) ausgeben
  • ⚡ Blitzschnell, in Rust geschrieben, unter Verwendung der EVTX parser-Bibliothek von @OBenamram
  • 🪶 Saubere und leichtgewichtige Ausführungs- und Ausgabeformate ohne unnötigen Ballast
  • 🔥 Dokument-Tagging (Erkennungslogik-Matching) bereitgestellt durch die TAU Engine-Bibliothek
  • 📑 Ergebnisse in verschiedenen Formaten ausgeben, wie ASCII-Tabellenformat, CSV-Format und JSON-Format
  • 💻 Kann auf MacOS, Linux und Windows ausgeführt werden

  • Inhaltsverzeichnis

    • Funktionen
    • Warum Chainsaw?
    • Jagdlogik für Windows Event Logs
    • Kurzanleitung
      • Herunterladen und Ausführen
      • Installieren/Bauen mit Nix
      • EDR- und AV-Warnungen
      • Was sich in Chainsaw v2 geändert hat
    • Beispiele
      • Suchen
      • Jagen
      • Analyse
        • Shimcache
        • SRUM (System Resource Usage Monitor)
        • Lücken (Erkennung von Lücken im Event Log)
      • Ausgeben
    • Danksagungen

    Erweiterte Informationen finden Sie im Wiki für dieses Tool: https://github.com/WithSecureLabs/chainsaw/wiki

    Warum Chainsaw?

    Bei WithSecure Countercept erfassen wir über unseren EDR-Agenten eine breite Palette von Telemetriequellen von Endpunkten, um unseren Managed-Detection-and-Response-Service bereitzustellen. Es gibt jedoch Umstände, in denen wir forensische Artefakte schnell analysieren müssen, die nicht von unserem EDR erfasst wurden – ein häufiges Beispiel sind Incident-Response-Untersuchungen in einer Umgebung, in der unser EDR zum Zeitpunkt der Kompromittierung nicht installiert war. Chainsaw wurde entwickelt, um unseren Threat Huntern und Incident-Response-Beratern ein Tool für die schnelle Triage forensischer Artefakte in diesen Situationen bereitzustellen.

    Windows Event Logs

    Windows Event Logs bieten eine reichhaltige Quelle forensischer Informationen für Threat Hunting und Incident-Response-Untersuchungen. Leider kann die Verarbeitung und Durchsuchung von Event Logs ein langsamer und zeitaufwändiger Prozess sein und erfordert in den meisten Fällen den Overhead umgebender Infrastruktur – wie eines ELK-Stacks oder einer Splunk-Instanz –, um effizient durch die Logdaten zu jagen und Erkennungslogik anzuwenden. Dieser Overhead führt oft dazu, dass Blue Teams nicht in der Lage sind, Windows Event Logs schnell zu triagieren, um die für die Weiterführung ihrer Untersuchungen erforderliche Richtung und Schlussfolgerungen zu liefern. Chainsaw löst dieses Problem, da es die schnelle Suche und Jagd durch Windows Event Logs ermöglicht.

    Zum Zeitpunkt der Erstellung gibt es nur sehr wenige Open-Source-Standalone-Tools, die eine einfache und schnelle Methode zur Triage von Windows Event Logs bieten, interessante Elemente innerhalb der Logs identifizieren und ein Erkennungslogik-Regelformat (wie Sigma) anwenden, um Anzeichen bösartiger Aktivität zu erkennen. In unseren Tests hatten die vorhandenen Tools Schwierigkeiten, Erkennungslogik effizient auf große Mengen von Event Logs anzuwenden, was sie für Szenarien ungeeignet machte, in denen eine schnelle Triage erforderlich ist.

    Jagdlogik für Windows Event Logs

    Sigma-Regelabgleich

    Mit den Parametern --sigma und --mapping können Sie ein Verzeichnis angeben, das eine Teilmenge von SIGMA-Erkennungsregeln (oder einfach das gesamte SIGMA-Git-Repo) enthält, und Chainsaw lädt, konvertiert und führt diese Regeln automatisch gegen die bereitgestellten Event Logs aus. Die Mapping-Datei teilt Chainsaw mit, welche Felder in den Event Logs für den Regelabgleich verwendet werden sollen. Standardmäßig unterstützt Chainsaw eine breite Palette von Event-Log-Typen, einschließlich, aber nicht beschränkt auf:

    EreignistypEreignis-ID
    Prozesserstellung (Sysmon)1
    Netzwerkverbindungen (Sysmon)3
    Image-Ladevorgänge (Sysmon)7
    Dateierstellung (Sysmon)11
    Registry-Ereignisse (Sysmon)13
    Powershell-Skriptblöcke4104
    Prozesserstellung4688
    Erstellung geplanter Aufgaben4698
    Diensterstellung7045

    Siehe die Mapping-Datei für die vollständige Liste der Felder, die für die Regelerkennung verwendet werden, und erweitern Sie sie gerne nach Ihren Bedürfnissen.

    Chainsaw-Erkennungsregeln

    Zusätzlich zur Unterstützung von Sigma-Regeln unterstützt Chainsaw auch ein benutzerdefiniertes Regelformat. Im Repository finden Sie ein rules-Verzeichnis, das verschiedene Chainsaw-Regeln enthält, die es Benutzern ermöglichen:

    1. Windows Defender-, F-Secure-, Sophos- und Kaspersky-AV-Warnungen zu extrahieren und zu parsen
    2. Zu erkennen, wenn wichtige Event Logs gelöscht oder der Event-Log-Dienst gestoppt wird
    3. Benutzer, die erstellt oder zu sensiblen Benutzergruppen hinzugefügt werden
    4. Remote-Login-Ereignisse (Service, RDP, Netzwerk usw.). Dies hilft Jägern, Quellen lateraler Bewegung zu identifizieren
    5. Brute-Force-Angriffe auf lokale Benutzerkonten

    Kurzanleitung

    Herunterladen und Ausführen

    Mit der Veröffentlichung von Chainsaw v2 haben wir beschlossen, die Repositories Sigma Rules und EVTX-Attack-Samples nicht mehr als Chainsaw-Submodule einzubinden. Wir empfehlen, diese Repositories separat zu klonen, um sicherzustellen, dass Sie die neuesten Versionen haben.

    Wenn Sie dennoch ein All-in-One-Paket benötigen, das die Chainsaw-Binary, Sigma-Regeln und Beispiel-Event-Logs enthält, können Sie es aus dem Releases-Bereich dieses GitHub-Repos herunterladen. In diesem Releases-Bereich finden Sie auch vorkompilierte reine Binary-Versionen von Chainsaw für verschiedene Plattformen und Architekturen.

    Wenn Sie Chainsaw selbst kompilieren möchten, können Sie das Chainsaw-Repo klonen:

    git clone https://github.com/WithSecureLabs/chainsaw.git

    und den Code selbst kompilieren, indem Sie Folgendes ausführen: cargo build --release. Sobald der Build abgeschlossen ist, finden Sie eine Kopie der kompilierten Binary im Ordner target/release.

    Stellen Sie sicher, dass Sie mit dem --release-Flag bauen, da dies eine deutlich schnellere Ausführungszeit gewährleistet.

    Wenn Sie schnell sehen möchten, wie Chainsaw bei der Ausführung aussieht, können Sie die Repositories Sigma Rules und EVTX-Attack-Samples klonen:``` git clone https://github.com/SigmaHQ/sigma git clone https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES.git

    root@kitploit:~
    und führen Sie dann Chainsaw mit den untenstehenden Parametern aus:```
    ./chainsaw hunt EVTX-ATTACK-SAMPLES/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
    

    Installation/Build mit Nix```

    ├───devShells │ └───x86_64-linux │ └───default: development environment 'nix-shell' ├───formatter │ └───x86_64-linux: package 'alejandra-3.1.0' └───packages └───x86_64-linux ├───chainsaw: package 'chainsaw-2.10.1' └───default: package 'chainsaw-2.10.1'

    root@kitploit:~
    Chainsaw ist als Paket über [nixpkgs](https://search.nixos.org/packages?query=chainsaw) verfügbar.
    Wenn Sie NixOS verwenden, fügen Sie einfach `chainsaw` zu Ihrer Systemkonfigurationsdatei hinzu.
    
    Wenn Sie jedoch nicht NixOS verwenden, können Sie Chainsaw trotzdem über Nix installieren. Die empfohlene Methode ist `nix-shell`, wodurch Ihre $PATH-Umgebungsvariable vorübergehend geändert wird.
    Führen Sie dazu bitte Folgendes aus:```
    nix-shell -p chainsaw
    

    Du kannst auch die Tatsache nutzen, dass dieses Repo ein Flake ist, und Folgendes ausführen:``` nix profile install github:WithSecureLabs/chainsaw

    root@kitploit:~
    Wenn du Chainsaw jedoch selbst mit Nix bauen möchtest, kannst du erneut `flake.nix` verwenden, das mit diesem Repository bereitgestellt wird.
    Um die Binärdatei zu bauen, führe bitte Folgendes im Stammverzeichnis des geklonten Repos aus```
    nix build .#
    

    Dadurch wird das Verzeichnis ./result erstellt, mit der Chainsaw-Binärdatei unter ./result/bin/chainsaw.

    EDR- und AV-Warnungen

    Beim Herunterladen und Ausführen von Chainsaw kann es vorkommen, dass Ihre lokale EDR-/AntiVirus-Engine Chainsaw als bösartig erkennt. Beispiele hierfür finden Sie in den folgenden GitHub-Issues: Beispiel1, Beispiel2.

    Diese Warnungen sind in der Regel auf die Beispiel-Ereignisprotokolle und/oder Sigma-Regeln zurückzuführen, die Verweise auf bösartige Zeichenfolgen (z. B. "mimikatz") enthalten. Wir haben auch Fälle gesehen, in denen die Chainsaw-Binärdatei von einer kleinen Teilmenge von Anti-Virus-Engines erkannt wurde, wahrscheinlich aufgrund einer Form der Heuristik-Erkennung.

    Was hat sich in Chainsaw v2 geändert?

    Im Juli 2022 haben wir Version 2 von Chainsaw veröffentlicht, die eine umfassende Überarbeitung der Funktionsweise von Chainsaw darstellt. Chainsaw v2 enthält mehrere bedeutende Verbesserungen, darunter die folgenden Highlights:

    • Ein verbesserter Ansatz zur Zuordnung von Sigma-Regeln, der zu einer deutlichen Erhöhung der Anzahl unterstützter Chainsaw-Regeln und Ereignisprotokoll-Ereignistypen führt.
    • Verbesserte CLI-Ausgabe, die eine Momentaufnahme aller Ereignisdaten für Ereignisprotokolle mit Erkennungen anzeigt.
    • Unterstützung für das Laden und Parsen von Ereignisprotokollen im JSON- und XML-Format.
    • Sauberere und einfachere Kommandozeilenargumente für die Hunt- und Search-Funktionen.
    • Zusätzliche optionale Ausgabeinformationen wie Regelautor, Regelstatus, Regelstufe usw.
    • Die Möglichkeit, geladene Regeln nach Status, Art und Schweregrad zu filtern.
    • Die integrierten Chainsaw-Erkennungsregeln wurden in dedizierte Chainsaw-Regeldateien aufgeteilt
    • Eine Bereinigung und Neuschreibung des Chainsaw-Codes zur Verbesserung der Lesbarkeit und zur Reduzierung des Aufwands für Community-Beiträge.

    Wenn Sie dennoch Version 1 von Chainsaw verwenden möchten, finden Sie kompilierte Binärdateien im Releases-Bereich, oder Sie können auf den Quellcode im v1.x.x-Branch zugreifen. Bitte beachten Sie, dass Chainsaw v1 nicht mehr gepflegt wird und alle Benutzer auf Chainsaw v2 umsteigen sollten.

    Ein riesiges Dankeschön an @AlexKornitzer, der es geschafft hat, die "Christmas Project"-Codebasis von Chainsaw v1 in v2 in ein ausgereiftes Produkt zu verwandeln.

    Beispiele

    Suchen

    root@kitploit:~
      USAGE:
          chainsaw search [FLAGS] [OPTIONS] <pattern> [--] [path]...
    
      FLAGS:
          -h, --help            Prints help information
          -i, --ignore-case     Ignore the case when searching patterns
              --json            Print the output in json format
              --load-unknown    Allow chainsaw to try and load files it cannot identify
              --local           Output the timestamp using the local machine's timestamp
          -q                    Suppress informational output
              --skip-errors     Continue to search when an error is encountered
          -V, --version         Prints version information
    
      OPTIONS:
              --extension <extension>...    Only search through files with the provided extension
              --from <from>                 The timestamp to search from. Drops any documents older than the value provided
          -o, --output <output>             The path to output results to
          -e, --regex <pattern>...          A string or regular expression pattern to search for
          -t, --tau <tau>...                Tau expressions to search with. e.g. 'Event.System.EventID: =4104'
              --timestamp <timestamp>       The field that contains the timestamp
              --timezone <timezone>         Output the timestamp using the timezone provided
              --to <to>                     The timestamp to search up to. Drops any documents newer than the value provided
    
      ARGS:
          <pattern>    A string or regular expression pattern to search for. Not used when -e or -t is specified
          <path>...    The paths containing event logs to load and hunt through
    

    Befehlsbeispiele

    Alle .evtx-Dateien nach der Zeichenfolge "mimikatz" ohne Berücksichtigung der Groß-/Kleinschreibung durchsuchen

    root@kitploit:~
    ./chainsaw search mimikatz -i evtx_attack_samples/
    

    *Alle .evtx-Dateien nach PowerShell-Skriptblock-Ereignissen durchsuchen (Ereignis-ID 4014)

    root@kitploit:~
    ./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/
    

    Ein bestimmtes evtx-Protokoll nach Anmeldeereignissen mit einem passenden Regex-Muster durchsuchen, Ausgabe im JSON-Format

    root@kitploit:~
    ./chainsaw search -e "DC[0-9].insecurebank.local" evtx_attack_samples --json
    

    Jagen

    root@kitploit:~
      USAGE:
          chainsaw hunt [FLAGS] [OPTIONS] [--] [path]...
    
      FLAGS:
              --csv             Print the output in csv format
              --full            Print the full values for the tabular output
          -h, --help            Prints help information
              --json            Print the output in json format
              --load-unknown    Allow chainsaw to try and load files it cannot identify
              --local           Output the timestamp using the local machine's timestamp
              --log             Print the output in log like format
              --metadata        Display additional metadata in the tablar output
          -q                    Suppress informational output
              --skip-errors     Continue to hunt when an error is encountered
          -V, --version         Prints version information
    
      OPTIONS:
              --column-width <column-width>    Set the column width for the tabular output
              --extension <extension>...       Only hunt through files with the provided extension
              --from <from>                    The timestamp to hunt from. Drops any documents older than the value provided
              --kind <kind>...                 Restrict loaded rules to specified kinds
              --level <level>...               Restrict loaded rules to specified levels
          -m, --mapping <mapping>...           A mapping file to tell Chainsaw how to use third-party rules
          -o, --output <output>                A path to output results to
          -r, --rule <rule>...                 A path containing additional rules to hunt with
          -s, --sigma <sigma>...               A path containing Sigma rules to hunt with
              --status <status>...             Restrict loaded rules to specified statuses
              --timezone <timezone>            Output the timestamp using the timezone provided
              --to <to>                        The timestamp to hunt up to. Drops any documents newer than the value provided
    
      ARGS:
          <rules>      The path to a collection of rules to use for hunting
          <path>...    The paths containing event logs to load and hunt through
    

    Befehlsbeispiele

    Alle evtx-Dateien mit Sigma-Regeln für die Erkennungslogik durchsuchen

    root@kitploit:~
    ./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
    

    Alle evtx-Dateien mit Sigma-Regeln und Chainsaw-Regeln für die Erkennungslogik durchsuchen und im CSV-Format in den Ergebnisordner ausgeben

    root@kitploit:~
    ./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml -r rules/ --csv --output results
    

    Alle evtx-Dateien mit Sigma-Regeln für die Erkennungslogik durchsuchen, nur zwischen bestimmten Zeitstempeln suchen und die Ergebnisse im JSON-Format ausgeben

    root@kitploit:~
     ./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml --from "2019-03-17T19:09:39" --to "2019-03-17T19:09:50" --json
    

    Ausgabe

    root@kitploit:~
    $ ./chainsaw hunt -r rules/ evtx_attack_samples -s sigma/rules --mapping mappings/sigma-event-logs-all.yml --level critical
    
         ██████╗██╗  ██╗ █████╗ ██╗███╗   ██╗███████╗ █████╗ ██╗    ██╗
        ██╔════╝██║  ██║██╔══██╗██║████╗  ██║██╔════╝██╔══██╗██║    ██║
        ██║     ███████║███████║██║██╔██╗ ██║███████╗███████║██║ █╗ ██║
        ██║     ██╔══██║██╔══██║██║██║╚██╗██║╚════██║██╔══██║██║███╗██║
        ╚██████╗██║  ██║██║  ██║██║██║ ╚████║███████║██║  ██║╚███╔███╔╝
         ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝ ╚══╝╚══╝
            By WithSecure Countercept (@FranticTyping, @AlexKornitzer)
    
        [+] Loading detection rules from: ../../rules/, /tmp/sigma/rules
        [+] Loaded 129 detection rules (198 not loaded)
        [+] Loading event logs from: ../../evtx_attack_samples (extensions: .evtx)
        [+] Loaded 268 EVTX files (37.5 MB)
        [+] Hunting: [========================================] 268/268
    
        [+] Group: Antivirus
        ┌─────────────────────┬────────────────────┬──────────┬───────────┬─────────────┬────────────────────────────────┬──────────────────────────────────┬────────────────────┐
        │      timestamp      │     detections     │ Event ID │ Record ID │  Computer   │          Threat Name           │           Threat Path            │        User        │
        ├─────────────────────┼────────────────────┼──────────┼───────────┼─────────────┼────────────────────────────────┼──────────────────────────────────┼────────────────────┤
        │ 2019-07-18 20:40:00 │ ‣ Windows Defender │ 1116     │ 37        │ MSEDGEWIN10 │ Trojan:PowerShell/Powersploit. │ file:_C:\AtomicRedTeam\atomic-   │ MSEDGEWIN10\IEUser │
        │                     │                    │          │           │             │ M                              │ red-team-master\atomics\T1056\   │                    │
        │                     │                    │          │           │             │                                │ Get-Keystrokes.ps1               │                    │
        ├─────────────────────┼────────────────────┼──────────┼───────────┼─────────────┼────────────────────────────────┼──────────────────────────────────┼────────────────────┤
        │ 2019-07-18 20:53:31 │ ‣ Windows Defender │ 1117     │ 106       │ MSEDGEWIN10 │ Trojan:XML/Exeselrun.gen!A     │ file:_C:\AtomicRedTeam\atomic-   │ MSEDGEWIN10\IEUser │
        │                     │                    │          │           │             │                                │ red-team-master\atomics\T1086\   │                    │
        │                     │                    │          │           │             │                                │ payloads\test.xsl                │                    │
        └─────────────────────┴────────────────────┴──────────┴───────────┴─────────────┴────────────────────────────────┴──────────────────────────────────┴────────────────────┘
    
        [+] Group: Log Tampering
        ┌─────────────────────┬───────────────────────────────┬──────────┬───────────┬────────────────────────────────┬───────────────┐
        │      timestamp      │          detections           │ Event ID │ Record ID │            Computer            │     User      │
        ├─────────────────────┼───────────────────────────────┼──────────┼───────────┼────────────────────────────────┼───────────────┤
        │ 2019-01-20 07:00:50 │ ‣ Security Audit Logs Cleared │ 1102     │ 32853     │ WIN-77LTAPHIQ1R.example.corp   │ Administrator │
        └─────────────────────┴───────────────────────────────┴──────────┴───────────┴────────────────────────────────┴───────────────┘[+] Group: Sigma
        ┌─────────────────────┬────────────────────────────────┬───────┬────────────────────────────────┬──────────┬───────────┬──────────────────────────┬──────────────────────────────────┐
        │      timestamp      │           detections           │ count │     Event.System.Provider      │ Event ID │ Record ID │         Computer         │            Event Data            │
        ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
        │ 2019-04-29 20:59:14 │ ‣ Malicious Named Pipe         │ 1     │ Microsoft-Windows-Sysmon       │ 18       │ 8046      │ IEWIN7                   │ ---                              │
        │                     │                                │       │                                │          │           │                          │ Image: System                    │
        │                     │                                │       │                                │          │           │                          │ PipeName: "\\46a676ab7f179e511   │
        │                     │                                │       │                                │          │           │                          │ e30dd2dc41bd388"                 │
        │                     │                                │       │                                │          │           │                          │ ProcessGuid: 365ABB72-D9C4-5CC   │
        │                     │                                │       │                                │          │           │                          │ 7-0000-0010EA030000              │
        │                     │                                │       │                                │          │           │                          │ ProcessId: 4                     │
        │                     │                                │       │                                │          │           │                          │ RuleName: ""                     │
        │                     │                                │       │                                │          │           │                          │ UtcTime: "2019-04-29 20:59:14.   │
        │                     │                                │       │                                │          │           │                          │ 430"                             │
        ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
        │ 2019-04-30 20:26:51 │ ‣ CobaltStrike Service         │ 1     │ Microsoft-Windows-Sysmon       │ 13       │ 9806      │ IEWIN7                   │ ---                              │
        │                     │ Installations in Registry      │       │                                │          │           │                          │ Details: "%%COMSPEC%% /b /c st   │
        │                     │                                │       │                                │          │           │                          │ art /b /min powershell.exe -no   │
        │                     │                                │       │                                │          │           │                          │ p -w hidden -noni -c \"if([Int   │
        │                     │                                │       │                                │          │           │                          │ Ptr]::Size -eq 4){$b='powershe   │
        │                     │                                │       │                                │          │           │                          │ ll.exe'}else{$b=$env:windir+'\   │
        │                     │                                │       │                                │          │           │                          │ \syswow64\\WindowsPowerShell\\   │
        │                     │                                │       │                                │          │           │                          │ v1.0\\powershell.exe'};$s=New-   │
        │                     │                                │       │                                │          │           │                          │ Object System.Diagnostics.Proc   │
        │                     │                                │       │                                │          │           │                          │ essStartInfo;$s.FileName=$b;$s   │
        │                     │                                │       │                                │          │           │                          │ .Arguments='-noni -nop -w hidd   │
        │                     │                                │       │                                │          │           │                          │ en -c &([scriptblock]::create(   │
        │                     │                                │       │                                │          │           │                          │ (New-Object IO.StreamReader(Ne   │
        │                     │                                │       │                                │          │           │                          │ w-Object IO.Compression.GzipSt   │
        │                     │                                │       │                                │          │           │                          │ ream((New-Object IO.MemoryStre   │
        │                     │                                │       │                                │          │           │                          │ am(,[Convert]::FromBase64Strin   │
        │                     │                                │       │                                │          │           │                          │ g(''H4sIAIuvyFwCA7VW+2/aSBD+OZ   │
        │                     │                                │       │                                │          │           │                          │ H6P1...                          │
        │                     │                                │       │                                │          │           │                          │ (use --full to show all content) │
        │                     │                                │       │                                │          │           │                          │ EventType: SetValue              │
        │                     │                                │       │                                │          │           │                          │ Image: "C:\\Windows\\system32\   │
        │                     │                                │       │                                │          │           │                          │ \services.exe"                   │
        │                     │                                │       │                                │          │           │                          │ ProcessGuid: 365ABB72-2586-5CC   │
        │                     │                                │       │                                │          │           │                          │ 9-0000-0010DC530000              │
        │                     │                                │       │                                │          │           │                          │ ProcessId: 460                   │
        │                     │                                │       │                                │          │           │                          │ RuleName: ""                     │
        │                     │                                │       │                                │          │           │                          │ TargetObject: "HKLM\\System\\C   │
        │                     │                                │       │                                │          │           │                          │ urrentControlSet\\services\\he   │
        │                     │                                │       │                                │          │           │                          │ llo\\ImagePath"                  │
        │                     │                                │       │                                │          │           │                          │ UtcTime: "2019-04-30 20:26:51.   │
        │                     │                                │       │                                │          │           │                          │ 934"                             │
        ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
        │ 2019-05-12 12:52:43 │ ‣ Meterpreter or Cobalt        │ 1     │ Service Control Manager        │ 7045     │ 10446     │ IEWIN7                   │ ---                              │
        │                     │ Strike Getsystem Service       │       │                                │          │           │                          │ AccountName: LocalSystem         │
        │                     │ Installation                   │       │                                │          │           │                          │ ImagePath: "%COMSPEC% /c ping    │
        │                     │                                │       │                                │          │           │                          │ -n 1 127.0.0.1 >nul && echo 'W   │
        │                     │                                │       │                                │          │           │                          │ inPwnage' > \\\\.\\pipe\\WinPw   │
        │                     │                                │       │                                │          │           │                          │ nagePipe"                        │
        │                     │                                │       │                                │          │           │                          │ ServiceName: WinPwnage           │
        │                     │                                │       │                                │          │           │                          │ ServiceType: user mode service   │
        │                     │                                │       │                                │          │           │                          │ StartType: demand start          │
        ├─────────────────────┼────────────────────────────────┼───────┼────────────────────────────────┼──────────┼───────────┼──────────────────────────┼──────────────────────────────────┤
        │ 2019-06-21 07:35:37 │ ‣ Dumpert Process Dumper       │ 1     │ Microsoft-Windows-Sysmon       │ 11       │ 238375    │ alice.insecurebank.local │ ---                              │
        │                     │                                │       │                                │          │           │                          │ CreationUtcTime: "2019-06-21 0   │
        │                     │                                │       │                                │          │           │                          │ 6:53:03.227"                     │
        │                     │                                │       │                                │          │           │                          │ Image: "C:\\Users\\administrat   │
        │                     │                                │       │                                │          │           │                          │ or\\Desktop\\x64\\Outflank-Dum   │
        │                     │                                │       │                                │          │           │                          │ pert.exe"                        │
        │                     │                                │       │                                │          │           │                          │ ProcessGuid: ECAD0485-88C9-5D0   │
        │                     │                                │       │                                │          │           │                          │ C-0000-0010348C1D00              │
        │                     │                                │       │                                │          │           │                          │ ProcessId: 3572                  │
        │                     │                                │       │                                │          │           │                          │ RuleName: ""                     │
        │                     │                                │       │                                │          │           │                          │ TargetFilename: "C:\\Windows\\   │
        │                     │                                │       │                                │          │           │                          │ Temp\\dumpert.dmp"               │
        │                     │                                │       │                                │          │           │                          │ UtcTime: "2019-06-21 07:35:37.   │
        │                     │                                │       │                                │          │           │                          │ 324"                             │
        └─────────────────────┴────────────────────────────────┴───────┴────────────────────────────────┴──────────┴───────────┴──────────────────────────┴──────────────────────────────────┘
    

    Analysieren

    Shimcache

    root@kitploit:~
    COMMAND:
        analyse shimcache                 Create an execution timeline from the shimcache with optional amcache enrichments
    
    USAGE:
        chainsaw analyse shimcache [OPTIONS] <SHIMCACHE>
    
    ARGUMENTS:
        <SHIMCACHE>                       The path to the shimcache artefact (SYSTEM registry file)
    
    OPTIONS:
        -e, --regex <pattern>             A string or regular expression for detecting shimcache entries whose timestamp matches their insertion time
        -r, --regexfile <REGEX_FILE>      The path to a newline delimited file containing regex patterns for detecting shimcache entries whose timestamp matches their insertion time
        -o, --output <OUTPUT>             The path to output the result csv file
        -a, --amcache <AMCACHE>           The path to the amcache artefact (Amcache.hve) for timeline enrichment
        -p, --tspair                      Enable near timestamp pair detection between shimcache and amcache for finding additional insertion timestamps for shimcache entries
        -h, --help                        Print help
    
    • Eine Beispiel-Pattern-Datei für den Parameter --regexfile ist in analysis/shimcache_patterns.txt enthalten.
    • Regex-Patterns werden auf Pfade in Shimcache-Einträgen abgeglichen, die in Kleinbuchstaben umgewandelt wurden.
    Befehlsbeispiele

    Analysiere ein Shimcache-Artefakt mit den bereitgestellten Regex-Patterns und verwende Amcache-Anreicherung mit aktivierter Near-Timestamp-Pair-Erkennung. Ausgabe in eine CSV-Datei.

    root@kitploit:~
    ./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt --amcache ./Amcache.hve --tspair --output ./output.csv
    

    Analysiere ein Shimcache-Artefakt mit den bereitgestellten Regex-Patterns (ohne Amcache-Anreicherung). Ausgabe auf das Terminal.

    root@kitploit:~
    ./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt
    

    Gaps (Erkennung von Lücken im Ereignisprotokoll)

    Erkennt zwei Indikatoren für selektive Manipulation des Ereignisprotokolls innerhalb einer oder mehrerer .evtx-Dateien:

    • RecordID-Lücken: Pro Kanal sind die EventRecordID-Werte normalerweise monoton steigend und ohne Lücken. Eine Lücke innerhalb einer einzelnen evtx-Datei (d. h. keine Log-Rotation-Grenze) ist ungewöhnlich und stellt den Fingerabdruck dar, den Tools hinterlassen, die einzelne Datensätze chirurgisch löschen (z. B. Techniken im Stil von Eventlogedit), ohne das laute „Log cleared“-Ereignis (EID 1102) auszulösen.

    • Zeitlücken: Unerwartet lange Ruhefenster zwischen aufeinanderfolgenden Ereignissen auf einem normalerweise geschwätzigen Kanal können darauf hindeuten, dass Datensätze innerhalb dieses Fensters entfernt wurden. Der Schwellenwert ist konfigurierbar; das Baselining pro Host bleibt dem Analysten überlassen.

      COMMAND: analyse gaps Detect chronological or RecordID gaps in evtx files (possible selective record deletion)

      USAGE: chainsaw analyse gaps [OPTIONS] [PATH]...

      ARGUMENTS: [PATH]... The path(s) to evtx files or directories containing them

      OPTIONS: --min-time-gap-minutes Minimum time gap (in minutes) between consecutive events to flag as suspicious [default: 30] --no-record-id-gaps Skip RecordID gap detection (only flag time gaps) --no-time-gaps Skip time gap detection (only flag RecordID gaps) -j, --json Print the output in json format -o, --output Save the output to a file -q Suppress informational output --skip-errors Continue when an error is encountered -h, --help Print help

    Befehlsbeispiele

    Durchsuche ein Verzeichnis mit evtx-Dateien nach RecordID- und Zeitlücken mit dem Standard-Schwellenwert von 30 Minuten:

    root@kitploit:~
    ./chainsaw analyse gaps ./Logs/
    

    Suche nur nach selektiv gelöschten Datensätzen (RecordID-Lücken) und gib maschinenlesbares JSON aus:

    root@kitploit:~
    ./chainsaw analyse gaps ./Logs/ --no-time-gaps --json -o ./gaps.json
    

    SRUM (System Resource Usage Monitor)

    Der in Chainsaw implementierte SRUM-Datenbank-Parser unterscheidet sich von anderen Parsern, da er nicht auf hartcodierte Werte zu den Tabellen angewiesen ist. Die Informationen werden direkt aus der SOFTWARE-Hive extrahiert, die ein obligatorisches Argument ist. Ziel ist es, Fehler im Zusammenhang mit unbekannten Tabellen zu vermeiden.

    root@kitploit:~
    COMMAND:
        analyse srum                             Analyse the SRUM database
    
    USAGE:
        chainsaw analyse srum [OPTIONS] --software <SOFTWARE_HIVE_PATH> <SRUM_PATH>
    
    ARGUMENTS:
        <SRUM_PATH>                              The path to the SRUM database
    
    OPTIONS:
        -s, --software <SOFTWARE_HIVE_PATH>      The path to the SOFTWARE hive
            --stats-only                         Only output details about the SRUM database
        -q                                       Suppress informational output
        -o, --output <OUTPUT>                    Save the output to a file
        -h, --help                               Print help
    
    Befehlsbeispiel

    Analysiere die SRUM-Datenbank (die SOFTWARE-Hive ist obligatorisch)

    root@kitploit:~
    ./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat --output ./output.json
    
    Ausgabe
    root@kitploit:~
    $ ./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat -o ./output.json
    
         ██████╗██╗  ██╗ █████╗ ██╗███╗   ██╗███████╗ █████╗ ██╗    ██╗
        ██╔════╝██║  ██║██╔══██╗██║████╗  ██║██╔════╝██╔══██╗██║    ██║
        ██║     ███████║███████║██║██╔██╗ ██║███████╗███████║██║ █╗ ██║
        ██║     ██╔══██║██╔══██║██║██║╚██╗██║╚════██║██╔══██║██║███╗██║
        ╚██████╗██║  ██║██║  ██║██║██║ ╚████║███████║██║  ██║╚███╔███╔╝
         ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝ ╚══╝╚══╝
            By WithSecure Countercept (@FranticTyping, @AlexKornitzer)[+] ESE database file loaded from "/home/user/Documents/SRUDB.dat"
        [+] Parsing the ESE database...
        [+] SOFTWARE hive loaded from "/home/user/Documents/SOFTWARE"
        [+] Parsing the SOFTWARE registry hive...
        [+] Analysing the SRUM database...
        [+] Details about the tables related to the SRUM extensions:
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | Table GUID                               | Table Name                                 | DLL Path                             | Timeframe of the data   | Expected Retention Time |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {5C8CF1C7-7257-4F13-B223-970EF5939312}   | App Timeline Provider                      | %SystemRoot%\System32\eeprov.dll     | 2022-03-10 16:34:59 UTC | 7 days                  |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {B6D82AF1-F780-4E17-8077-6CB9AD8A6FC4}   | Tagged Energy Provider                     | %SystemRoot%\System32\eeprov.dll     | No records              | 3 days                  |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {D10CA2FE-6FCF-4F6D-848E-B2E99266FA86}   | WPN SRUM Provider                          | %SystemRoot%\System32\wpnsruprov.dll | 2022-03-10 20:09:00 UTC | 60 days                 |
        |                                          |                                            |                                      | 2022-03-10 21:09:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {D10CA2FE-6FCF-4F6D-848E-B2E99266FA89}   | Application Resource Usage Provider        | %SystemRoot%\System32\appsruprov.dll | 2022-03-10 16:34:59 UTC | 60 days                 |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {FEE4E14F-02A9-4550-B5CE-5FA2DA202E37}   | Energy Usage Provider                      | %SystemRoot%\System32\energyprov.dll | No records              | 60 days                 |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {FEE4E14F-02A9-4550-B5CE-5FA2DA202E37}LT | Energy Usage Provider (Long Term)          | %SystemRoot%\System32\energyprov.dll | No records              | 1820 days               |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {973F5D5C-1D90-4944-BE8E-24B94231A174}   | Windows Network Data Usage Monitor         | %SystemRoot%\System32\nduprov.dll    | 2022-03-10 16:34:59 UTC | 60 days                 |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {7ACBBAA3-D029-4BE4-9A7A-0885927F1D8F}   | vfuprov                                    | %SystemRoot%\System32\vfuprov.dll    | 2022-03-10 20:09:00 UTC | 60 days                 |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {DA73FB89-2BEA-4DDC-86B8-6E048C6DA477}   | Energy Estimation Provider                 | %SystemRoot%\System32\eeprov.dll     | No records              | 7 days                  |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {DD6636C4-8929-4683-974E-22C046A43763}   | Windows Network Connectivity Usage Monitor | %SystemRoot%\System32\ncuprov.dll    | 2022-03-10 16:34:59 UTC | 60 days                 |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        [+] SRUM database parsed successfully
        [+] Saving output to "/home/user/Documents/output.json"
        [+] Saved output to "/home/user/Documents/output.json"
    
    Forensische Erkenntnisse

    Informationen zu den neuen forensischen Erkenntnissen im Zusammenhang mit diesem Artefakt finden sich im Wiki: https://github.com/WithSecureLabs/chainsaw/wiki/SRUM-Analysis.

    Dumping

    root@kitploit:~
    USAGE:
        chainsaw dump [OPTIONS] <PATH>
    
    ARGUMENTS:
        <PATH>                  The path to an artefact to dump
    
    OPTIONS:
        -j, --json              Dump in json format
            --jsonl             Print the output in jsonl format
            --load-unknown      Allow chainsaw to try and load files it cannot identify
        -o, --output <OUTPUT>   A path to output results to
        -q                      Suppress informational output
            --skip-errors       Continue to hunt when an error is encountered
        -h, --help              Print help
    

    Command Example

    Dump the SOFTWARE hive

    root@kitploit:~
    ./chainsaw dump ./SOFTWARE.hve --json --output ./output.json
    

    Danksagungen

    • EVTX-ATTACK-SAMPLES von @SBousseaden
    • Sigma Erkennungsregeln
    • EVTX parser Bibliothek von @OBenamram
    • TAU Engine Bibliothek von @AlexKornitzer
    • Die Shimcache-Analysefunktion wurde im Rahmen des Projekts CC-Driver entwickelt, das von der Europäischen Union im Rahmen des Forschungs- und Innovationsprogramms Horizon 2020 unter der Finanzhilfevereinbarung Nr. 883543 gefördert wurde
    • DFIRArtifactMuseum von Andrew Rathbun (@bunsofwrath12)
    Tool herunterladen