
Chainsaw는 이벤트 로그 및 MFT 파일과 같은 Windows 법의학적 인공물 내에서 위협을 신속하게 식별 할 수있는 강력한 '첫 번째 응답'기능을 제공합니다. Chainsaw는 키워드에 대한 이벤트 로그를 통해 일반적이고 빠른 검색 방법을 제공하고 Sigma Detection Rules에 대한 내장 지원을 사용하여 위협을 식별하고 사용자 정의 전기 톱 감지 규칙을 통해 제공합니다.
확장 정보는이 도구의 Wiki에서 찾을 수 있습니다 : https://github.com/withsecurelabs/chainsaw/wiki
Wishsecure Countercept에서는 EDR 에이전트를 통해 엔드 포인트에서 광범위한 원격 측정 소스를 섭취하여 관리되는 탐지 및 응답 서비스를 제공합니다. 그러나 EDR에 의해 포착되지 않은 법의학 인공물을 신속하게 분석 해야하는 상황이 있습니다. 일반적인 예는 타협 당시 EDR이 설치되지 않은 부동산에 대한 사고 대응 조사입니다. Chainsaw는 위협 사냥꾼과 사고 대응 컨설턴트에게 이러한 상황에서 법의학적 인공물의 빠른 발전을 수행하는 도구를 제공하기 위해 만들어졌습니다.
Windows 이벤트 로그는 위협 사냥 및 사고 대응 조사를위한 풍부한 법의학 정보를 제공합니다. 불행하게도, 이벤트 로그를 통한 처리 및 검색은 느리고 시간이 많이 걸리는 프로세스 일 수 있으며, 대부분의 경우 ELK 스택 또는 스플 렁크 인스턴스와 같은 주변 인프라의 오버 헤드가 로그 데이터를 통해 효율적으로 사냥하고 탐지 로직을 적용해야합니다. 이 오버 헤드는 종종 블루 팀이 조사를 진행하는 데 필요한 방향과 결론을 제공하기 위해 Windows 이벤트 로그를 신속하게 심사 할 수 없음을 의미합니다. 전기 톱은 Windows 이벤트 로그를 통해 빠른 검색 및 사냥을 허용하므로 문제를 해결합니다.
작성 당시에는 Windows 이벤트 로그를 트라이어징하는 간단하고 빠른 방법을 제공하는 오픈 소스 독립형 도구가 거의 없습니다. 로그 내에서 흥미로운 요소를 식별하고 악성 활동의 징후를 감지하기 위해 검출 로직 규칙 형식 (예 : Sigma)을 적용합니다. 테스트에서 존재하는 도구는 많은 양의 이벤트 로그에 탐지 로직을 효율적으로 적용하기 위해 고군분투하여 빠른 심사가 필요한 시나리오에 적합하지 않습니다.
--sigma 및 --mapping 매개 변수를 사용하면 Sigma Detection 규칙의 하위 집합 (또는 전체 Sigma Git Repo)이 포함 된 디렉토리를 지정할 수 있으며 전기 톱은 제공된 이벤트 로그에 대해 이러한 규칙을 자동으로로드, 변환 및 실행합니다. 매핑 파일은 Chainsaw에 룰 매칭에 사용할 이벤트 로그의 필드를 알려줍니다. 기본적으로 전기 톱은 다음을 포함하되 이에 국한되지 않는 광범위한 이벤트 로그 유형을 지원합니다.
| 이벤트 유형 | 이벤트 ID |
|---|---|
| 프로세스 생성 (Sysmon) | 1 |
| 네트워크 연결 (Sysmon) | 3 |
| 이미지로드 (Sysmon) | 7 |
| 파일 생성 (Sysmon) | 11 |
| 레지스트리 이벤트 (Sysmon) | 13 |
| PowerShell 스크립트 블록 | 4104 |
| 프로세스 생성 | 4688 |
| 예정된 작업 생성 | 4698 |
| 서비스 생성 | 7045 |
규칙 감지에 사용되는 전체 필드 목록은 매핑 파일을 참조하고 필요에 따라 자유롭게 확장하십시오.
Sigma 규칙을 지원하는 것 외에도 Chainsaw는 사용자 정의 규칙 형식을 지원합니다. 저장소에는 사용자가 다음을 수행 할 수있는 다양한 전기 톱 규칙이 포함 된 rules 디렉토리가 있습니다.
Chainsaw V2가 출시되면서, 우리는 더 이상 Sigma 규칙과 EVTX-Attack-Samples 리포지토리를 Chainsaw 서브 모듈로 포함시키지 않기로 결정했습니다. 최신 버전을 갖도록이 저장소를 개별적으로 복제하는 것이 좋습니다.
전기 톱 바이너리, 시그마 규칙 및 예제 이벤트 로그가 포함 된 올인원 패키지가 여전히 필요한 경우이 Github Repo의 릴리스 섹션에서 다운로드 할 수 있습니다. 이 릴리스 섹션에서는 다양한 플랫폼 및 아키텍처에 대한 사전 컴파일 된 이진 전용 버전의 전기 톱을 찾을 수 있습니다.
전기 톱을 직접 컴파일하려면 전기 톱 리포를 복제 할 수 있습니다.
git clone https://github.com/WithSecureLabs/chainsaw.git
cargo build --release 실행하여 직접 코드를 컴파일하십시오. 빌드가 완료되면 대상/릴리스 폴더에서 컴파일 된 바이너리의 사본을 찾을 수 있습니다.
--release 플래그로 빌드하면 실행 시간이 훨씬 빨라질 수 있습니다.
전기 톱이 실행될 때의 모습을 빨리 확인하려면 시그마 규칙과 EVTX-Attack 샘플 리포지토리를 복제 할 수 있습니다.
git clone https://github.com/SigmaHQ/sigma
git clone https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES.git
그런 다음 아래 매개 변수로 전기 톱을 실행하십시오.
./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'
패키지로서 전기 톱은 nixpkgs를 통해 제공됩니다. 닉스를 사용하는 경우 시스템 구성 파일에 chainsaw 추가하십시오.
그러나 Nixos를 사용하지 않는 경우 Nix를 통해 전기 톱을 설치할 수 있습니다. 권장 방법은 nix-shell 통해서는 $ 경로 환경 변수를 일시적으로 수정합니다. 그렇게하려면 다음을 실행하십시오.
nix-shell -p chainsaw
이 repo가 플레이크라는 사실을 활용할 수 있으며 다음을 실행할 수 있습니다.
nix profile install github:WithSecureLabs/chainsaw
그러나 Nix를 사용하여 전기 톱 직접 제작하려면이 저장소와 함께 제공되는 flake.nix 다시 한 번 사용할 수 있습니다. 이진을 만들려면 복제 된 repo의 루트에서 다음을 실행하십시오.
nix build .#
이로 인해 ./result 디렉토리는 ./result/bin/chainsaw 아래에 전기 톱 바이너리가 생성됩니다.
전기 톱을 다운로드하고 실행할 때 로컬 EDR / 안티 바이러스 엔진이 전기 톱을 악의적으로 감지 할 수 있습니다. 다음 GitHub 문제에서 이것의 예를 볼 수 있습니다 : example1, example2.
이러한 경고는 일반적으로 악성 문자열 (예 : "Mimikatz")에 대한 참조를 포함하는 예제 이벤트 로그 및/또는 시그마 규칙에 기인합니다. 또한 일부 형태의 휴리스틱 검출로 인해 안티 바이러스 엔진의 작은 부분 집합에 의해 전기 톱 바이너리가 감지 된 사례를 보았습니다.
2022 년 7 월 우리는 Chainsaw의 버전 2 버전 2를 출시하여 Chainsaw의 작동 방식에 대한 주요 점검입니다. Chainsaw V2에는 다음과 같은 하이라이트 목록을 포함하여 몇 가지 중요한 개선 사항이 포함되어 있습니다.
여전히 전기 톱의 버전 1을 사용하려면 릴리스 섹션에서 컴파일 된 바이너리를 찾거나 v1.xx 지점에서 소스 코드에 액세스 할 수 있습니다. 전기 톱 V1은 더 이상 유지되지 않으며 모든 사용자는 전기 톱 v2로 이동해야합니다.
Chainsaw V1의 "Christmas Project"코드베이스를 V2의 세련된 제품으로 전환 한 @alexkornitzer에게 큰 감사를드립니다.
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
사례에 민감한 문자열 "Mimikatz"에 대한 모든 .evtx 파일을 검색하십시오.
./chainsaw search mimikatz -i evtx_attack_samples/
*PowerShell 스크립트 블록 이벤트에 대한 모든 .EVTX 파일 검색 (이벤트 ID 4014)
./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/
일치하는 Regex 패턴으로 JSON 형식의 출력으로 로그온 이벤트에 대한 특정 EVTX 로그 검색
./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
탐지 로직에 대한 Sigma 규칙을 사용하여 모든 EVTX 파일을 찾아
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
Sigma 규칙 및 CSV 형식의 결과 폴더에 대한 검출 로직 및 출력에 대한 Sigma 규칙 및 전기 톱 규칙을 사용하여 모든 EVTX 파일을 찾아
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml -r rules/ --csv --output results
탐지 로직을 위해 Sigma 규칙을 사용하여 모든 EVTX 파일을 찾아, 특정 타임 스탬프 간에만 검색하고 결과를 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:AtomicRedTeamatomic- │ MSEDGEWIN10IEUser │
│ │ │ │ │ │ M │ red-team-masteratomicsT1056 │ │
│ │ │ │ │ │ │ Get-Keystrokes.ps1 │ │
├─────────────────────┼────────────────────┼──────────┼───────────┼─────────────┼────────────────────────────────┼──────────────────────────────────┼────────────────────┤
│ 2019-07-18 20:53:31 │ ‣ Windows Defender │ 1117 │ 106 │ MSEDGEWIN10 │ Trojan:XML/Exeselrun.gen!A │ file:_C:AtomicRedTeamatomic- │ MSEDGEWIN10IEUser │
│ │ │ │ │ │ │ red-team-masteratomicsT1086 │ │
│ │ │ │ │ │ │ payloadstest.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 매개 변수의 예제 패턴 파일은 분석/shimcache_patterns.txt에 포함되어 있습니다.제공된 Regex 패턴으로 Shimcache 인공물을 분석하고 Amcache 강화를 사용하여 타임 스탬프 근처 쌍 탐지를 활성화하십시오. CSV 파일로의 출력.
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt --amcache ./Amcache.hve --tspair --output ./output.csv
제공된 REGEX 패턴 (AMCACHENICHMENT없이)으로 Shimcache 인공물을 분석하십시오. 터미널에 출력.
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt
전기 톱으로 구현 된 SRUM 데이터베이스 파서는 테이블에 대한 하드 코딩 된 값에 의존하지 않기 때문에 다른 구문 분석기와 다릅니다. 정보는 소프트웨어 하이브에서 직접 추출되며, 이는 필수 주장입니다. 목표는 알 수없는 테이블과 관련된 오류를 피하는 것입니다.
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
SRUM 데이터베이스 분석 (소프트웨어 하이브는 필수)
./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%System32eeprov.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%System32eeprov.dll | No records | 3 days |
+------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
| {D10CA2FE-6FCF-4F6D-848E-B2E99266FA86} | WPN SRUM Provider | %SystemRoot%System32wpnsruprov.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%System32appsruprov.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%System32energyprov.dll | No records | 60 days |
+------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
| {FEE4E14F-02A9-4550-B5CE-5FA2DA202E37}LT | Energy Usage Provider (Long Term) | %SystemRoot%System32energyprov.dll | No records | 1820 days |
+------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
| {973F5D5C-1D90-4944-BE8E-24B94231A174} | Windows Network Data Usage Monitor | %SystemRoot%System32nduprov.dll | 2022-03-10 16:34:59 UTC | 60 days |
| | | | 2022-03-10 21:10:00 UTC | |
+------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
| {7ACBBAA3-D029-4BE4-9A7A-0885927F1D8F} | vfuprov | %SystemRoot%System32vfuprov.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%System32eeprov.dll | No records | 7 days |
+------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
| {DD6636C4-8929-4683-974E-22C046A43763} | Windows Network Connectivity Usage Monitor | %SystemRoot%System32ncuprov.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"
이 인공물과 관련된 새로운 법의학 통찰력에 대한 정보는 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
소프트웨어 하이브를 버립니다
./chainsaw dump ./SOFTWARE.hve --json --output ./output.json