
विंडोज़ फोरेंसिक आर्टिफैक्ट्स के माध्यम से तेज़ी से खोजें और छानबीन करें
Chainsaw विंडोज फोरेंसिक आर्टिफैक्ट्स जैसे कि इवेंट लॉग और MFT फाइल के भीतर खतरों की तेजी से पहचान करने के लिए एक शक्तिशाली 'फर्स्ट-रिस्पॉन्स' क्षमता प्रदान करता है। Chainsaw इवेंट लॉग्स में कीवर्ड के लिए खोज करने का एक सामान्य और तेज़ तरीका प्रदान करता है, तथा Sigma डिटेक्शन नियमों के लिए अंतर्निहित समर्थन और कस्टम Chainsaw डिटेक्शन नियमों के माध्यम से खतरों की पहचान करता है।
इस टूल के लिए विस्तृत जानकारी इस टूल के Wiki में पाई जा सकती है: https://github.com/WithSecureLabs/chainsaw/wiki
WithSecure Countercept में, हम अपने प्रबंधित डिटेक्शन और रिस्पॉन्स सेवा को प्रदान करने के लिए अपने EDR एजेंट के माध्यम से एंडपॉइंट्स से कई प्रकार के टेलीमेट्री स्रोतों का सेवन करते हैं। हालाँकि, ऐसी परिस्थितियाँ होती हैं जहाँ हमें उन फोरेंसिक आर्टिफैक्ट्स का तेजी से विश्लेषण करने की आवश्यकता होती है जिन्हें हमारे EDR द्वारा कैप्चर नहीं किया गया है, एक सामान्य उदाहरण है ऐसे एस्टेट पर इंसिडेंट रिस्पॉन्स जांच जहां समझौते के समय हमारा EDR स्थापित नहीं था। Chainsaw को हमारे थ्रेट हंटर्स और इंसिडेंट रिस्पॉन्स सलाहकारों को इन परिस्थितियों में फोरेंसिक आर्टिफैक्ट्स की त्वरित ट्राइएज करने के लिए एक उपकरण प्रदान करने के लिए बनाया गया था।
विंडोज इवेंट लॉग्स थ्रेट हंटिंग और इंसिडेंट रिस्पॉन्स जांच के लिए फोरेंसिक जानकारी का एक समृद्ध स्रोत प्रदान करते हैं। दुर्भाग्य से, इवेंट लॉग्स के माध्यम से प्रोसेसिंग और खोज करना एक धीमी और समय लेने वाली प्रक्रिया हो सकती है, और अधिकांश मामलों में लॉग डेटा के माध्यम से कुशलतापूर्वक हंट करने और डिटेक्शन लॉजिक लागू करने के लिए आसपास के इंफ्रास्ट्रक्चर – जैसे ELK स्टैक या Splunk इंस्टेंस – के ओवरहेड की आवश्यकता होती है। इस ओवरहेड का अक्सर मतलब होता है कि ब्लू टीमें अपनी जांच को आगे बढ़ाने के लिए आवश्यक दिशा और निष्कर्ष प्रदान करने हेतु विंडोज इवेंट लॉग्स की त्वरित ट्राइएज करने में असमर्थ होती हैं। Chainsaw इस समस्या को हल करता है क्योंकि यह विंडोज इवेंट लॉग्स के माध्यम से तेजी से खोज और हंट करने की अनुमति देता है।
इस लेखन के समय, बहुत कम ओपन-सोर्स, स्टैंडअलोन टूल्स हैं जो विंडोज इवेंट लॉग्स की ट्राइएज करने, लॉग्स के भीतर दिलचस्प तत्वों की पहचान करने और दुर्भावनापूर्ण गतिविधि के संकेतों का पता लगाने के लिए डिटेक्शन लॉजिक नियम प्रारूप (जैसे Sigma) लागू करने का एक सरल और तेज़ तरीका प्रदान करते हैं। हमारे परीक्षण में, जो टूल्स मौजूद थे, वे इवेंट लॉग्स की बड़ी मात्रा पर डिटेक्शन लॉजिक को कुशलतापूर्वक लागू करने में संघर्ष करते थे, जिससे वे उन परिदृश्यों के लिए अनुपयुक्त हो जाते हैं जहां त्वरित ट्राइएज की आवश्यकता होती है।
--sigma और --mapping पैरामीटर का उपयोग करके आप SIGMA डिटेक्शन नियमों का एक सबसेट (या केवल संपूर्ण SIGMA git रिपोजिटरी) वाली निर्देशिका निर्दिष्ट कर सकते हैं और Chainsaw स्वचालित रूप से इन नियमों को लोड, कन्वर्ट और प्रदान किए गए इवेंट लॉग्स के विरुद्ध चलाएगा। मैपिंग फ़ाइल Chainsaw को बताती है कि नियम मिलान के लिए इवेंट लॉग्स में किन फ़ील्ड्स का उपयोग किया जाए। डिफ़ॉल्ट रूप से, Chainsaw कई प्रकार के इवेंट लॉग प्रकारों का समर्थन करता है, जिनमें शामिल हैं लेकिन इन्हीं तक सीमित नहीं:
नियम डिटेक्शन के लिए उपयोग किए जाने वाले फील्ड्स की पूरी सूची के लिए मैपिंग फ़ाइल देखें, और अपनी आवश्यकताओं के अनुसार इसे विस्तारित करने के लिए स्वतंत्र महसूस करें।
सिग्मा नियमों का समर्थन करने के अलावा, Chainsaw एक कस्टम नियम प्रारूप का भी समर्थन करता है। रिपोजिटरी में आपको एक rules निर्देशिका मिलेगी जिसमें विभिन्न Chainsaw नियम शामिल हैं जो उपयोगकर्ताओं को निम्न की अनुमति देते हैं:
Chainsaw v2 की रिलीज़ के साथ, हमने निर्णय लिया कि अब Sigma Rules और EVTX-Attack-Samples रिपोजिटरी को Chainsaw सबमॉड्यूल के रूप में शामिल नहीं किया जाएगा। हम अनुशंसा करते हैं कि आप इन रिपोजिटरी को अलग से क्लोन करें ताकि आपके पास नवीनतम संस्करण हों।
यदि आपको अभी भी Chainsaw बाइनरी, Sigma नियमों और उदाहरण इवेंट लॉग्स वाले ऑल-इन-वन पैकेज की आवश्यकता है, तो आप इसे इस GitHub रिपो के releases section से डाउनलोड कर सकते हैं। इस रिलीज़ अनुभाग में आपको विभिन्न प्लेटफार्मों और आर्किटेक्चर के लिए Chainsaw के प्री-कंपाइल्ड बाइनरी-ओनली संस्करण भी मिलेंगे।
यदि आप Chainsaw को स्वयं कंपाइल करना चाहते हैं, तो आप Chainsaw रिपो को क्लोन कर सकते हैं:
git clone https://github.com/WithSecureLabs/chainsaw.git
और निम्न चलाकर कोड को स्वयं कंपाइल करें: cargo build --release. बिल्ड समाप्त होने के बाद, आपको target/release फ़ोल्डर में कंपाइल की गई बाइनरी की एक प्रति मिलेगी।
सुनिश्चित करें कि आप --release फ्लैग के साथ बिल्ड करें क्योंकि यह काफी तेज़ निष्पादन समय सुनिश्चित करेगा।
यदि आप शीघ्रता से देखना चाहते हैं कि Chainsaw चलने पर कैसा दिखता है, तो आप Sigma Rules और EVTX-Attack-Samples रिपोजिटरी को क्लोन कर सकते हैं:``` git clone https://github.com/SigmaHQ/sigma git clone https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES.git
और फिर नीचे दिए गए पैरामीटर के साथ Chainsaw चलाएँ:```
./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, एक पैकेज के रूप में, [nixpkgs](https://search.nixos.org/packages?query=chainsaw) के माध्यम से उपलब्ध है।
यदि आप NixOS का उपयोग कर रहे हैं, तो बस अपनी सिस्टम कॉन्फ़िगरेशन फ़ाइल में `chainsaw` जोड़ें।
हालाँकि, यदि आप NixOS का उपयोग नहीं कर रहे हैं, तो भी आप Nix के माध्यम से Chainsaw इंस्टॉल कर सकते हैं। अनुशंसित तरीका `nix-shell` के माध्यम से है, जो आपके $PATH पर्यावरण चर को अस्थायी रूप से संशोधित करेगा।
ऐसा करने के लिए, कृपया निम्नलिखित चलाएँ:```
nix-shell -p chainsaw
आप इस तथ्य का भी उपयोग कर सकते हैं कि यह रिपॉजिटरी एक flake है, और आप निम्नलिखित चला सकते हैं:``` nix profile install github:WithSecureLabs/chainsaw
हालाँकि, यदि आप स्वयं chainsaw बनाना चाहते हैं, तो Nix का उपयोग करके, आप `flake.nix` का पुनः उपयोग कर सकते हैं, जो इस रिपॉजिटरी के साथ प्रदान किया गया है।
बाइनरी बनाने के लिए, कृपया क्लोन की गई रिपॉजिटरी की रूट डायरेक्टरी में निम्नलिखित चलाएँ```
nix build .#
यह ./result निर्देशिका बनाएगा, जिसमें chainsaw बाइनरी ./result/bin/chainsaw के अंतर्गत स्थित होगी।
chainsaw को डाउनलोड और चलाते समय आप पा सकते हैं कि आपका स्थानीय EDR / एंटीवायरस इंजन Chainsaw को दुर्भावनापूर्ण के रूप में पहचानता है। आप इसके उदाहरण निम्नलिखित GitHub issues में देख सकते हैं: उदाहरण1, उदाहरण2।
ये चेतावनियाँ आमतौर पर उदाहरण इवेंट लॉग और/या Sigma नियमों के कारण होती हैं, जिनमें दुर्भावनापूर्ण स्ट्रिंग्स (जैसे "mimikatz") के संदर्भ शामिल होते हैं। हमने ऐसे मामले भी देखे हैं जहाँ Chainsaw बाइनरी को एंटी-वायरस इंजनों के एक छोटे उपसमूह द्वारा पहचाना गया है, संभवतः किसी प्रकार की ह्यूरिस्टिक डिटेक्शन के कारण।
जुलाई 2022 में हमने Chainsaw का संस्करण 2 जारी किया, जो Chainsaw के संचालन के तरीके का एक बड़ा पुनर्गठन है। Chainsaw v2 में कई महत्वपूर्ण सुधार शामिल हैं, जिनमें निम्नलिखित मुख्य विशेषताएँ शामिल हैं:
यदि आप अभी भी Chainsaw का संस्करण 1 उपयोग करना चाहते हैं, तो आप releases अनुभाग में संकलित बाइनरी पा सकते हैं, या आप v1.x.x branch में स्रोत कोड तक पहुँच सकते हैं। कृपया ध्यान दें कि Chainsaw v1 अब अनुरक्षित नहीं है, और सभी उपयोगकर्ताओं को Chainsaw v2 पर स्थानांतरित होने पर विचार करना चाहिए।
@AlexKornitzer को बहुत बड़ा धन्यवाद, जिन्होंने Chainsaw v1 के "Christmas Project" कोडबेस को 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
सभी .evtx फ़ाइलों में केस-असंवेदनशील स्ट्रिंग "mimikatz" खोजें
./chainsaw search mimikatz -i evtx_attack_samples/
सभी .evtx फ़ाइलों में powershell स्क्रिप्ट ब्लॉक इवेंट (Event ID 4014) खोजें
./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/
एक विशिष्ट evtx लॉग में मिलान regex पैटर्न के साथ लॉगऑन इवेंट खोजें, आउटपुट 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
डिटेक्शन लॉजिक के लिए Sigma नियमों का उपयोग करके सभी evtx फ़ाइलों में हंट करें
./chainsaw hunt evtx_attack_samples/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml
डिटेक्शन लॉजिक के लिए Sigma नियमों और Chainsaw नियमों का उपयोग करके सभी evtx फ़ाइलों में हंट करें और परिणामों को CSV प्रारूप में results फ़ोल्डर में आउटपुट करें
./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:\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 पैरामीटर के लिए एक उदाहरण पैटर्न फ़ाइल analysis/shimcache_patterns.txt में शामिल है।प्रदान किए गए regex पैटर्न के साथ एक shimcache आर्टिफैक्ट का विश्लेषण करें, और टाइमस्टैम्प नियर पेयर डिटेक्शन सक्षम के साथ amcache संवर्धन का उपयोग करें। आउटपुट को csv फ़ाइल में दें।
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt --amcache ./Amcache.hve --tspair --output ./output.csv
प्रदान किए गए regex पैटर्न के साथ एक shimcache आर्टिफैक्ट का विश्लेषण करें (amcache संवर्धन के बिना)। आउटपुट टर्मिनल पर दें।
./chainsaw analyse shimcache ./SYSTEM --regexfile ./analysis/shimcache_patterns.txt
एक या अधिक .evtx फ़ाइलों के भीतर चयनात्मक इवेंट-लॉग छेड़छाड़ के दो संकेतकों का पता लगाता है:
RecordID गैप: प्रति-चैनल EventRecordID मान सामान्यतः बिना किसी छेद के नीरस रूप से बढ़ते हैं। एक एकल evtx फ़ाइल के अंदर छेद (यानी, लॉग-रोटेशन सीमा नहीं) असामान्य है और यह उन टूल्स द्वारा छोड़ी गई उंगलियों के निशान हैं जो शोर वाले "लॉग साफ़" इवेंट (EID 1102) को ट्रिगर किए बिना व्यक्तिगत रिकॉर्ड्स को शल्य चिकित्सा द्वारा हटाते हैं (जैसे, Eventlogedit-शैली की तकनीकें)।
समय गैप: सामान्यतः व्यस्त चैनल पर लगातार इवेंट्स के बीच अप्रत्याशित रूप से लंबी शांत अवधि यह संकेत दे सकती है कि उस अवधि के रिकॉर्ड हटा दिए गए थे। थ्रेशोल्ड कॉन्फ़िगर करने योग्य है; प्रति-होस्ट बेसलाइनिंग विश्लेषक पर छोड़ दी गई है।
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
डिफ़ॉल्ट 30-मिनट थ्रेशोल्ड के साथ evtx फ़ाइलों वाली डायरेक्टरी को RecordID और समय गैप दोनों के लिए स्कैन करें:
./chainsaw analyse gaps ./Logs/
केवल चुनिंदा रूप से हटाए गए रिकॉर्ड्स (RecordID छेद) खोजें, और मशीन-पठनीय JSON आउटपुट करें:
./chainsaw analyse gaps ./Logs/ --no-time-gaps --json -o ./gaps.json
Chainsaw में लागू किया गया SRUM डेटाबेस पार्सर अन्य पार्सर्स से अलग है क्योंकि यह तालिकाओं के बारे में हार्डकोडेड मानों पर निर्भर नहीं करता है। जानकारी सीधे SOFTWARE हाइव से निकाली जाती है, जो एक अनिवार्य तर्क है। लक्ष्य अज्ञात तालिकाओं से संबंधित त्रुटियों से बचना है।
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 डेटाबेस का विश्लेषण करें (SOFTWARE हाइव अनिवार्य है)
./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"
इस आर्टिफैक्ट से संबंधित नई फोरेंसिक अंतर्दृष्टि के बारे में जानकारी 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
SOFTWARE हाइव डंप करें
./chainsaw dump ./SOFTWARE.hve --json --output ./output.json
| इवेंट प्रकार | इवेंट ID |
|---|
| प्रोसेस क्रिएशन (Sysmon) | 1 |
| नेटवर्क कनेक्शन (Sysmon) | 3 |
| इमेज लोड (Sysmon) | 7 |
| फ़ाइल क्रिएशन (Sysmon) | 11 |
| रजिस्ट्री इवेंट्स (Sysmon) | 13 |
| पावरशेल स्क्रिप्ट ब्लॉक | 4104 |
| प्रोसेस क्रिएशन | 4688 |
| शेड्यूल्ड टास्क क्रिएशन | 4698 |
| सर्विस क्रिएशन | 7045 |