
इंसिडेंट रिस्पॉन्डर्स को संभावित प्रतिकूल स्थिरता तंत्रों का पता लगाने में मदद करने वाला PowerShell स्क्रिप्ट।
ट्रॉलर एक PowerShell स्क्रिप्ट है जो घटना प्रतिक्रियाकर्ताओं को विंडोज होस्ट पर समझौते के संभावित संकेतक खोजने में मदद करने के लिए डिज़ाइन की गई है, जो मुख्य रूप से निर्धारित कार्यों, सेवाओं, रजिस्ट्री संशोधनों, स्टार्टअप आइटम, बाइनरी संशोधनों और अधिक सहित पर्सिस्टेंस तंत्रों पर केंद्रित है।
वर्तमान में, ट्रॉलर MITRE और Atomic Red Team द्वारा विशेष रूप से बताई गई अधिकांश पर्सिस्टेंस तकनीकों का पता लगा सकता है, और नियमित रूप से और अधिक जांच जोड़ी जा रही है।
बस एक प्रशासनिक PowerShell/cmd प्रॉम्प्ट से trawler.ps1 डाउनलोड करें और चलाएं - कोई भी जांच कंसोल में प्रदर्शित होगी और वर्तमान कार्यशील निर्देशिका में CSV ('detections.csv') में लिखी जाएगी। उत्पन्न CSV में जांच नाम, स्रोत, जोखिम, मेटाडेटा और प्रासंगिक MITRE तकनीक शामिल होगी।
या एक प्रशासनिक PowerShell टर्मिनल से इस वन-लाइनर का उपयोग करें:
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/joeavanzato/Trawler/main/trawler.ps1'))
कुछ जांचों में डिफ़ॉल्ट विंडोज कॉन्फ़िगरेशन (10/2016/2019/2022) से शोर हटाने में मदद करने के लिए अंतर्निहित अनुमति-सूचियाँ होती हैं - अपेक्षित निर्धारित कार्य, सेवाएँ, आदि। बेशक, हमलावरों के लिए सीधे इनका अपहरण करना और एक डिफ़ॉल्ट OS प्रक्रिया के रूप में विस्तार से भेस बदलना हमेशा संभव है - कुशल विरोधियों से निपटते समय कई प्रकार के विश्लेषण और जांच का उपयोग करने का ध्यान रखें।
यदि आपके पास अतिरिक्त जांचों के लिए उदाहरण या विचार हैं, तो कृपया प्रासंगिक तकनीकी विवरण/संदर्भों के साथ एक Issue या PR सबमिट करने में संकोच न करें - कोड-बेस अभी थोड़ा अव्यवस्थित है और समय के साथ साफ किया जाएगा।
इसके अतिरिक्त, यदि आप स्पष्ट झूठी सकारात्मकताओं की पहचान करते हैं, तो कृपया GitHub पर Issue या PR खोलकर मुझे बताएं! इसके स्पष्ट कारण गैर-मानक COM, सेवाएँ या कार्य होंगे।
-scanoptions : Tab-through for possible detections and select a sub-set using comma-delimited terms (eg. .\trawler.ps1 -scanoptions Services,Processes) or skip to do all detections
-quiet : Suppress Detection output to console
-snapshot : Path to a previous trawler JSON output to use as an allow-list.
-outpath : Define a custom file-path for saving detection output to (defaults to "$PSScriptRoot\detections.csv")
-drivetarget : Define the variable for a mounted target drive (eg. .\trawler.ps1 -targetdrive "D:") - (defaults to local system)
-daysago : Define how many 'days back' we want to take into consideration for time-based detections (defaults to 45)
-hashmode : Define which hashing algorithm we want to use for supported detections - supports sha1, md5 or sha256 (defaults to sha1)
-evtx : Enable creation of Event Log Source and Writing of Detections to Application event log under Source=trawler with EID=9001 (default is disabled)
PersistenceSniper एक शानदार टूल है - मैंने पिछले समय में इसका भारी उपयोग किया है - लेकिन कुछ मुख्य बिंदु हैं जो इन उपयोगिताओं को अलग करते हैं
कुल मिलाकर, ये उपकरण अत्यधिक समान हैं लेकिन समस्या को थोड़े अलग कोणों से देखते हैं - PersistenceSniper सभी जानकारी विश्लेषक को समीक्षा के लिए लौटाता है जबकि Trawler केवल उन परिणामों को लौटाने का प्रयास करता है जो संभावित प्रतिद्वंदी पर्सिस्टेंस तंत्र होने की संभावना रखते हैं। इस तरह, trawler के साथ झूठी-नकारात्मकता की संभावना है यदि कोई प्रतिद्वंदी किसी अनुमति-सूचीबद्ध आइटम की पूरी तरह से नकल करता है।
एक उदाहरण के रूप में - PersistenceSniper सभी 'गैर-सुरक्षित' Windows सेवाओं को वापस करेगा जबकि trawler केवल उन्हीं को वापस करेगा जो एक विशिष्ट जांच नियम से मेल खाते हैं, आदि।
Trawler एक 'स्नैपशॉट' से अनुमति-सूची लोड करने का समर्थन करता है - इसके लिए दो चरणों की आवश्यकता है।
बस इतना ही - सभी प्रासंगिक जांचें तब शोर को कम करने और बेस इमेज में होने वाले किसी भी संभावित परिवर्तन की पहचान करने के लिए स्नैपशॉट फ़ाइल से अनुमति-सूची के रूप में आकर्षित करेंगी।
(अधिकांश जाँचों के लिए अनुमति-सूची लागू की गई है लेकिन सभी के लिए नहीं - अभी भी सक्रिय रूप से लागू की जा रही है)
अक्सर एक जाँच के दौरान, विश्लेषक एक नई ड्राइव माउंट कर सकते हैं जो एक इमेज किए गए विंडोज डिवाइस का प्रतिनिधित्व करती है - Trawler अब '-drivetarget' पैरामीटर के उपयोग के माध्यम से इन माउंटेड ड्राइव को स्कैन करने का आंशिक रूप से समर्थन करता है।
रनटाइम पर, Trawler फ़ाइल-आधारित आर्टिफैक्ट की जाँच करने के लिए अस्थायी स्क्रिप्ट-स्तरीय चरों को रीटार्गेट करेगा और HKLM/HKU के अंतर्गत प्रासंगिक रजिस्ट्री हाइव (HKLM\SOFTWARE, HKLM\SYSTEM, NTUSER.DATs, USRCLASS.DATs) को लोड करने का प्रयास करेगा, जो 'ANALYSIS_' से उपसर्गित होंगे। Trawler स्क्रिप्ट पूर्ण होने पर इन अस्थायी रूप से लोड किए गए हाइव को अनलोड करने का भी प्रयास करेगा।
उदाहरण के तौर पर, यदि आपके पास 'F:\Test' जैसे स्थान पर एक इमेज माउंट है जिसमें NTFS फाइल सिस्टम है ('F:\Test\Windows', 'F:\Test\User', आदि), तो आप trawler को नीचे दिए अनुसार आमंत्रित कर सकते हैं;
.\trawler.ps1 -drivetarget "F:\Test"
कृपया ध्यान दें कि चूंकि trawler प्रश्न में ड्राइव से रजिस्ट्री हाइव फ़ाइलों को लोड करने का प्रयास करता है, एक लाइव रिमोट डिवाइस पर UNC पथ मैप करना काम नहीं करेगा क्योंकि सिस्टम लॉक के कारण वे फ़ाइलें सुलभ नहीं होंगी। मैं एक ऐसे दृष्टिकोण पर काम कर रहा हूं जो लाइव रिमोट डिवाइसों को संभालेगा, बने रहें।