
Pesquise e vasculhe rapidamente artefactos forenses do Windows
O Chainsaw fornece uma poderosa capacidade de “primeira resposta” para identificar rapidamente ameaças em artefactos forenses do Windows, como registos de eventos e o ficheiro MFT. O Chainsaw oferece um método genérico e rápido de pesquisar palavras-chave em registos de eventos e de identificar ameaças através de suporte integrado para regras de deteção Sigma e de regras de deteção personalizadas do Chainsaw.
Informações adicionais podem ser encontradas no Wiki desta ferramenta: https://github.com/WithSecureLabs/chainsaw/wiki
Na WithSecure Countercept, ingerimos uma vasta gama de fontes de telemetria de endpoints através do nosso agente EDR para fornecer o nosso serviço de deteção e resposta gerida. No entanto, existem circunstâncias em que precisamos de analisar rapidamente artefactos forenses que não tenham sido capturados pelo nosso EDR, sendo um exemplo comum as investigações de resposta a incidentes numa infraestrutura onde o 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 uma triagem rápida de artefactos forenses nestas circunstâncias.
Os registos de eventos do Windows fornecem uma fonte rica de informações forenses para a caça a ameaças e investigações de resposta a incidentes. Infelizmente, processar e pesquisar registos de eventos pode ser um processo lento e demorado e, na maioria dos casos, exige a sobrecarga de infraestrutura envolvente – como uma stack ELK ou uma instância Splunk – para caçar eficientemente nos dados de registo e aplicar lógica de deteção. Esta sobrecarga significa frequentemente que as equipas azuis não conseguem fazer uma triagem rápida dos registos de eventos do Windows para fornecer a direção e as conclusões necessárias para avançar nas suas investigações. O Chainsaw resolve o problema, pois permite a pesquisa e a caça rápidas em registos de eventos do Windows.
No momento em que este texto foi escrito, existem muito poucas ferramentas open-source e autónomas que forneçam um método simples e rápido de triagem de registos de eventos do Windows, identificando elementos interessantes nos registos e aplicando um formato de regras de lógica de deteção (como o Sigma) para detetar sinais de atividade maliciosa. Nos nossos testes, as ferramentas que existiam tinham dificuldade em aplicar eficientemente a lógica de deteção a grandes volumes de registos de eventos, tornando-as inadequadas para cenários em que é necessária uma triagem rápida.
Utilizando os parâmetros --sigma e --mapping, pode especificar um diretório contendo um subconjunto de regras de deteção SIGMA (ou mesmo o repositório git SIGMA completo) e o chainsaw carregará, converterá e executará automaticamente essas regras nos registos de eventos fornecidos. O ficheiro de mapeamento indica ao chainsaw quais os campos dos registos de eventos a utilizar para a correspondência de regras. Por predefinição, o Chainsaw suporta uma vasta gama de tipos de registos de eventos, incluindo, mas não se limitando a:
Consulte o ficheiro de mapeamento para obter a lista completa dos campos utilizados para a deteção de regras e sinta-se à vontade para o estender consoante as suas necessidades.
Para além de suportar regras sigma, o Chainsaw também suporta um formato de regras personalizado. No repositório encontrará um diretório rules que contém várias regras do Chainsaw que permitem aos utilizadores:
Com o lançamento do Chainsaw v2, decidimos deixar de incluir os repositórios Sigma Rules e EVTX-Attack-Samples como submódulos do Chainsaw. Recomendamos que clone estes repositórios separadamente para garantir que tem as versões mais recentes.
Se ainda precisar de um pacote completo contendo o binário do Chainsaw, as regras Sigma e registos de eventos de exemplo, pode descarregá-lo da secção de lançamentos deste repositório GitHub. Nesta secção de lançamentos também encontrará versões pré-compiladas apenas com o binário do Chainsaw para várias plataformas e arquiteturas.
Se quiser compilar o Chainsaw, pode clonar o repositório Chainsaw:
git clone https://github.com/WithSecureLabs/chainsaw.git
e compilar o código executando: cargo build --release. Quando a compilação terminar, 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 quiser ver rapidamente como o Chainsaw se comporta quando é executado, 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
e então execute o Chainsaw com os parâmetros abaixo:```
./chainsaw hunt EVTX-ATTACK-SAMPLES/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
├───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'
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 pode instalar o Chainsaw via Nix. A forma recomendada é via `nix-shell`, que modificará temporariamente sua variável de ambiente $PATH.
Para fazer isso, execute o seguinte:```
nix-shell -p chainsaw
Você também pode utilizar o fato de que este repositório é um flake, e você pode executar o seguinte:``` nix profile install github:WithSecureLabs/chainsaw
No entanto, se você quiser compilar o chainsaw você mesmo, usando Nix, você pode novamente 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 do chainsaw localizado em ./result/bin/chainsaw.
Ao baixar e executar o chainsaw, você pode descobrir que seu mecanismo local de EDR / Antivírus detecta o Chainsaw como malicioso. Você pode ver exemplos disso nas seguintes issues do GitHub: Exemplo1, Exemplo2.
Esses avisos geralmente são devidos aos logs de eventos de exemplo e/ou regras Sigma que contêm referências a strings maliciosas (por exemplo, "mimikatz"). Também vimos casos 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.
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:
Se você ainda deseja usar a versão 1 do Chainsaw, pode encontrar binários compilados na seção de releases, ou 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 considerar migrar para o Chainsaw v2.
Um enorme agradecimento a @AlexKornitzer, que conseguiu converter a base de código "Christmas Project" do Chainsaw v1 em um produto refinado no v2.
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
Pesquisar todos os arquivos .evtx pela string "mimikatz" sem diferenciar maiúsculas de minúsculas
./chainsaw search mimikatz -i evtx_attack_samples/
*Pesquisar todos os arquivos .evtx por eventos de bloco de script do powershell (Event ID 4014)
./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/
Pesquisar um log evtx específico por eventos de logon, com um padrão regex correspondente, em formato JSON
./chainsaw search -e "DC[0-9].insecurebank.local" evtx_attack_samples --json
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
Caçar todos os arquivos evtx usando regras Sigma para lógica de detecção
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
Caçar todos os arquivos evtx usando regras Sigma e regras do Chainsaw para lógica de detecção e gerar saída em formato CSV na pasta de resultados
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml -r rules/ --csv --output results
Caçar todos os arquivos evtx usando regras Sigma para lógica de detecção, pesquisando apenas entre carimbos de data/hora específicos, e gerar os resultados em formato JSON
./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
$ ./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" │
└─────────────────────┴────────────────────────────────┴───────┴────────────────────────────────┴──────────┴───────────┴──────────────────────────┴──────────────────────────────────┘
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
--regexfile está incluído em analysis/shimcache_patterns.txt.Analise um artefacto de shimcache com os padrões de regex fornecidos e utilize o enriquecimento de amcache com a deteção de pares de timestamps próximos ativada. Envie a saída para um ficheiro csv.
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt --amcache ./Amcache.hve --tspair --output ./output.csv
Analise um artefacto de shimcache com os padrões de regex fornecidos (sem enriquecimento de amcache). Envie a saída para o terminal.
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt
Deteta dois indicadores de adulteração seletiva de logs de eventos dentro de um ou mais ficheiros .evtx:
Lacunas de RecordID: os valores de EventRecordID por canal normalmente aumentam de forma monotónica, sem lacunas. Uma lacuna dentro de um único ficheiro evtx (ou seja, que não seja uma fronteira de rotação de logs) é invulgar e é a impressão digital deixada por ferramentas que eliminam cirurgicamente registos individuais (por exemplo, técnicas do tipo Eventlogedit) sem acionar o ruidoso evento "log limpo" (EID 1102).
Lacunas de tempo: janelas de silêncio excecionalmente longas entre eventos consecutivos num canal normalmente movimentado podem indicar que os registos dentro dessa janela foram removidos. O limiar é configurável; a definição de uma linha de base por host fica a cargo 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
Analise um diretório de ficheiros evtx para detetar lacunas de RecordID e de tempo com o limiar predefinido de 30 minutos:
./chainsaw analyse gaps ./Logs/
Procure apenas registos eliminados seletivamente (lacunas de RecordID) e emita JSON legível por máquina:
./chainsaw analyse gaps ./Logs/ --no-time-gaps --json -o ./gaps.json
O analisador da base de dados SRUM implementado no Chainsaw difere de outros analisadores porque não depende de valores fixos sobre as tabelas. As informações são extraídas diretamente do hive SOFTWARE, que é um argumento obrigatório. O objetivo é evitar erros relacionados com tabelas desconhecidas.
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
Analise a base de dados SRUM (o hive SOFTWARE é obrigatório)
./chainsaw analyse srum --software ./SOFTWARE ./SRUDB.dat --output ./output.json
$ ./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"
Podem ser encontradas informações sobre os novos insights forenses relacionados a este artefato na wiki: https://github.com/WithSecureLabs/chainsaw/wiki/SRUM-Analysis.
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
Faça o dump do hive SOFTWARE
./chainsaw dump ./SOFTWARE.hve --json --output ./output.json
| Tipo de Evento | ID do Evento |
|---|
| Criação de Processos (Sysmon) | 1 |
| Ligações de Rede (Sysmon) | 3 |
| Carregamentos de Imagens (Sysmon) | 7 |
| Criação de Ficheiros (Sysmon) | 11 |
| Eventos de Registo (Sysmon) | 13 |
| Blocos de Script do PowerShell | 4104 |
| Criação de Processos | 4688 |
| Criação de Tarefas Agendadas | 4698 |
| Criação de Serviços | 7045 |