
थ्रेट हंटिंग सत्रों के लिए कीवर्ड्स और आर्टिफैक्ट्स की शानदार सूची
🎯 ThreatHunting सत्रों के लिए कीवर्ड की सूची


थ्रेट हंटिंग एक सक्रिय और पुनरावृत्तिमूलक दृष्टिकोण है, जो किसी संगठन के नेटवर्क या सिस्टम के भीतर उन दुर्भावनापूर्ण गतिविधियों का पता लगाने के लिए उपयोग किया जाता है जो स्वचालित सुरक्षा उपायों को दरकिनार कर सकती हैं। सुरक्षा अलर्ट द्वारा ट्रिगर होने वाली प्रतिक्रियात्मक जांचों के विपरीत, थ्रेट हंटिंग थ्रेट इंटेलिजेंस (TI) आधारित जांचों और व्यवस्थित तथा अवसरवादी विश्लेषण से प्राप्त परिकल्पनाओं द्वारा संचालित होती है। ये परिकल्पनाएँ 💡 हंटरों को अज्ञात खतरों, संभावित खतरों, या ज्ञात खतरों का पता लगाने में मदद करती हैं जो सुरक्षा डिटेक्शन से बच सकते हैं, साथ ही उन कमजोरियों या समझौते के संकेतकों (IoCs) का भी पता लगाती हैं जिन्हें स्वचालित सिस्टम अनदेखा या बाहर कर सकते हैं। यह प्रक्रिया अलर्ट/डैशबोर्ड के अग्रदूतों की पहचान करने और SOC/ट्रायेज वर्कफ्लो को बेहतर बनाने पर भी केंद्रित है, साथ ही शैडो एसेट इन्वेंट्री प्रबंधन में योगदान देती है और उन कम/मध्यम-विश्वसनीयता वाली घटनाओं को एस्केलेट करती है जिन्हें आगे की जांच की आवश्यकता होती है। प्राथमिक लक्ष्य थ्रेट एक्टर्स द्वारा उपयोग की जाने वाली रणनीतियों, तकनीकों और प्रक्रियाओं (TTPs) की पहचान करना है, जिससे संगठन की संभावित हमलों का पहले से पता लगाने और उन्हें कम करने की क्षमता बढ़ती है।

SOC के भीतर उच्च-गुणवत्ता वाले डिटेक्शन नियमों को बनाए रखने के लिए आंशिक रूप से स्वचालित थ्रेट हंटिंग सत्रों को व्यवस्थित करने का मेरा प्रक्रिया सुझाव

SOC टीमें डिटेक्शन परिपक्वता पिरामिड के सभी स्तरों पर उच्च-विश्वसनीयता वाले डिटेक्शन तैनात करने पर ध्यान केंद्रित करती हैं, जिसमें न्यूनतम फ़ॉल्स पॉज़िटिव्स के साथ ज्ञात खतरों को लक्षित किया जाता है। थ्रेट हंटिंग अज्ञात खतरों, उन्नत TTPs और उच्च फ़ॉल्स-पॉज़िटिव दर वाली विसंगतियों को संबोधित करके इसे पूरक बनाती है, गैप्स को पाटती है और मानक SOC क्षमताओं से परे डिटेक्शन कवरेज को बढ़ाती है।


आदर्श रूप से, प्रत्येक थ्रेट हंटिंग सत्र के स्पष्ट उद्देश्य होने चाहिए। यह फ्लोचार्ट आपकी प्रक्रिया को मार्गदर्शित करने के लिए एक संरचित दृष्टिकोण प्रदान करता है, तैयारी और जांच से लेकर कार्रवाई योग्य अनुशंसाओं तक।
🎯 ThreatHunting सत्रों के लिए कीवर्ड की सूची
ThreatHunting-Keywords सूचियाँ थ्रेट हंटर्स, SOC और CERT टीमों के लिए SIEM पर स्थैतिक विश्लेषण हेतु मूल्यवान हो सकती हैं, क्योंकि यह लॉग्स में प्रसिद्ध एक्सप्लॉइटेशन टूल्स के डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग कर रहे थ्रेट एक्टर्स (या रेडटीमर्स 😆) की पहचान करने में सहायता करती है। यह अपनी स्थायी प्रासंगिकता में IOC फीड्स से भिन्न है: यहाँ के कीवर्ड की कोई 'समाप्ति तिथि' नहीं होती और ये शामिल किए जाने के वर्षों बाद भी खतरों का पता लगा सकते हैं, ये लचीले हैं जो वाइल्डकार्ड और केस-संवेदनशीलता रहित मैच स्वीकार करते हैं और केवल डिफ़ॉल्ट कीवर्ड पर केंद्रित हैं।
मुख्य रूप से थ्रेट हंटिंग के लिए डिज़ाइन की गई, यह सूची जटिल परिदृश्यों में उपयोगी हो सकती है। चाहे आपके पास ऐसे SIEM तक पहुँच हो जिसे आप प्रबंधित नहीं करते, जिसमें अनपार्स्ड डेटा हो, या आप एक अच्छी तरह से प्रबंधित SIEM वाली SOC टीम का हिस्सा हों, यहाँ दिए गए उदाहरण कुछ भी पार्स करने की आवश्यकता के बिना दुर्भावनापूर्ण गतिविधि का पता लगाने की प्रक्रिया को तेज़ कर सकते हैं। यदि आपके लॉग्स पहले से पार्स्ड हैं, तो इस सूची का उपयोग आपके डेटा के भीतर फ़ील्ड मैच करने के लिए किया जा सकता है, जो आपके द्वारा चुनी गई कीवर्ड प्रकार श्रेणी के आधार पर संभावित रूप से एक डिटेक्शन नियम में परिवर्तित हो सकता है, बशर्ते फ़ॉल्स पॉज़िटिव दर पर्याप्त रूप से कम हो।
⚠️ इस सूची में सब कुछ नहीं जोड़ा जा सकता, हम यहाँ जटिल व्यवहार डिटेक्शन नहीं बनाते, केवल फ़ील्ड या रॉ लॉग्स में सरल कीवर्ड डिटेक्शन, जिनका उद्देश्य डिफ़ॉल्ट कॉन्फ़िगरेशन का पता लगाना है
⚠️ सूची में कई टूल्स के लिए समर्पित डिटेक्शन नियम हैं, जो थ्रेशोल्ड और अद्वितीय प्रोसेस संबंधों के साथ घटनाओं को सहसंबंधित करते हैं... हम यहाँ किसी टूल के लिए सभी संभावित डिटेक्शन को कवर नहीं करेंगे, केवल कीवर्ड डिटेक्शन
यदि आप सिक्योरिटी ऑपरेशंस सेंटर (SOC) का हिस्सा हैं और किसी भी फ़ील्ड या इवेंट सहसंबंध के बिना केवल सरल कीवर्ड डिटेक्शन पर निर्भर सैकड़ों डिटेक्शन नियमों का प्रबंधन कर रहे हैं, तो अपने दृष्टिकोण पर पुनर्विचार करने पर विचार करें। मेरी राय में, इन्हें व्यक्तिगत डिटेक्शन नियम नहीं बनना चाहिए। इसके बजाय, वे इस तरह की समेकित सूची के लिए अधिक उपयुक्त हो सकते हैं, हालाँकि यदि आप Splunk जैसे प्लेटफ़ॉर्म का उपयोग नहीं कर रहे हैं तो कार्यान्वयन अधिक चुनौतीपूर्ण हो सकता है।
यह दृष्टिकोण उच्च-गुणवत्ता वाले, उद्देश्यपूर्ण नियमों के निर्माण को प्रोत्साहित करता है, साथ ही आपके सरल फ़ील्ड कीवर्ड डिटेक्शन को एक स्थान पर व्यवस्थित और प्रबंधनीय रखता है। अंतिम परिणाम? एक व्यापक डिटेक्शन नियम जो उन सभी को कवर करता है। यह आपकी प्रक्रिया को सुव्यवस्थित करता है और आपकी डिटेक्शन क्षमताओं को अनुकूलित करता है।
इंसिडेंट रिस्पॉन्डर्स के लिए, आप रॉ लॉग्स या फ़ाइलों पर अपनी जांच के दौरान इस सूची का उपयोग yara नियमों Yara Rules, एक powershell स्क्रिप्ट या Splunk4DFIR के साथ splunk में अपने लॉग्स को तेज़ी से इन्जेस्ट करके ज्ञात एक्सप्लॉइटेशन टूल्स की तुरंत पहचान कर सकते हैं
सरल कीवर्ड डिटेक्शन से बचने के लिए, अपने ऑपरेशन के दौरान उपयोग किए जा रहे टूल्स से संबंधित सभी कस्टम स्ट्रिंग्स, क्लास या फंक्शन नाम, वेरिएबल नाम, आर्गुमेंट नाम, एक्ज़ीक्यूटेबल नाम, डिफ़ॉल्ट यूज़र-एजेंट्स, सर्टिफिकेट, या किसी भी अन्य स्ट्रिंग्स को पुनः संकलित (recompile) और पुनः नामित (rename) करना महत्वपूर्ण है। सामान्य ट्रैफ़िक के साथ घुलने-मिलने के लिए हर चीज़ के लिए सबसे सामान्य नामों का उपयोग करें। यहाँ स्थित स्क्रिप्ट्स इनमें से कुछ की पहचान करने में आपकी सहायता कर सकती हैं।
हालाँकि, यदि आप सार्वजनिक "रेड टीम टूल्स" विकसित कर रहे हैं, तो विशिष्ट नामों का उपयोग करके ब्लू टीम की सहायता करने पर विचार करें। एक विदेशी पोर्ट, कस्टम सर्टिफिकेट, अद्वितीय यूज़र-एजेंट्स, विशिष्ट फंक्शन नाम और आर्गुमेंट्स के साथ एक डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करें जो सामान्य न हों। यह एक स्पष्ट सिग्नेचर बनाने में सहायता करता है जिसका उपयोग सरल कीवर्ड डिटेक्शन के लिए किया जा सकता है, ताकि ब्लूटीम कम से कम स्क्रिप्ट किडीज़ को आसानी से पहचान सके।
हेडर: keyword,metadata_keyword_type,metadata_tool,metadata_description,metadata_tool_techniques,metadata_tool_tactics,metadata_malwares_name,metadata_groups_name,metadata_category,metadata_link,metadata_enable_endpoint_detection,metadata_enable_proxy_detection,metadata_tags,metadata_comment,metadata_severity_score,metadata_popularity_score,metadata_github_stars,metadata_github_forks,metadata_github_created_at,metadata_github_updated_at
keyword: इस कॉलम की प्रविष्टियाँ थ्रेट हंटिंग के लिए उपयोग किए जाने वाले केस-संवेदनशीलता रहित कीवर्ड को दर्शाती हैं। ये कीवर्ड लचीले हैं, जो आवश्यकतानुसार अपने खोज मापदंडों को व्यापक या संकीर्ण करने के लिए वाइल्डकार्ड के उपयोग की अनुमति देते हैं।
metadata_keyword_regex: इस कॉलम की प्रविष्टियाँ कीवर्ड के लिए regex पैटर्न डिटेक्शन को दर्शाती हैं, ये पैटर्न सटीक डिटेक्शन क्षमताएँ प्रदान करने के लिए परिष्कृत हैं, जो YARA, ripgrep या समान डिटेक्शन टूल्स के साथ उपयोग के लिए उपयुक्त हैं।
metadata_keyword_type: कीवर्ड का प्रकार, वर्तमान में तीन प्रकार हैं:
offensive tool keyword: ये कीवर्ड आक्रामक (offensive) टूल्स से संबंधित हैं या दुर्भावनापूर्ण इरादे की उच्च विश्वसनीयता दर्शाते हैं। यह महत्वपूर्ण है कि ये शब्द संभावित खतरों का पता लगाने में प्रासंगिकता और विश्वसनीयता बनाए रखें (कम फ़ॉल्स पॉज़िटिव दर)Splunk पर सूची threathunting-keywords.csv अपलोड करें
लुकअप threathunting-keywords.csv के लिए threathunting-keywords नामक एक लुकअप परिभाषा बनाएं
WILDCARD(keyword) जोड़ें और सुनिश्चित करें कि Case sensitive match चेक नहीं है
transforms.conf``` [threathunting-keywords] batch_index_query = 0 case_sensitive_match = 0 filename = threathunting-keywords.csv match_type = WILDCARD(keyword)
- अब हम अपनी लुकअप परिभाषा का उपयोग शिकार 🏹 करने के लिए कर सकते हैं
- :warning: यदि निम्नलिखित अनुभाग की खोजें काम करती नहीं दिख रही हैं, तो यह स्प्लंक संसाधन सीमा सेटिंग्स के कारण हो सकता है, खासकर यदि आप डिफ़ॉल्ट कॉन्फ़िगरेशन के तहत स्प्लंक चला रहे हैं। शुरुआत के लिए आपको `[lookup]` स्टैंज़ा में `max_memtable_bytes` मान बढ़ाने पर विचार करना पड़ सकता है।
## `threathunting-keywords` के साथ उपयोग के उदाहरण:

### कच्चे लॉग में सभी कीवर्ड खोजें 😱```
`myendpointslogs`
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
Send the job to background and keep the job ID.

myendpointslogs एक मैक्रो है जो आपके सभी एंडपॉइंट लॉग्स को खोजेगा, चाहे वे Windows लॉग्स हों, EDR टेलीमेट्री, sysmon, auditd, bastion सत्र, PowerShell निष्पादन लॉग्स, या कोई अन्य लॉग जो प्रोसेस गतिविधि या फ़ाइल गतिविधि की निगरानी करते हों। (यदि आप मैक्रो का उपयोग नहीं करते हैं, तो आप मैक्रो को अपने index, tag या datamodel से बदल सकते हैं)
|lookup से पहले विशिष्ट खोजों के लिए TERM() कमांड से फ़िल्टर करें।| lookup यह बहुत महत्वपूर्ण है, इस तरह के बड़े lookups के लिए, हमेशा |lookup इस्तेमाल करें न कि |inputlookup; |lookup उस lookup का उपयोग करेगा जो bundle replicate होने पर indexers पर डाल दिया गया है, जबकि |inputlookup हर बार पूरे lookup content के साथ search को indexers को भेजेगा। |lookup का उपयोग करके हमें यहाँ काफी बेहतर performance मिलती है (यह search बड़े environments पर घंटों चलेगा, इसलिए बेहतर होगा कि search optimize करें)।... keyword as _raw OUTPUT keyword as keyword_detection यह वह हिस्सा है जहाँ हम अपने lookup में नामक फ़ील्ड को फ़ील्ड से मिलाएँगे। Splunk में बिना किसी parsing के कच्चा लॉग (raw log) होता है (हमारा use case)। जब कोई keyword मैच करता है, तो फ़ील्ड lookup में वह keyword दिखाएगा जो यहाँ () फ़ील्ड पर मैच किया है।परिणाम फ़िल्टर करें``` | loadjob 1684146257.1495958 | search NOT (keyword_detection IN ("fixme","fixme","fixme")) NOT (metadata_keyword_type IN ("fixme","fixme")) NOT (raw IN ("fixme","fixme","fixme"))
आवश्यक कीवर्ड, कच्चा टेक्स्ट या कीवर्ड प्रकारों को बाहर करें।
यदि हम `greyware tool keyword` प्रकार को बाहर करने का निर्णय लेते हैं (वैध टूल कीवर्ड जिनका दुरुपयोग हमलावरों द्वारा किया जाता है) क्योंकि इस वातावरण में इस तरह के टूल्स के लिए बहुत अधिक परिणाम हैं, तो हमारे पास दो विकल्प हैं:
- हमारी प्रारंभिक खोज की शुरुआत में फ़िल्टर करें```
`myendpointslogs`
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" metadata_keyword_type="offensive tool keyword" metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
I added a metadata_keyword_type="offensive tool keyword" to only focus on offensive tools that i am sure are used by malicious actors
तो यह एंडपॉइंट लॉग्स में रॉ लॉग्स खोजने का हमारा यूज़ केस था। अगर हम नेटवर्क लॉग्स (जो क्वेरी या यूआरएल लॉग कर सकते हैं) के लिए कीवर्ड खोजना चाहते हैं, तो हम इसे बस बदल देते हैं:```
`mynetworklogs`
| lookup threathunting-keywords keyword as _raw OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
अब यह पहली खोज जैसी ही है लेकिन मैंने mynetworklogs के लिए डेटासोर्स बदल दिया और नेटवर्क लॉग के लिए प्रासंगिक कीवर्ड से मिलान करने हेतु metadata_enable_proxy_detection=1 जोड़ा (इसके लिए प्रॉक्सी और DNS लॉग होना बेहतर है)
mynetworklogs url=*
| lookup threathunting-keywords keyword as url OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(url) as url by src_ip metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
#### केवल क्वेरी फ़ील्ड पर मिलान करें:```
`mynetworklogs` query=*
| lookup threathunting-keywords keyword as query OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_proxy_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(query) as query by src_ip metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
myendpointslogs
| eval myfields=mvappend(service, process, process_command, parent_process, parent_process_command, grand_parent_process, grand_parent_process_command, file_path, file_name)
| lookup threathunting-keywords keyword as myfields OUTPUT keyword as keyword_detection metadata_keyword_type metadata_tool metadata_description metadata_tool_techniques metadata_tool_tactics metadata_malwares_name metadata_groups_name metadata_category metadata_link metadata_enable_endpoint_detection metadata_enable_proxy_detection metadata_comment
| search metadata_description!="" AND metadata_enable_endpoint_detection=1
| stats count earliest(_time) as firsttime latest(_time) as lasttime values(process) values(service) values(process_command) values(file_name) values(file_path) values(parent_process) values(parent_process_command) values(grand_parent_process) values(grand_parent_process_command) by metadata_keyword_type keyword_detection index sourcetype
| convert ctime(*time)
#### गति:
यदि गति एक चिंता का विषय है या आप इसे एक निर्धारित डिटेक्शन नियम के रूप में लागू करने की योजना बना रहे हैं, तो आप `metadata_keyword_type` या `metadata_tool` कॉलम चुनकर लुकअप को अलग-अलग लुकअप में विभाजित करने पर विचार कर सकते हैं।
ध्यान दें कि `|lookup` के बाद search कमांड का उपयोग करके फ़िल्टर करने से खोज प्रक्रिया तेज़ नहीं होती है। यदि आप लुकअप को विभाजित किए बिना उसके किसी विशेष भाग पर ध्यान केंद्रित करना चाहते हैं, तो आपको `|inputlookup` कमांड का उपयोग where क्लॉज के साथ करना चाहिए। हालाँकि यह विधि अधिक CPU संसाधनों का उपभोग कर सकती है, लेकिन यह आम तौर पर तेज़ निष्पादन में परिणाम देती है। अधिक जानकारी के लिए, inputlookup पर Splunk दस्तावेज़ देखें: https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Inputlookup
#### ELK के साथ:
यदि आप Elastic Stack के साथ काम कर रहे हैं, तो सूचियों के लिए बहुत सारे प्रतिबंध हैं (आप विशेष वर्ण, स्थान आदि का उपयोग नहीं कर सकते), आपके पास 3 विकल्प हैं:
- इसी रिपॉजिटरी में यहाँ उपलब्ध एक और सूची का उपयोग करें https://github.com/mthcht/ThreatHunting-Keywords/tree/main/elk (यह threahunting-keywords.csv का सीधा निष्कर्षण नहीं है, इसे ELK के लिए संशोधित किया गया है और अपडेट नहीं किया जाता है)
- Sigma "hunting" नियमों का उपयोग करें, जो सीधे इस प्रोजेक्ट से निकाले गए हैं https://github.com/mthcht/ThreatHunting-Keywords-sigma-rules और रूपांतरण के लिए pysigma के साथ
- मेरी कुछ सूचियों को वाइल्डकार्ड क्वेरी के साथ IOC सूची के रूप में उपयोग करें https://www.elastic.co/guide/en/elasticsearch/reference/8.15/query-dsl-wildcard-query.html#wildcard-top-level-params
### डैशबोर्ड उदाहरण

### Splunk4DFIR
DFIR कलाकृतियों और लॉग्स में खोज करने के लिए splunk के साथ प्रोजेक्ट csv फ़ाइलों का उपयोग करने का एक और उदाहरण: https://github.com/mf1d3l/Splunk4DFIR

### डिटेक्शन के लिए अन्य बेहतरीन सूचियाँ
मैं कुछ प्रासंगिक कलाकृतियों को अलग-अलग सूचियों में रखता हूँ, ये सूचियाँ अधिक सटीक हैं और डिटेक्शन नियमों में उपयोग की जा सकती हैं, ये इस [github रिपॉजिटरी](https://github.com/mthcht/awesome-lists/tree/main/Lists) में उपलब्ध हैं
आप पाएंगे:
Threat Hunting सत्रों की योजना बनाने के लिए मेरी खुफिया जानकारी एकत्र करने की शीट

- 📋 सूचियाँ: https://github.com/mthcht/awesome-lists/tree/main/Lists
- 🕵️♂️ ThreatHunting गाइड: https://mthcht.medium.com/list/threat-hunting-708624e9266f
- 🚰 संदिग्ध नामित पाइप: [suspicious_named_pipe_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_named_pipe_list.csv)
- 🌐 संदिग्ध TLDs (स्वचालित रूप से अपडेट): [[suspicious_TLDs]](https://github.com/mthcht/awesome-lists/tree/main/Lists/TLDs)
- 🌐 संदिग्ध ASNs (स्वचालित रूप से अपडेट): [[suspicious ASNs]](https://github.com/mthcht/awesome-lists/tree/main/Lists/ASNs)
- 🔧 संदिग्ध Windows सेवाएँ: [suspicious_windows_services_names_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_services_names_list.csv)
- ⏲️ संदिग्ध Windows कार्य: [suspicious_windows_tasks_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_tasks_list.csv)
- 🚪 संदिग्ध गंतव्य पोर्ट: [suspicious_ports_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_ports_list.csv)
- 🛡️ संदिग्ध फ़ायरवॉल नियम: [suspicious_windows_firewall_rules_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_windows_firewall_rules_list.csv)
- 🆔 संदिग्ध User-agent: [suspicious_http_user_agents_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_http_user_agents_list.csv)
- 📇 संदिग्ध USB Ids: [suspicious_usb_ids_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_usb_ids_list.csv)
- 🔢 संदिग्ध MAC पता: [suspicious_mac_address_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_mac_address_list.csv)
- 📛 संदिग्ध होस्टनाम: [suspicious_hostnames_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/suspicious_hostnames_list.csv)
- 🧮 मेटाडेटा एक्ज़िक्यूटेबल: [executables_metadata_informations_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Windows%20Metadata/executables_metadata_informations_list.csv)
- 🕸️ DNS over HTTPS सर्वर सूची: [dns_over_https_servers_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/dns_over_https_servers_list.csv)
- 📚 Hijacklibs (स्वचालित रूप से अपडेट): [hijacklibs_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Hijacklibs/hijacklibs_list.csv)
- 🌐 TOR नोड्स सूचियाँ (स्वचालित रूप से अपडेट): https://github.com/mthcht/awesome-lists/tree/main/Lists/TOR
- 🛠️ LOLDriver सूची (स्वचालित रूप से अपडेट): [loldrivers_only_hashes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Drivers/loldrivers_only_hashes_list.csv)
- 🛠️ दुर्भावनापूर्ण बूटलोडर सूची (स्वचालित रूप से अपडेट): [malicious_bootloaders_only_hashes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/Drivers/malicious_bootloaders_only_hashes_list.csv)
- 📜 दुर्भावनापूर्ण SSL प्रमाणपत्र सूची (स्वचालित रूप से अपडेट): [ssl_certificates_malicious_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/SSL%20CERTS/ssl_certificates_malicious_list.csv)
- 🖥️ RMM डिटेक्शन: https://github.com/mthcht/awesome-lists/tree/main/Lists/RMM
- 👤🔑 AD/EntraID/AWS के लिए महत्वपूर्ण भूमिकाएँ और समूह: [[permissions]](https://github.com/mthcht/awesome-lists/tree/main/Lists/permissions)
- 💻🔒 रैनसमवेयर ज्ञात फ़ाइल एक्सटेंशन: [ransomware_extensions_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/ransomware_extensions_list.csv)
- 💻🔒 रैनसमवेयर ज्ञात फ़ाइल नाम फिरौती नोट: [ransomware_notes_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/ransomware_notes_list.csv)
- 📝 Windows ASR नियम: [windows_asr_rules.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/windows_asr_rules.csv)
- 🌐 DNSTWIST सूचियाँ (स्वचालित रूप से अपडेट): [DNSTWIST डिफ़ॉल्ट डोमेन + स्क्रिप्ट](https://github.com/mthcht/awesome-lists/tree/main/Lists/DNSTWIST)
- 🌍 VPN IP पता सूचियाँ (स्वचालित रूप से अपडेट):
- 🛡️ NordVPN: [nordvpn_ips_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/VPN/NordVPN/nordvpn_ips_list.csv)
- 🛡️ ProtonVPN: [protonvpn_ip_list.csv](https://github.com/mthcht/awesome-lists/blob/main/Lists/VPN/ProtonVPN/protonvpn_ip_list.csv)
- 🏢 कंपनियों की IP रेंज सूचियाँ (स्वचालित रूप से अपडेट): [डिफ़ॉल्ट सूचियाँ + स्क्रिप्ट](https://github.com/mthcht/awesome-lists/tree/main/Lists/Ranges_IP_Address_Company_List/bgp.he.net)
- 🔗 अन्य सहसंबंध सूचियाँ: https://github.com/mthcht/awesome-lists/tree/main/Lists/Others
- 📋 वे सूचियाँ जिन्हें मुझे पूरा करना है: https://github.com/mthcht/awesome-lists/tree/main/todo
कुछ सूचियों का उपयोग करने के लिए इन [गाइड](https://github.com/mthcht/awesome-lists/tree/main/Lists#how-to-use-the-lists) को देखें:
- [Windows Services खोज](https://detect.fyi/threat-hunting-suspicious-windows-service-names-2f0dceea204c)
- [User-Agents खोज](https://mthcht.medium.com/threat-hunting-suspicious-user-agents-3dd764470bd0)
- [DNS Over HTTPS खोज](https://mthcht.medium.com/detecting-dns-over-https-30fddb55ac78)
- [संदिग्ध TLDs खोज](https://mthcht.medium.com/threat-hunting-suspicious-tlds-a742c2adbf58)
- [HijackLibs खोज](https://mthcht.medium.com/detect-dll-hijacking-techniques-from-hijacklibs-with-splunk-c760d2e0656f)
- [Phishing और DNSTWIST खोज](https://detect.fyi/detecting-phishing-attempts-with-dnstwist-37c426b3bbb8)
- [ब्राउज़र एक्सटेंशन खोज](https://mthcht.medium.com/detecting-browser-extensions-installations-e0ac2b45c46b)
- [C2 सादे दृष्टि में छिपा हुआ](https://mthcht.medium.com/c2-hiding-in-plain-sight-7a83963b9344)
- [HTML स्मगलिंग कलाकृतियाँ](https://mthcht.medium.com/detecting-html-smuggling-phishing-attempts-15af824e60e4)
- [PSEXEC और समान उपकरण खोज](https://mthcht.medium.com/detecting-psexec-and-similar-tools-c812bf3dca6c)
- [समय स्लिपिंग डिटेक्शन](https://mthcht.medium.com/event-log-manipulations-1-time-slipping-55bf95631c40)
- [संदिग्ध नामित पाइप](https://medium.com/detect-fyi/threat-hunting-suspicious-named-pipes-a4206e8a4bc8)
... अधिक [यहाँ](https://github.com/mthcht/awesome-lists/tree/main/Lists#how-to-use-the-lists)
## फ़ाइलों में कीवर्ड के लिए DFIR हंट (कोई SIEM नहीं)
विभिन्न उपकरणों की गहन समीक्षा करने के बाद, मैंने पाया कि [ripgrep](https://github.com/BurntSushi/ripgrep) regex पैटर्न की एक विस्तृत सूची को एक बड़ी लॉग फ़ाइल की प्रत्येक पंक्ति या एक साथ कई फ़ाइलों के विरुद्ध तेज़ी से मिलान करने के मामले में अपने प्रतिस्पर्धियों से काफी बेहतर प्रदर्शन करता है। यह बड़ी मात्रा में डेटा को संभालने के लिए सबसे कुशल समाधान साबित हुआ, जो अद्वितीय गति और लचीलापन प्रदान करता है।
### **Ripgrep** और 'only_keywords_regex.txt' सूची के साथ लॉग फ़ाइल(फ़ाइलों) में बुराई की खोज करें
#### `rg.exe -f .\only_keywords_regex.txt .\EvtxECmd_Output.csv --multiline --ignore-case`
- .\only_keywords_regex.txt थ्रेट हंटिंग कीवर्ड के लिए स्रोत फ़ाइल के रूप में कार्य करता है, जिसे सटीक मिलान के लिए regex पैटर्न में बदल दिया जाता है। ये पैटर्न threahunting-keywords.csv फ़ाइल से उत्पन्न होते हैं, जो regex संचालन के साथ इष्टतम संगतता के लिए एक रूपांतरण प्रक्रिया से गुज़री है।
- .\EvtxECmd_Output.csv उस लक्ष्य फ़ाइल का प्रतिनिधित्व करता है जिसमें खोज की जाएगी। इस संदर्भ में, यह एक Windows इवेंट लॉग का .csv प्रारूप है, जो evtx लॉग्स को निर्यात करके बनाया गया है। हालाँकि, ripgrep का लचीलापन आपको विस्तृत पैटर्न खोज संचालन के लिए इसे अपनी पसंद की किसी भी फ़ाइल से बदलने की अनुमति देता है।
- --multiline विकल्प ripgrep को कई पंक्तियों में फैले पैटर्न को प्रभावी ढंग से संभालने और मिलान करने में सक्षम बनाता है, जिससे खोज का दायरा काफी व्यापक हो जाता है।
आपको मिलान की गई पंक्तियाँ पंक्ति संख्या के साथ इस तरह मिलेंगी (लेकिन मिलान किए गए कीवर्ड के बिना)


#### बहुत बड़ी फ़ाइलों के लिए बेहतर विकल्प (windows पर):
[DFIR_hunt_in_file.ps1](https://github.com/mthcht/ThreatHunting-Keywords/blob/main/DFIR_hunt_in_file.ps1)
`powershell -ep Bypass -File .\DFIR_hunt_in_file.ps1 -patternFile "only_keywords_regex.txt" -targetFile "C:\Users\mthcht\collection\20230406154410_EvtxECmd_Output.csv" -rgPath "C:\Users\mthcht\Downloads\ripgrep-13.0.0-x86_64-pc-windows-msvc\ripgrep-13.0.0-x86_64-pc-windows-msvc\rg.exe"`
- `-targetFile`: खोजने के लिए फ़ाइल निर्दिष्ट करें (उदाहरण में, एक DFIR-ORC एक्सट्रैक्ट लॉग्स)
- `-patternFile`: regex पैटर्न वाली फ़ाइल `only_keywords_regex.txt`
- `-rgPath`: ripgrep एक्ज़िक्यूटेबल का पथ
पॉवरशेल स्क्रिप्ट की सामग्री (रिपॉजिटरी में शामिल):```powershell
param (
[Parameter(Mandatory=$true)]
[string]$patternFile,
[Parameter(Mandatory=$true)]
[string]$targetFile,
[Parameter(Mandatory=$true)]
[string]$rgPath
)
Start-Transcript -Path "$PSScriptRoot\result_search.log" -Append -Force -Verbose
$totalLines = (Get-Content $patternFile | Measure-Object -Line).Lines
$currentLine = 0
Get-Content $patternFile | ForEach-Object {
$currentLine++
Write-Host "Searching for pattern $currentLine of $totalLines : $_"
& $rgPath --multiline --ignore-case $_ $targetFile | Write-Output
}
Stop-Transcript -Verbose
The result of the search will be in result_search.log in the same directory as the script.

todo
In powershell it's much slower but if you still want to do it this way, you can use the script below, it will tell you the line number matched and the corresponding keyword:
powershell.exe -ep Bypass -File .\hunt_keywords_windows.ps1 -k .\only_keywords.txt -f .\EvtxECmd_Output.csv
[Parameter(Mandatory=$true)]
[string]$kw
)
$Keywords = Get-Content $kw $result = @()
foreach ($Keyword in $Keywords) { $SearchTerm = $Keyword.Replace("", ".") $SearchTerm = [Regex]::Escape($SearchTerm).Replace(".*", ".*")
$reader = New-Object System.IO.StreamReader($file)
$lineNumber = 0
while (($line = $reader.ReadLine()) -ne $null) {
$lineNumber++
if ($line -match $SearchTerm) {
$result += New-Object PSObject -Property @{
'Keyword' = $Keyword
'LineNumber' = $lineNumber
'Line' = $line
}
}
}
$reader.Close()
}
$result | Out-GridView Read-Host -Prompt "Press Enter to exit"
</details>
### YARA नियम

इस परियोजना के सभी डिटेक्शन पैटर्न स्वचालित रूप से [ThreatHunting-Keywords-yara-rules](https://github.com/mthcht/ThreatHunting-Keywords-yara-rules) में yara नियमों के रूप में निर्यात किए जाते हैं
yara नियमों के साथ hunting के कुछ उदाहरण:




## कीवर्ड खोजने के लिए त्वरित डेटाटेबल
https://mthcht.github.io/ThreatHunting-Keywords/

## गलत सकारात्मक
अपने गलत सकारात्मक को अपेक्षित गलत सकारात्मक [सूची](https://github.com/mthcht/ThreatHunting-Keywords/blob/main/_false_positives/false_positives_offensive_keywords.md) में जोड़कर योगदान करें।
## SIGMA नियम
[SIGMA rules](https://github.com/mthcht/ThreatHunting-Keywords-sigma-rules) में अनुवादित lookup देखें, मैं आमतौर पर इसे उसी समय अपडेट करता हूं :)

## MITRE ATT&CK तकनीक मैपिंग
splunk addon के साथ https://splunkbase.splunk.com/app/5742

2242 टूल्स के लिए कवरेज (2024/08/30 को अपडेट):

splunk खोज:
<details>```
| inputlookup threathunting-keywords.csv
| stats count by metadata_tool metadata_tool_techniques
| makemv delim=" - " metadata_tool_techniques
| mvexpand metadata_tool_techniques
| stats count by metadata_tool_techniques
Splunk डैशबोर्ड (यह केवल एक उदाहरण है; फ़ाइल में उपलब्ध फ़ील्ड्स का उपयोग करके कई प्रकार के फ़िल्टर लागू किए जा सकते हैं):
splunk xml डैशबोर्ड उदाहरण:



योगदान, समस्याएं और फीचर अनुरोधों का स्वागत है!
``
कृपया उपकरण का नाम प्रदान करें।
``
उपकरण की आधिकारिक वेबसाइट या सोर्स कोड रिपॉजिटरी (GitHub, GitLab, आदि) का लिंक प्रदान करें। यदि दस्तावेज़ उपलब्ध है, तो कृपया उसे शामिल करें।
``
उपकरण के उद्देश्य, कार्यक्षमता और उल्लेखनीय विशेषताओं का वर्णन करें। यदि आप अनिश्चित हैं, तो इसे खाली छोड़ दें, और मैं उपकरण की अधिक विस्तार से समीक्षा करूँगा।
``
यदि आपके पास दुर्भावनापूर्ण अभिनेताओं द्वारा इस उपकरण के ज्ञात या संभावित दुरुपयोग की जानकारी है, तो कृपया इसे यहाँ साझा करें।
कृपया उपकरण के लिए सबसे उपयुक्त श्रेणी चुनें:
मैं तय करूँगा कि कोई उपकरण सूची में जोड़ने लायक है या नहीं। जो उपकरण समुदाय में व्यापक रूप से उपयोग और मान्यता प्राप्त हैं, उनके शामिल किए जाने की संभावना अज्ञात या नए उपकरणों की तुलना में अधिक है।
greyware tool keyword: इस श्रेणी के कीवर्ड 'वैध' टूल्स के अनुरूप हैं जिनका दुर्भावनापूर्ण अभिनेताओं द्वारा दुरुपयोग किया जाता है। चूँकि इन टूल्स के वैध उपयोग भी हैं, फ़ॉल्स पॉज़िटिव्स की संभावना स्वाभाविक रूप से अधिक होती है। इन परिणामों की व्याख्या इस समझ के साथ करना महत्वपूर्ण है कि सभी डिटेक्शन दुर्भावनापूर्ण गतिविधि का संकेत नहीं दे सकतेsignature keyword: ये कीवर्ड सीधे टूल्स से जुड़े नहीं हो सकते, लेकिन इनमें सुरक्षा उत्पाद सिग्नेचर नाम, विशिष्ट स्ट्रिंग्स, या थ्रेट डिटेक्शन में महत्वपूर्ण शब्द शामिल हो सकते हैं।metadata_tool: उस टूल का नाम जिसे हम डिटेक्ट करना चाहते हैं
metadata_description: उस टूल का विवरण जिसे हम डिटेक्ट करना चाहते हैं
metadata_tool_techniques: उस टूल से संबंधित MITRE तकनीकें जिसे हम डिटेक्ट करना चाहते हैं
metadata_tool_tactics: उस टूल से संबंधित MITRE रणनीतियाँ जिसे हम डिटेक्ट करना चाहते हैं
metadata_malwares_name: उन मैलवेयर वेरिएंट्स के नाम जो संबंधित टूल का उपयोग करते हैं
metadata_groups_name: टूल से जुड़े थ्रेट एक्टर समूहों के नाम
metadata_category: टूल का वैश्विक श्रेणी नाम। यह बाद में बदल सकता है और सुझावों का स्वागत है।
metadata_link: टूल का लिंक (सोर्स कोड, लेख, सैंपल, ब्लॉग ...)
metadata_enable_endpoint_detection: फ़ील्ड यह दर्शाती है कि क्या कीवर्ड को एंडपॉइंट लॉग्स में खोजों में प्रभावी रूप से उपयोग किया जा सकता है। इसमें विंडोज इवेंट लॉग्स, EDR, PowerShell लॉग्स, auditd, बैस्टियन सत्र, Sysmon या प्रोसेस और फ़ाइल गतिविधि फ़ील्ड वाला कोई भी डेटा स्रोत शामिल है, लेकिन इन्हीं तक सीमित नहीं है।
metadata_enable_proxy_detection: फ़ील्ड नेटवर्क लॉग्स (प्रॉक्सी, DNS लॉग्स या आंतरिक नेटवर्क से उत्पन्न क्वेरी और URL वाला कोई भी डेटा) के भीतर खोजों के लिए कीवर्ड की प्रयोज्यता दर्शाती है।
metadata_popularity_score: 1 से 10 तक स्कोर (कम से उच्च लोकप्रियता)
metadata_severity_score: 1 से 10 तक स्कोर (कम से उच्च गंभीरता)
metadata_tags: विशिष्ट आर्टिफैक्ट्स की पहचान करने के लिए टैग, एक कीवर्ड के साथ कई टैग जुड़े हो सकते हैं, जब कुछ विशिष्ट आर्टिफैक्ट्स को अधिक डिटेक्शन संदर्भ के बिना सूचियों में नहीं जोड़ा जा सकता, तो उन्हें मेरी डिटेक्शन के लिए अन्य शानदार सूचियाँ में जोड़ा जाता है।
metadata_comment: इस फ़ील्ड में कीवर्ड के लिए जोड़ी गई उपयोगी टिप्पणी हो सकती है।
metadata_github_stars: github प्रोजेक्ट पर स्टार्स की संख्या (यदि टूल github पर है, यदि कहीं और है तो मान N/A है) इसका उपयोग लोकप्रियता स्कोर की गणना के लिए किया जाता है
metadata_github_forks: github प्रोजेक्ट पर फोर्क्स की संख्या (यदि टूल github पर है, यदि कहीं और है तो मान N/A है) सबसे अधिक उपयोग किए जाने वाले टूल्स के डैशबोर्ड आँकड़ों के लिए उपयोग किया जा सकता है
metadata_github_created_at: github प्रोजेक्ट की निर्माण तिथि (यदि टूल github पर है, यदि कहीं और है तो मान N/A है) डैशबोर्ड आँकड़ों के लिए उपयोग किया जा सकता है
metadata_github_updated_at: github प्रोजेक्ट की अंतिम अद्यतन तिथि (यदि टूल github पर है, यदि कहीं और है तो मान N/A है) महत्वपूर्ण आक्रामक टूल्स के अपडेट को ट्रैक करने और कीवर्ड डिटेक्शन को समायोजित करने के लिए उपयोग किया जा सकता है
_rawkeyword_rawkeyword_detection_raw| search metadata_description!="" AND metadata_enable_endpoint_detection=1 यहाँ हम केवल endpoints लॉग्स पर ध्यान केंद्रित करते हैं, इसलिए हम metadata_enable_endpoint_detection=1 जोड़ते हैं ताकि endpoint लॉग्स के लिए केवल प्रासंगिक keywords मैच हों, और metadata_description!="" जोड़ते हैं ताकि केवल मैच किए गए keywords ही आएँ।| stats count earliest(_time) as firsttime latest(_time) as lasttime values(_raw) as raw by metadata_keyword_type keyword_detection index sourcetype यहाँ मैंने उदाहरण के लिए lookup के सभी फ़ील्ड्स के बिना एक त्वरित फ़िल्टर बनाया है (लेकिन यदि आप अधिक exclusion संभावनाएँ चाहते हैं तो आप उन्हें भी जोड़ सकते हैं)। इससे हमें आसानी से पता चलता है कि कौन सा keyword बहुत अधिक मैच कर रहा है, ताकि यदि किसी category या tool के लिए बहुत अधिक false positives हों तो हम उसे आसानी से exclude कर सकें!|loadjob myjobid का उपयोग करके हम अब सभी लॉग्स पर दोबारा search किए बिना प्रासंगिक लॉग्स के साथ output में हेरफेर कर सकते हैं।और इस splunk विज़ुअलाइज़ेशन का उपयोग करें: https://splunkbase.splunk.com/app/5742
