
Windows फोरेंसिक आर्टिफैक्ट्स के माध्यम से तेज़ी से खोजें और शिकार करें
Chainsaw Windows फोरेंसिक आर्टिफैक्ट्स जैसे Event Logs और MFT फ़ाइल के भीतर खतरों को शीघ्रता से पहचानने के लिए एक शक्तिशाली 'प्रथम-प्रतिक्रिया' क्षमता प्रदान करता है। Chainsaw कीवर्ड के लिए इवेंट लॉग्स के माध्यम से खोज करने का एक सामान्य और तेज़ तरीका प्रदान करता है, और Sigma डिटेक्शन नियमों के लिए अंतर्निहित समर्थन तथा कस्टम Chainsaw डिटेक्शन नियमों के माध्यम से खतरों की पहचान करता है।
विस्तृत जानकारी इस टूल के Wiki में पाई जा सकती है: https://github.com/WithSecureLabs/chainsaw/wiki
WithSecure Countercept में, हम अपनी प्रबंधित डिटेक्शन और प्रतिक्रिया सेवा प्रदान करने के लिए अपने EDR एजेंट के माध्यम से एंडपॉइंट्स से टेलीमेट्री स्रोतों की एक विस्तृत श्रृंखला को इनजेस्ट करते हैं। हालाँकि, ऐसी परिस्थितियाँ होती हैं जहाँ हमें उन फोरेंसिक आर्टिफैक्ट्स का शीघ्रता से विश्लेषण करने की आवश्यकता होती है जिन्हें हमारे EDR द्वारा कैप्चर नहीं किया गया है, एक सामान्य उदाहरण किसी ऐसे एस्टेट पर इंसिडेंट रिस्पॉन्स जाँच है जहाँ समझौते के समय हमारा EDR इंस्टॉल नहीं था। Chainsaw को इन परिस्थितियों में फोरेंसिक आर्टिफैक्ट्स की त्वरित ट्राइएज करने के लिए एक टूल के रूप में हमारे थ्रेट हंटर्स और इंसिडेंट रिस्पॉन्स सलाहकारों को प्रदान करने के लिए बनाया गया था।
Windows इवेंट लॉग्स थ्रेट हंटिंग और इंसिडेंट रिस्पॉन्स जाँच के लिए फोरेंसिक जानकारी का एक समृद्ध स्रोत प्रदान करते हैं। दुर्भाग्य से, इवेंट लॉग्स को संसाधित करना और उनके माध्यम से खोजना एक धीमी और समय लेने वाली प्रक्रिया हो सकती है, और अधिकांश मामलों में लॉग डेटा के माध्यम से कुशलता से शिकार करने और डिटेक्शन लॉजिक लागू करने के लिए आसपास के इंफ्रास्ट्रक्चर – जैसे ELK स्टैक या Splunk इंस्टेंस – के ओवरहेड की आवश्यकता होती है। यह ओवरहेड अक्सर इसका मतलब होता है कि ब्लू टीमें अपनी जाँच को आगे बढ़ाने के लिए आवश्यक दिशा और निष्कर्ष प्रदान करने के लिए Windows इवेंट लॉग्स की शीघ्रता से ट्राइएज करने में असमर्थ होती हैं। Chainsaw इस समस्या का समाधान करता है क्योंकि यह Windows इवेंट लॉग्स के माध्यम से तेज़ खोज और शिकार की अनुमति देता है।
इस लेखन के समय, बहुत कम ओपन-सोर्स, स्टैंडअलोन टूल्स हैं जो Windows इवेंट लॉग्स की ट्राइएज करने, लॉग्स के भीतर रोचक तत्वों की पहचान करने और दुर्भावनापूर्ण गतिविधि के संकेतों का पता लगाने के लिए डिटेक्शन लॉजिक नियम प्रारूप (जैसे Sigma) लागू करने का एक सरल और तेज़ तरीका प्रदान करते हैं। हमारे परीक्षण में, जो टूल्स मौजूद थे वे बड़ी मात्रा में इवेंट लॉग्स पर कुशलता से डिटेक्शन लॉजिक लागू करने में संघर्ष करते थे, जिससे वे उन परिदृश्यों के लिए अनुपयुक्त हो जाते थे जहाँ त्वरित ट्राइएज की आवश्यकता होती है।
--sigma और --mapping पैरामीटर का उपयोग करके आप SIGMA डिटेक्शन नियमों के एक सबसेट (या पूरे SIGMA git रेपो) वाली एक डायरेक्टरी निर्दिष्ट कर सकते हैं और chainsaw स्वचालित रूप से इन नियमों को लोड, कन्वर्ट और प्रदान किए गए इवेंट लॉग्स के विरुद्ध चलाएगा। मैपिंग फ़ाइल chainsaw को बताती है कि रूल मैचिंग के लिए इवेंट लॉग्स में किन फ़ील्ड्स का उपयोग करना है। डिफ़ॉल्ट रूप से, Chainsaw इवेंट लॉग प्रकारों की एक विस्तृत श्रृंखला का समर्थन करता है, जिसमें निम्नलिखित शामिल हैं लेकिन इन्हीं तक सीमित नहीं हैं:
रूल डिटेक्शन के लिए उपयोग किए जाने वाले फ़ील्ड्स की पूरी सूची के लिए मैपिंग फ़ाइल देखें, और अपनी आवश्यकताओं के अनुसार इसे विस्तारित करने में संकोच न करें।
sigma नियमों का समर्थन करने के अलावा, Chainsaw एक कस्टम रूल प्रारूप का भी समर्थन करता है। रेपो में आपको एक rules डायरेक्टरी मिलेगी जिसमें विभिन्न Chainsaw नियम हैं जो उपयोगकर्ताओं को निम्नलिखित की अनुमति देते हैं:
Chainsaw v2 की रिलीज़ के साथ, हमने Sigma Rules और EVTX-Attack-Samples रेपो को Chainsaw सबमॉड्यूल के रूप में शामिल न करने का निर्णय लिया। हम अनुशंसा करते हैं कि आप इन रेपो को अलग से क्लोन करें ताकि आपके पास नवीनतम संस्करण सुनिश्चित हों।
यदि आपको अभी भी Chainsaw बाइनरी, Sigma नियमों और उदाहरण Event logs वाला एक ऑल-इन-वन पैकेज चाहिए, तो आप इसे इस GitHub रेपो के releases section से डाउनलोड कर सकते हैं। इस 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 / AntiVirus इंजन Chainsaw को दुर्भावनापूर्ण के रूप में पहचानता है। आप इसके उदाहरण निम्नलिखित GitHub issues में देख सकते हैं: Example1, Example2।
ये चेतावनियाँ आमतौर पर उदाहरण इवेंट लॉग और/या Sigma नियमों के कारण होती हैं जिनमें दुर्भावनापूर्ण स्ट्रिंग्स (जैसे "mimikatz") के संदर्भ होते हैं। हमने ऐसे मामले भी देखे हैं जहाँ Chainsaw बाइनरी को Anti-Virus इंजनों के एक छोटे से उपसमूह द्वारा पहचाना गया है, संभवतः किसी प्रकार की ह्यूरिस्टिक्स पहचान के कारण।
जुलाई 2022 में हमने Chainsaw का संस्करण 2 जारी किया जो Chainsaw के संचालन के तरीके में एक बड़ा बदलाव है। Chainsaw v2 में कई महत्वपूर्ण सुधार शामिल हैं, जिनमें निम्नलिखित मुख्य बिंदुओं की सूची है:
यदि आप अभी भी Chainsaw के संस्करण 1 का उपयोग करना चाहते हैं, तो आप releases section में संकलित बाइनरी पा सकते हैं, या आप 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
case-insensitive स्ट्रिंग "mimikatz" के लिए सभी .evtx फ़ाइलों को खोजें
./chainsaw search mimikatz -i evtx_attack_samples/
*powershell script block events (Event ID 4014) के लिए सभी .evtx फ़ाइलों को खोजें
./chainsaw search -t 'Event.System.EventID: =4104' evtx_attack_samples/
मिलते-जुलते regex पैटर्न के साथ logon events के लिए एक विशिष्ट evtx लॉग खोजें, 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 फ़ाइलों के माध्यम से शिकार करें और results फ़ोल्डर में CSV प्रारूप में आउटपुट करें
./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 वैकल्पिक amcache संवर्धन के साथ shimcache से निष्पादन टाइमलाइन बनाएं
USAGE:
chainsaw analyse shimcache [OPTIONS] <SHIMCACHE>
ARGUMENTS:
<SHIMCACHE> shimcache आर्टिफैक्ट का पथ (SYSTEM रजिस्ट्री फ़ाइल)
OPTIONS:
-e, --regex <pattern> उन shimcache प्रविष्टियों का पता लगाने के लिए एक स्ट्रिंग या रेगुलर एक्सप्रेशन जिनका टाइमस्टैम्प उनके इन्सर्शन समय से मेल खाता है
-r, --regexfile <REGEX_FILE> उन shimcache प्रविष्टियों का पता लगाने के लिए regex पैटर्न वाली न्यूलाइन-सीमांकित फ़ाइल का पथ जिनका टाइमस्टैम्प उनके इन्सर्शन समय से मेल खाता है
-o, --output <OUTPUT> परिणाम csv फ़ाइल को आउटपुट करने का पथ
-a, --amcache <AMCACHE> टाइमलाइन संवर्धन के लिए amcache आर्टिफैक्ट (Amcache.hve) का पथ
-p, --tspair shimcache प्रविष्टियों के लिए अतिरिक्त इन्सर्शन टाइमस्टैम्प खोजने के लिए shimcache और amcache के बीच निकट टाइमस्टैम्प युग्म का पता लगाना सक्षम करें
-h, --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 evtx फ़ाइलों में कालानुक्रमिक या RecordID गैप का पता लगाएं (संभावित चुनिंदा रिकॉर्ड विलोपन)
USAGE: chainsaw analyse gaps [OPTIONS] [PATH]...
ARGUMENTS: [PATH]... evtx फ़ाइलों या उन्हें शामिल करने वाली निर्देशिकाओं का पथ
OPTIONS: --min-time-gap-minutes संदिग्ध के रूप में फ़्लैग करने के लिए लगातार इवेंट्स के बीच न्यूनतम समय गैप (मिनटों में) [default: 30] --no-record-id-gaps RecordID गैप डिटेक्शन छोड़ें (केवल समय गैप फ़्लैग करें) --no-time-gaps समय गैप डिटेक्शन छोड़ें (केवल RecordID गैप फ़्लैग करें) -j, --json आउटपुट को json प्रारूप में प्रिंट करें -o, --output आउटपुट को एक फ़ाइल में सहेजें -q सूचनात्मक आउटपुट को दबाएं --skip-errors त्रुटि आने पर जारी रखें -h, --help सहायता प्रिंट करें
डिफ़ॉल्ट 30-मिनट थ्रेशोल्ड के साथ RecordID और समय गैप दोनों के लिए evtx फ़ाइलों की एक निर्देशिका स्कैन करें:
./chainsaw analyse gaps ./Logs/
केवल चुनिंदा रूप से हटाए गए रिकॉर्ड (RecordID छेद) खोजें, और मशीन-पठनीय JSON उत्सर्जित करें:
./chainsaw analyse gaps ./Logs/ --no-time-gaps --json -o ./gaps.json
Chainsaw में कार्यान्वित SRUM डेटाबेस पार्सर अन्य पार्सर से इसलिए भिन्न है क्योंकि यह तालिकाओं के बारे में हार्डकोडेड मानों पर निर्भर नहीं करता। जानकारी सीधे SOFTWARE hive से निकाली जाती है, जो एक अनिवार्य तर्क है। लक्ष्य अज्ञात तालिकाओं से संबंधित त्रुटियों से बचना है।
COMMAND:
analyse srum SRUM डेटाबेस का विश्लेषण करें
USAGE:
chainsaw analyse srum [OPTIONS] --software <SOFTWARE_HIVE_PATH> <SRUM_PATH>
ARGUMENTS:
<SRUM_PATH> SRUM डेटाबेस का पथ
OPTIONS:
-s, --software <SOFTWARE_HIVE_PATH> SOFTWARE hive का पथ
--stats-only केवल SRUM डेटाबेस के बारे में विवरण आउटपुट करें
-q सूचनात्मक आउटपुट को दबाएं
-o, --output <OUTPUT> आउटपुट को एक फ़ाइल में सहेजें
-h, --help सहायता प्रिंट करें
SRUM डेटाबेस का विश्लेषण करें (SOFTWARE hive अनिवार्य है)
./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 "/home/user/Documents/SRUDB.dat" से लोड किया गया
[+] ESE database को parse किया जा रहा है...
[+] SOFTWARE hive "/home/user/Documents/SOFTWARE" से लोड किया गया
[+] SOFTWARE registry hive को parse किया जा रहा है...
[+] SRUM database का विश्लेषण किया जा रहा है...
[+] SRUM extensions से संबंधित tables का विवरण:
+------------------------------------------+--------------------------------------------+--------------------------------------+-------------------------+-------------------------+
| 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 सफलतापूर्वक parse किया गया
[+] आउटपुट "/home/user/Documents/output.json" में सहेजा जा रहा है
[+] आउटपुट "/home/user/Documents/output.json" में सहेजा गया
इस artefact से संबंधित नई forensic insights की जानकारी 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
Dump the SOFTWARE hive
./chainsaw dump ./SOFTWARE.hve --json --output ./output.json
| Event Type | Event ID |
|---|
| Process Creation (Sysmon) | 1 |
| Network Connections (Sysmon) | 3 |
| Image Loads (Sysmon) | 7 |
| File Creation (Sysmon) | 11 |
| Registry Events (Sysmon) | 13 |
| Powershell Script Blocks | 4104 |
| Process Creation | 4688 |
| Scheduled Task Creation | 4698 |
| Service Creation | 7045 |