Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
chainsaw — Pesquise e investigue rapidamente através de artefactos forenses do Windows | Kitploit
Ferramentas/GitHubGitHub/withsecureopensource/chainsaw
Ferramentas DefensivasAnálise de VulnerabilidadesAnálise ForenseForensia DigitalInteligência de AmeaçasResposta a IncidentesAnálise de Logs
GitHubwithsecureopensource/chainsaw

chainsaw

Pesquise e investigue rapidamente através de artefactos forenses do Windows

Ver Repositório
3.7k3054há 18 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Pesquise e Cace Rapidamente em Artefatos Forenses do Windows


O Chainsaw fornece uma poderosa capacidade de 'primeira resposta' para identificar rapidamente ameaças em artefatos forenses do Windows, como Logs de Eventos e o arquivo MFT. O Chainsaw oferece um método genérico e rápido de pesquisar em logs de eventos por palavras-chave, e de identificar ameaças usando suporte integrado para regras de detecção Sigma, e através de regras de detecção personalizadas do Chainsaw.

Recursos

  • 🎯 Cace ameaças usando regras de detecção Sigma e regras de detecção personalizadas do Chainsaw
  • 🔍 Pesquise e extraia artefatos forenses por correspondência de strings e padrões regex
  • 📅 Crie linhas do tempo de execução analisando artefatos Shimcache e enriquecendo-os com dados do Amcache
  • 💡 Analise o banco de dados SRUM e forneça insights sobre ele
  • ⬇️ Extraia o conteúdo bruto de artefatos forenses (MFT, colmeias de registro, bancos de dados ESE)
  • ⚡ Extremamente rápido, escrito em rust, envolvendo a biblioteca EVTX parser de @OBenamram
  • 🪶 Execução e formatos de saída limpos e leves, sem inchaço desnecessário
  • 🔥 Marcação de documentos (correspondência de lógica de detecção) fornecida pela biblioteca TAU Engine
  • 📑 Produza resultados em uma variedade de formatos, como formato de tabela ASCII, formato CSV e formato JSON
  • 💻 Pode ser executado em MacOS, Linux e Windows

  • Índice

    • Recursos
    • Por que Chainsaw?
    • Lógica de Caça para Logs de Eventos do Windows
    • Guia de Início Rápido
      • Baixando e Executando
      • Instalar/Compilar com Nix
      • Avisos de EDR e AV
      • O que mudou no Chainsaw v2
    • Exemplos
      • Pesquisando
      • Caçando
      • Análise
        • Shimcache
        • SRUM (System Resource Usage Monitor)
        • Gaps (detecção de lacunas em logs de eventos)
      • Extraindo
    • Agradecimentos

    Informações estendidas podem ser encontradas na Wiki desta ferramenta: https://github.com/WithSecureLabs/chainsaw/wiki

    Por que Chainsaw?

    Na WithSecure Countercept, ingerimos uma ampla gama de fontes de telemetria de endpoints através do nosso agente EDR para fornecer nosso serviço gerenciado de detecção e resposta. No entanto, há circunstâncias em que precisamos analisar rapidamente artefatos forenses que não foram capturados pelo nosso EDR, um exemplo comum sendo investigações de resposta a incidentes em um ambiente onde nosso EDR não estava instalado no momento do comprometimento. O Chainsaw foi criado para fornecer aos nossos caçadores de ameaças e consultores de resposta a incidentes uma ferramenta para realizar triagem rápida de artefatos forenses nessas circunstâncias.

    Logs de Eventos do Windows

    Os logs de eventos do Windows fornecem uma rica fonte de informações forenses para caça a ameaças e investigações de resposta a incidentes. Infelizmente, processar e pesquisar em logs de eventos pode ser um processo lento e demorado, e na maioria dos casos requer a sobrecarga de infraestrutura ao redor – como uma pilha ELK ou instância Splunk – para caçar eficientemente através dos dados de log e aplicar lógica de detecção. Essa sobrecarga frequentemente significa que as equipes azuis são incapazes de fazer triagem rápida de logs de eventos do Windows para fornecer a direção e as conclusões necessárias para progredir em suas investigações. O Chainsaw resolve esse problema, pois permite a pesquisa e caça rápidas através de logs de eventos do Windows.

    No momento da escrita, existem muito poucas ferramentas de código aberto e autônomas que fornecem um método simples e rápido de triagem de logs de eventos do Windows, identificando elementos interessantes dentro dos logs e aplicando um formato de regra de lógica de detecção (como Sigma) para detectar sinais de atividade maliciosa. Em nossos testes, as ferramentas que existiam lutavam para aplicar eficientemente lógica de detecção a grandes volumes de logs de eventos, tornando-as inadequadas para cenários onde a triagem rápida é necessária.

    Lógica de Caça para Logs de Eventos do Windows

    Correspondência de Regras Sigma

    Usando os parâmetros --sigma e --mapping, você pode especificar um diretório contendo um subconjunto de regras de detecção SIGMA (ou apenas todo o repositório git do SIGMA) e o chainsaw carregará, converterá e executará automaticamente essas regras contra os logs de eventos fornecidos. O arquivo de mapeamento informa ao chainsaw quais campos nos logs de eventos usar para correspondência de regras. Por padrão, o Chainsaw suporta uma ampla gama de tipos de Log de Eventos, incluindo, mas não se limitando a:

    Tipo de EventoID do Evento
    Criação de Processo (Sysmon)1
    Conexões de Rede (Sysmon)3
    Carregamentos de Imagem (Sysmon)7
    Criação de Arquivo (Sysmon)11
    Eventos de Registro (Sysmon)13
    Blocos de Script Powershell4104
    Criação de Processo4688
    Criação de Tarefa Agendada4698
    Criação de Serviço7045

    Veja o arquivo de mapeamento para a lista completa de campos que são usados para detecção de regras, e sinta-se à vontade para estendê-lo conforme suas necessidades.

    Regras de Detecção do Chainsaw

    Além de suportar regras sigma, o Chainsaw também suporta um formato de regra personalizado. No repositório você encontrará um diretório rules que contém várias regras do Chainsaw que permitem aos usuários:

    1. Extrair e analisar alertas de AV do Windows Defender, F-Secure, Sophos e Kaspersky
    2. Detectar logs de eventos chave sendo limpos, ou o serviço de log de eventos sendo interrompido
    3. Usuários sendo criados ou adicionados a grupos de usuários sensíveis
    4. Eventos de Logins Remotos (Serviço, RDP, Rede etc.). Isso ajuda os caçadores a identificar fontes de movimento lateral
    5. Força bruta de contas de usuário locais

    Guia de Início Rápido

    Baixando e Executando

    Com o lançamento do Chainsaw v2, decidimos não mais incluir os repositórios Sigma Rules e EVTX-Attack-Samples como submódulos do Chainsaw. Recomendamos que você clone esses repositórios separadamente para garantir que tenha as versões mais recentes.

    Se você ainda precisa de um pacote tudo-em-um contendo o binário do Chainsaw, regras Sigma e logs de Eventos de exemplo, você pode baixá-lo da seção de releases deste repositório do GitHub. Nesta seção de releases você também encontrará versões pré-compiladas apenas do binário do Chainsaw para várias plataformas e arquiteturas.

    Se você quiser compilar o Chainsaw você mesmo, você pode clonar o repositório do Chainsaw:

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

    e compilar o código você mesmo executando: cargo build --release. Uma vez que a compilação terminar, você encontrará uma cópia do binário compilado na pasta target/release.

    Certifique-se de compilar com a flag --release, pois isso garantirá um tempo de execução significativamente mais rápido.

    Se você quiser ver rapidamente como o Chainsaw se parece quando é executado, você pode clonar os repositórios Sigma Rules e EVTX-Attack-Samples:``` git clone https://github.com/SigmaHQ/sigma git clone https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES.git

    root@kitploit:~
    e em seguida execute o Chainsaw com os parâmetros abaixo:```
    ./chainsaw hunt EVTX-ATTACK-SAMPLES/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
    

    Instalar/compilar com 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, como pacote, está disponível via [nixpkgs](https://search.nixos.org/packages?query=chainsaw).
    Se você estiver usando NixOS, basta adicionar `chainsaw` ao seu arquivo de configuração do sistema.
    
    No entanto, se você não estiver usando NixOS, ainda poderá instalar o Chainsaw via Nix. A forma recomendada é via `nix-shell`, que modificará temporariamente sua variável de ambiente $PATH.
    Para isso, execute o seguinte:```
    nix-shell -p chainsaw
    

    Você também pode utilizar o fato de que este repositório é um flake, e pode executar o seguinte:``` nix profile install github:WithSecureLabs/chainsaw

    root@kitploit:~
    No entanto, se você quiser compilar o chainsaw por conta própria, usando Nix, você pode mais uma vez utilizar o `flake.nix`, que é fornecido com este repositório.
    Para compilar o binário, execute o seguinte, no diretório raiz do repositório clonado```
    nix build .#
    

    Isso criará o diretório ./result, com o binário chainsaw localizado em ./result/bin/chainsaw.

    Avisos de EDR e AV

    Ao baixar e executar o chainsaw, você pode descobrir que seu EDR / mecanismo antivírus local detecta o Chainsaw como malicioso. Você pode ver exemplos disso nas seguintes issues do GitHub: Exemplo1, Exemplo2.

    Esses avisos geralmente ocorrem devido aos logs de eventos de exemplo e/ou regras Sigma que contêm referências a strings maliciosas (por exemplo, "mimikatz"). Também vimos instâncias em que o binário do Chainsaw foi detectado por um pequeno subconjunto de mecanismos antivírus, provavelmente devido a alguma forma de detecção heurística.

    O que mudou no Chainsaw v2?

    Em julho de 2022, lançamos a versão 2 do Chainsaw, que é uma grande reformulação de como o Chainsaw opera. O Chainsaw v2 contém várias melhorias significativas, incluindo a seguinte lista de destaques:

    • Uma abordagem aprimorada para mapear regras Sigma, que resulta em um aumento significativo no número de regras Chainsaw suportadas e tipos de eventos de Event Log.
    • Saída de CLI aprimorada que mostra um instantâneo de todos os Event Data para logs de eventos contendo detecções.
    • Suporte para carregar e analisar Event Logs nos formatos JSON e XML.
    • Argumentos de linha de comando mais limpos e simples para os recursos Hunt e Search.
    • Informações de saída opcionais adicionais, como Rule Author, Rule Status, Rule Level etc.
    • A capacidade de filtrar regras carregadas por status, tipo e nível de severidade.
    • As regras de detecção integradas do Chainsaw foram separadas em arquivos de regras Chainsaw dedicados
    • Uma limpeza e reescrita do código do Chainsaw para melhorar a legibilidade e reduzir a sobrecarga para contribuições da comunidade.

    Se você ainda deseja usar a versão 1 do Chainsaw, você pode encontrar binários compilados na seção de releases, ou você pode acessar o código-fonte no branch v1.x.x. Observe que o Chainsaw v1 não é mais mantido, e todos os usuários devem buscar migrar para o Chainsaw v2.

    Um enorme agradecimento a @AlexKornitzer que conseguiu converter a base de código do "Christmas Project" do Chainsaw v1 em um produto refinado no v2.

    Exemplos

    Buscando

    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
    

    Exemplos de Comandos

    Buscar em todos os arquivos .evtx a string "mimikatz" sem diferenciar maiúsculas de minúsculas

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

    *Buscar em todos os arquivos .evtx eventos de bloco de script do powershell (Event ID 4014)

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

    Buscar em um log evtx específico eventos de logon, com um padrão regex correspondente, com saída em formato JSON

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

    Caçando

    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
    

    Exemplos de Comandos

    Caçar em todos os arquivos evtx usando regras Sigma para lógica de detecção

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

    Caçar em todos os arquivos evtx usando regras Sigma e regras Chainsaw para lógica de detecção e gerar saída em formato CSV para a pasta de resultados

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

    Caçar em todos os arquivos evtx usando regras Sigma para lógica de detecção, buscar apenas entre timestamps específicos e gerar os resultados em formato JSON

    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
    

    Saída

    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"                             │
        └─────────────────────┴────────────────────────────────┴───────┴────────────────────────────────┴──────────┴───────────┴──────────────────────────┴──────────────────────────────────┘
    

    Analisando

    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
    
    • Um arquivo de padrões de exemplo para o parâmetro --regexfile está incluído em analysis/shimcache_patterns.txt.
    • Os padrões regex são correspondidos em caminhos em entradas do shimcache convertidos para minúsculas.
    Exemplos de Comandos

    Analisa um artefato shimcache com os padrões regex fornecidos e usa o enriquecimento do amcache com detecção de pares de timestamp próximos habilitada. Saída para um arquivo csv.

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

    Analisa um artefato shimcache com os padrões regex fornecidos (sem enriquecimento do amcache). Saída para o terminal.

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

    Gaps (detecção de lacunas em logs de eventos)

    Detecta dois indicadores de adulteração seletiva de logs de eventos dentro de um ou mais arquivos .evtx:

    • Lacunas de RecordID: os valores de EventRecordID por canal normalmente são monotonicamente crescentes, sem buracos. Um buraco dentro de um único arquivo evtx (ou seja, que não seja um limite de rotação de log) é incomum e é a impressão digital deixada por ferramentas que excluem cirurgicamente registros individuais (por exemplo, técnicas no estilo Eventlogedit) sem acionar o ruidoso evento de "log limpo" (EID 1102).

    • Lacunas de tempo: janelas de silêncio inesperadamente longas entre eventos consecutivos em um canal normalmente movimentado podem indicar que registros dentro dessa janela foram removidos. O limite é configurável; a linha de base por host fica a critério do analista.

      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

    Exemplos de Comandos

    Escaneia um diretório de arquivos evtx em busca de lacunas de RecordID e de tempo com o limite padrão de 30 minutos:

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

    Procura apenas por registros excluídos seletivamente (buracos de RecordID) e emite JSON legível por máquina:

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

    SRUM (System Resource Usage Monitor)

    O parser do banco de dados SRUM implementado no Chainsaw difere de outros parsers porque não depende de valores codificados sobre as tabelas. As informações são extraídas diretamente do hive SOFTWARE, que é um argumento obrigatório. O objetivo é evitar erros relacionados a tabelas desconhecidas.

    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
    
    Exemplo de Comando

    Analisa o banco de dados SRUM (o hive SOFTWARE é obrigatório)

    root@kitploit:~
    ./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat --output ./output.json
    
    Saída
    root@kitploit:~
    $ ./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat -o ./output.json
    
         ██████╗██╗  ██╗ █████╗ ██╗███╗   ██╗███████╗ █████╗ ██╗    ██╗
        ██╔════╝██║  ██║██╔══██╗██║████╗  ██║██╔════╝██╔══██╗██║    ██║
        ██║     ███████║███████║██║██╔██╗ ██║███████╗███████║██║ █╗ ██║
        ██║     ██╔══██║██╔══██║██║██║╚██╗██║╚════██║██╔══██║██║███╗██║
        ╚██████╗██║  ██║██║  ██║██║██║ ╚████║███████║██║  ██║╚███╔███╔╝
         ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝ ╚══╝╚══╝
            By WithSecure Countercept (@FranticTyping, @AlexKornitzer)[+] Arquivo de banco de dados ESE carregado de "/home/user/Documents/SRUDB.dat"
        [+] Analisando o banco de dados ESE...
        [+] Hive SOFTWARE carregado de "/home/user/Documents/SOFTWARE"
        [+] Analisando o hive de registro SOFTWARE...
        [+] Analisando o banco de dados SRUM...
        [+] Detalhes sobre as tabelas relacionadas às extensões SRUM:
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | GUID da Tabela                           | Nome da Tabela                             | Caminho da DLL                       | Período dos dados       | Tempo de Retenção Esperado |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {5C8CF1C7-7257-4F13-B223-970EF5939312}   | App Timeline Provider                      | %SystemRoot%\System32\eeprov.dll     | 2022-03-10 16:34:59 UTC | 7 dias                  |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {B6D82AF1-F780-4E17-8077-6CB9AD8A6FC4}   | Tagged Energy Provider                     | %SystemRoot%\System32\eeprov.dll     | Sem registros           | 3 dias                  |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {D10CA2FE-6FCF-4F6D-848E-B2E99266FA86}   | WPN SRUM Provider                          | %SystemRoot%\System32\wpnsruprov.dll | 2022-03-10 20:09:00 UTC | 60 dias                 |
        |                                          |                                            |                                      | 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 dias                 |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {FEE4E14F-02A9-4550-B5CE-5FA2DA202E37}   | Energy Usage Provider                      | %SystemRoot%\System32\energyprov.dll | Sem registros           | 60 dias                 |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {FEE4E14F-02A9-4550-B5CE-5FA2DA202E37}LT | Energy Usage Provider (Long Term)          | %SystemRoot%\System32\energyprov.dll | Sem registros           | 1820 dias               |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {973F5D5C-1D90-4944-BE8E-24B94231A174}   | Windows Network Data Usage Monitor         | %SystemRoot%\System32\nduprov.dll    | 2022-03-10 16:34:59 UTC | 60 dias                 |
        |                                          |                                            |                                      | 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 dias                 |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {DA73FB89-2BEA-4DDC-86B8-6E048C6DA477}   | Energy Estimation Provider                 | %SystemRoot%\System32\eeprov.dll     | Sem registros           | 7 dias                  |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        | {DD6636C4-8929-4683-974E-22C046A43763}   | Windows Network Connectivity Usage Monitor | %SystemRoot%\System32\ncuprov.dll    | 2022-03-10 16:34:59 UTC | 60 dias                 |
        |                                          |                                            |                                      | 2022-03-10 21:10:00 UTC |                         |
        +------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
        [+] Banco de dados SRUM analisado com sucesso
        [+] Salvando saída em "/home/user/Documents/output.json"
        [+] Saída salva em "/home/user/Documents/output.json"
    
    Insights forenses

    Informações sobre os novos insights forenses relacionados a este artefato podem ser encontradas na wiki: https://github.com/WithSecureLabs/chainsaw/wiki/SRUM-Analysis.

    Dumping

    root@kitploit:~
    USAGE:
        chainsaw dump [OPTIONS] <PATH>
    
    ARGUMENTS:
        <PATH>                  O caminho para um artefato a ser extraído
    
    OPTIONS:
        -j, --json              Extrair em formato json
            --jsonl             Imprimir a saída em formato jsonl
            --load-unknown      Permitir que o chainsaw tente carregar arquivos que não consegue identificar
        -o, --output <OUTPUT>   Um caminho para salvar os resultados
        -q                      Suprimir saída informativa
            --skip-errors       Continuar a busca quando um erro for encontrado
        -h, --help              Imprimir ajuda
    

    Exemplo de Comando

    Extrair o hive SOFTWARE

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

    Agradecimentos

    • EVTX-ATTACK-SAMPLES por @SBousseaden
    • Regras de detecção Sigma
    • Biblioteca EVTX parser por @OBenamram
    • Biblioteca TAU Engine por @AlexKornitzer
    • Recurso de análise Shimcache desenvolvido como parte do projeto CC-Driver, financiado pelo Programa de Pesquisa e Inovação Horizon 2020 da União Europeia sob o Acordo de Subvenção nº 883543
    • DFIRArtifactMuseum por Andrew Rathbun (@bunsofwrath12)
    Baixar ferramenta