
Busca y rastrea rápidamente artefactos forenses de Windows
Chainsaw ofrece una potente capacidad de «primera respuesta» para identificar rápidamente amenazas dentro de artefactos forenses de Windows, como los registros de eventos y el archivo MFT. Chainsaw proporciona un método genérico y rápido para buscar palabras clave en los registros de eventos, e identificar amenazas mediante el soporte integrado para reglas de detección Sigma y reglas de detección personalizadas de Chainsaw.
Puedes encontrar información ampliada en la Wiki de esta herramienta: https://github.com/WithSecureLabs/chainsaw/wiki
En WithSecure Countercept, ingerimos una amplia variedad de fuentes de telemetría de los endpoints a través de nuestro agente EDR para ofrecer nuestro servicio de detección y respuesta gestionadas. Sin embargo, hay circunstancias en las que necesitamos analizar rápidamente artefactos forenses que no han sido capturados por nuestro EDR; un ejemplo común son las investigaciones de respuesta a incidentes en una infraestructura donde nuestro EDR no estaba instalado en el momento del compromiso. Chainsaw se creó para proporcionar a nuestros cazadores de amenazas y consultores de respuesta a incidentes una herramienta que permita realizar un triaje rápido de artefactos forenses en estas circunstancias.
Los registros de eventos de Windows proporcionan una rica fuente de información forense para la caza de amenazas y las investigaciones de respuesta a incidentes. Desafortunadamente, procesar y buscar en los registros de eventos puede ser un proceso lento y que consume tiempo, y en la mayoría de los casos requiere la sobrecarga de infraestructura circundante, como una pila ELK o una instancia de Splunk, para cazar eficientemente a través de los datos de registro y aplicar lógica de detección. Esta sobrecarga a menudo significa que los equipos azules no pueden realizar un triaje rápido de los registros de eventos de Windows para proporcionar la dirección y las conclusiones necesarias para avanzar en sus investigaciones. Chainsaw resuelve este problema, ya que permite buscar y cazar rápidamente a través de los registros de eventos de Windows.
Al momento de escribir esto, existen muy pocas herramientas independientes y de código abierto que proporcionen un método simple y rápido para triar registros de eventos de Windows, identificar elementos interesantes dentro de los registros y aplicar un formato de reglas de lógica de detección (como Sigma) para detectar signos de actividad maliciosa. En nuestras pruebas, las herramientas que existían tenían dificultades para aplicar eficientemente la lógica de detección a grandes volúmenes de registros de eventos, lo que las hacía inadecuadas para escenarios donde se requiere un triaje rápido.
Usando los parámetros --sigma y --mapping puedes especificar un directorio que contenga un subconjunto de reglas de detección SIGMA (o simplemente todo el repositorio SIGMA de git) y chainsaw cargará, convertirá y ejecutará automáticamente estas reglas contra los registros de eventos proporcionados. El archivo de mapeo le indica a chainsaw qué campos de los registros de eventos utilizar para la coincidencia de reglas. Por defecto, Chainsaw admite una amplia gama de tipos de registros de eventos, incluyendo, entre otros:
Consulta el archivo de mapeo para ver la lista completa de campos utilizados para la detección de reglas, y no dudes en ampliarlo según tus necesidades.
Además de admitir reglas Sigma, Chainsaw también admite un formato de reglas personalizado. En el repositorio encontrarás un directorio rules que contiene varias reglas de Chainsaw que permiten a los usuarios:
Con el lanzamiento de Chainsaw v2, decidimos dejar de incluir los repositorios Sigma Rules y EVTX-Attack-Samples como submódulos de Chainsaw. Recomendamos clonar estos repositorios por separado para asegurarte de tener las últimas versiones.
Si aún necesitas un paquete completo que contenga el binario de Chainsaw, las reglas Sigma y registros de eventos de ejemplo, puedes descargarlo desde la sección de lanzamientos de este repositorio de GitHub. En esta sección de lanzamientos también encontrarás versiones precompiladas solo con el binario de Chainsaw para varias plataformas y arquitecturas.
Si quieres compilar Chainsaw tú mismo, puedes clonar el repositorio de Chainsaw:
git clone https://github.com/WithSecureLabs/chainsaw.git
y compilar el código tú mismo ejecutando: cargo build --release. Una vez que la compilación haya terminado, encontrarás una copia del binario compilado en la carpeta target/release.
Asegúrate de compilar con el indicador --release, ya que esto garantizará un tiempo de ejecución significativamente más rápido.
Si quieres ver rápidamente cómo se ve Chainsaw cuando se ejecuta, puedes clonar los repositorios Sigma Rules y EVTX-Attack-Samples:``` git clone https://github.com/SigmaHQ/sigma git clone https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES.git
and then run Chainsaw with the parameters below:```
./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 paquete, está disponible a través de [nixpkgs](https://search.nixos.org/packages?query=chainsaw).
Si usas NixOS, solo añade `chainsaw` a tu archivo de configuración del sistema.
Sin embargo, si no usas NixOS, aún puedes instalar Chainsaw mediante Nix. La forma recomendada es a través de `nix-shell`, que modificará temporalmente tu variable de entorno $PATH.
Para ello, ejecuta lo siguiente:```
nix-shell -p chainsaw
También puedes aprovechar el hecho de que este repositorio es un flake y ejecutar lo siguiente:``` nix profile install github:WithSecureLabs/chainsaw
Sin embargo, si quieres compilar chainsaw tú mismo, usando Nix, puedes volver a utilizar `flake.nix`, que se incluye con este repositorio.
Para compilar el binario, por favor, ejecuta lo siguiente, en el directorio raíz del repositorio clonado```
nix build .#
Esto creará el directorio ./result, con el binario de chainsaw ubicado en ./result/bin/chainsaw.
Cuando descargues y ejecutes chainsaw, es posible que tu motor EDR / Antivirus local detecte Chainsaw como malicioso. Puedes ver ejemplos de esto en los siguientes problemas de GitHub: Ejemplo1, Ejemplo2.
Estas advertencias suelen deberse a los registros de eventos de ejemplo y/o a las reglas Sigma que contienen referencias a cadenas maliciosas (p. ej., "mimikatz"). También hemos visto casos en los que el binario de Chainsaw ha sido detectado por un pequeño subconjunto de motores antivirus, probablemente debido a algún tipo de detección heurística.
En julio de 2022 lanzamos la versión 2 de Chainsaw, que supone una revisión importante de cómo opera Chainsaw. Chainsaw v2 contiene varias mejoras significativas, incluida la siguiente lista de aspectos destacados:
Si aún deseas usar la versión 1 de Chainsaw, puedes encontrar binarios compilados en la sección de lanzamientos, o puedes acceder al código fuente en la rama v1.x.x. Ten en cuenta que Chainsaw v1 ya no recibe mantenimiento, y todos los usuarios deberían migrar a Chainsaw v2.
Un enorme agradecimiento a @AlexKornitzer, que consiguió convertir la base de código del "Christmas Project" de Chainsaw v1 en un producto pulido en 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
Busca en todos los archivos .evtx la cadena "mimikatz" sin distinguir mayúsculas y minúsculas
./chainsaw search mimikatz -i evtx_attack_samples/
*Busca en todos los archivos .evtx eventos de bloque de script de PowerShell (Event ID 4014)
./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/
Busca en un archivo evtx específico eventos de inicio de sesión, con un patrón regex coincidente, y genera la salida en 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
Explora todos los archivos evtx utilizando reglas Sigma para la lógica de detección
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
Explora todos los archivos evtx utilizando reglas Sigma y reglas Chainsaw para la lógica de detección y genera la salida en formato CSV en la carpeta de resultados
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml -r rules/ --csv --output results
Explora todos los archivos evtx utilizando reglas Sigma para la lógica de detección, buscando solo entre marcas de tiempo específicas, y genera los resultados en 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 se incluye en analysis/shimcache_patterns.txt.Analiza un artefacto shimcache con los patrones regex proporcionados y usa el enriquecimiento de amcache con la detección de pares de marcas de tiempo cercanas habilitada. Escribe el resultado en un archivo csv.
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt --amcache ./Amcache.hve --tspair --output ./output.csv
Analiza un artefacto shimcache con los patrones regex proporcionados (sin enriquecimiento de amcache). Escribe el resultado en la terminal.
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt
Detecta dos indicadores de manipulación selectiva del registro de eventos dentro de uno o más archivos .evtx:
Huecos de RecordID: los valores de EventRecordID por canal normalmente aumentan de forma monótona y sin huecos. Un hueco dentro de un único archivo evtx (es decir, que no sea un límite de rotación de registros) es inusual y es la huella que dejan las herramientas que eliminan quirúrgicamente registros individuales (p. ej., técnicas de estilo Eventlogedit) sin activar el ruidoso evento de «registro borrado» (EID 1102).
Huecos de tiempo: ventanas de silencio inusualmente largas entre eventos consecutivos en un canal normalmente activo pueden indicar que se eliminaron registros dentro de esa ventana. El umbral es configurable; el establecimiento de una línea base por host queda a criterio del 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
Escanea un directorio de archivos evtx para detectar tanto huecos de RecordID como de tiempo con el umbral predeterminado de 30 minutos:
./chainsaw analyse gaps ./Logs/
Busca únicamente registros eliminados de forma selectiva (huecos de RecordID) y emite JSON legible por máquina:
./chainsaw analyse gaps ./Logs/ --no-time-gaps --json -o ./gaps.json
El analizador de la base de datos SRUM implementado en Chainsaw se diferencia de otros analizadores porque no se basa en valores codificados de forma fija sobre las tablas. La información se extrae directamente del hive SOFTWARE, que es un argumento obligatorio. El objetivo es evitar errores relacionados con tablas desconocidas.
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
Analiza la base de datos SRUM (el hive SOFTWARE es obligatorio)
./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"
La información sobre los nuevos hallazgos forenses relacionados con este artefacto se puede encontrar en la 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
Vuelque el hive SOFTWARE
./chainsaw dump ./SOFTWARE.hve --json --output ./output.json
| Event Type | Event ID |
|---|
| Creación de procesos (Sysmon) | 1 |
| Conexiones de red (Sysmon) | 3 |
| Cargas de imágenes (Sysmon) | 7 |
| Creación de archivos (Sysmon) | 11 |
| Eventos del Registro (Sysmon) | 13 |
| Bloques de script de PowerShell | 4104 |
| Creación de procesos | 4688 |
| Creación de tareas programadas | 4698 |
| Creación de servicios | 7045 |