Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
FalconHound — ब्लू टीमों के लिए स्वचालित ब्लडहाउंड ग्राफ अपडेटर। SIEMs से रीयल-टाइम सेशन, ग्रुप और CVE डेटा के साथ AD अटैक पथों को समृद्ध करता है, जिससे निरंतर निगरानी और अलर्टिंग संभव होती है। | Kitploit
उपकरण/GitHubGitHub/falconforceteam/falconhound
पेनिट्रेशन टेस्टिंगखतरा खुफिया
GitHubfalconforceteam/falconhound

FalconHound

ब्लू टीमों के लिए स्वचालित ब्लडहाउंड ग्राफ अपडेटर। SIEMs से रीयल-टाइम सेशन, ग्रुप और CVE डेटा के साथ AD अटैक पथों को समृद्ध करता है, जिससे निरंतर निगरानी और अलर्टिंग संभव होती है।

रिपॉजिटरी देखें
826594 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Maintenance Twitter Discord Shield

FalconHound

logo


नोट:

BloodHound CE 7.0 रिलीज़ के अनुसार, डिफ़ॉल्ट डेटाबेस Postgres में बदल दिया गया है। FalconHound का यह संस्करण अभी भी Neo4j को डिफ़ॉल्ट डेटाबेस के रूप में उपयोग करता है। यदि आप नवीनतम BloodHound संस्करण चलाते समय FalconHound का उपयोग जारी रखना चाहते हैं, तो अपनी bloodhound.config.json फ़ाइल में निम्नलिखित पंक्ति जोड़ें।```json "graph_driver": "neo4j",

root@kitploit:~
BloodHound टीम कम से कम एक वर्ष के लिए Neo4j का समर्थन बनाए रखेगी। इस समय सीमा के भीतर उम्मीद है कि या तो कोई बड़ा API सुधार होगा या हमने FalconHound में PGSQL समर्थन लागू कर दिया होगा।

---

FalconHound एक ब्लू टीम मल्टी-टूल है। यह आपको BloodHound की शक्ति का अधिक स्वचालित तरीके से उपयोग और वृद्धि करने की अनुमति देता है। इसे SIEM या अन्य लॉग एकत्रीकरण उपकरण के साथ उपयोग करने के लिए डिज़ाइन किया गया है।

BloodHound की चुनौतीपूर्ण पहलुओं में से एक यह है कि यह समय में एक स्नैपशॉट है। FalconHound में ऐसी कार्यक्षमता शामिल है जिसका उपयोग आपके वातावरण के ग्राफ को अद्यतित रखने के लिए किया जा सकता है। यह आपको अपने वातावरण को वैसा ही देखने की अनुमति देता है जैसा वह अभी है। यह विशेष रूप से उन वातावरणों के लिए उपयोगी है जो लगातार बदल रहे हैं।

BloodHound के लिए सबसे कठिन संबंधों में से एक स्थानीय समूह सदस्यता और सत्र जानकारी एकत्र करना है। ब्लू टीम के सदस्यों के रूप में हमारे पास यह जानकारी हमारे लॉग में आसानी से उपलब्ध होती है। FalconHound का उपयोग इस जानकारी को एकत्र करने और इसे ग्राफ़ में जोड़ने के लिए किया जा सकता है, जिससे BloodHound द्वारा इसका उपयोग किया जा सके।

यह केवल एक उदाहरण है कि FalconHound का उपयोग कैसे किया जा सकता है। इसका उपयोग आपके लॉग या सुरक्षा उपकरणों में मौजूद किसी भी जानकारी को एकत्र करने और BloodHound ग्राफ़ में जोड़ने के लिए किया जा सकता है।

इसके अतिरिक्त, ग्राफ़ का उपयोग अलर्ट ट्रिगर करने या एनरिचमेंट सूचियाँ उत्पन्न करने के लिए किया जा सकता है। उदाहरण के लिए, यदि किसी उपयोगकर्ता को किसी विशिष्ट समूह में जोड़ा जाता है, तो FalconHound का उपयोग ग्राफ़ डेटाबेस से किसी संवेदनशील या उच्च-विशेषाधिकार समूह के लिए सबसे छोटा पथ खोजने के लिए किया जा सकता है। यदि कोई पथ है, तो इसे SIEM में लॉग किया जा सकता है या अलर्ट ट्रिगर करने के लिए उपयोग किया जा सकता है।

अन्य उदाहरण जहाँ FalconHound का उपयोग किया जा सकता है:
- लॉगऑन और लॉगऑफ़ ईवेंट के आधार पर ग्राफ़ में सत्रों को जोड़ना, हटाना या टाइम आउट करना।
- उपयोगकर्ताओं और कंप्यूटरों को ग्राफ़ में समझौता के रूप में चिह्नित करना जब उनके पास Sentinel या MDE में कोई घटना हो।
- ग्राफ़ में CVE जानकारी और यह जोड़ना कि क्या कोई सार्वजनिक शोषण उपलब्ध है।
- सभी प्रकार की Azure गतिविधियाँ।
- जब किसी उपयोगकर्ता को किसी समूह में जोड़ा जाता है या उसकी कोई नई भूमिका होती है, तो संवेदनशील समूहों के लिए सबसे छोटा पथ पुनर्गणना करना।
- ग्राफ़ में नए उपयोगकर्ता, समूह और कंप्यूटर जोड़ना।
- Sentinel और Splunk के लिए एनरिचमेंट सूचियाँ उत्पन्न करना, उदाहरण के लिए, Kerberoastable उपयोगकर्ता या कुछ संस्थाओं के स्वामित्व वाले उपयोगकर्ता।

यहाँ संभावनाएँ अनंत हैं। कृपया इश्यू ट्रैकर में और विचार जोड़ें या PR सबमिट करें।

एक ब्लॉग जिसमें हमने इसे क्यों विकसित किया और कुछ उपयोग केस उदाहरणों के बारे में अधिक जानकारी दी गई है, [यहाँ](https://medium.com/falconforce/falconhound-attack-path-management-for-blue-teams-42adedc9cae5?source=friends_link&sk=9f64b6b3028c5a2a6087d63b4fd2c82f) पाया जा सकता है।

सूची:
- [समर्थित डेटा स्रोत और लक्ष्य](#supported-data-sources-and-targets)
- [स्थापना](#installation)
- [उपयोग](#usage)
- [क्रियाएँ](#actions)
- [ग्राफ़ में विस्तार](#extensions-to-the-graph)
- [क्रेडेंशियल प्रबंधन](#credential-management)
- [तैनाती](#deployment)
- [लाइसेंस](#license)

## समर्थित डेटा स्रोत और लक्ष्य

FalconHound को BloodHound के साथ उपयोग करने के लिए डिज़ाइन किया गया है। यह BloodHound का प्रतिस्थापन नहीं है। इसे BloodHound और इसके द्वारा समर्थित अन्य सभी डेटा प्लेटफ़ॉर्म की शक्ति का स्वचालित तरीके से लाभ उठाने के लिए डिज़ाइन किया गया है।

Currently, FalconHound supports the following data sources and or targets:
- Azure Sentinel
- Azure Sentinel वॉचलिस्ट
- Splunk
- Microsoft Defender for Endpoint
- Neo4j
- MS Graph API (प्रारंभिक चरण)
- CSV फ़ाइलें
- Azure Data Explorer (ADX) - बीटा
- LogScale
- BloodHound CE और BHE (प्रारंभिक चरण)
- MarkDown फ़ाइलें
- Elastic (प्रारंभिक चरण)

भविष्य में अतिरिक्त डेटा स्रोतों और लक्ष्यों की योजना बनाई गई है।

इस समय, FalconHound केवल BloodHound के लिए Neo4j डेटाबेस का समर्थन करता है। BH CE और BHE के API के लिए समर्थन सक्रिय विकास के अंतर्गत है।

---

## स्थापना

चूँकि FalconHound Go में लिखा गया है, इसलिए किसी स्थापना की आवश्यकता नहीं है। बस रिलीज़ अनुभाग से बाइनरी डाउनलोड करें और इसे चलाएँ। Windows, Linux और MacOS के लिए संकलित बाइनरी उपलब्ध हैं। आप उन्हें [रिलीज़](https://github.com/FalconForceTeam/FalconHound/releases) अनुभाग में पा सकते हैं।

इसे चलाने से पहले, आपको एक कॉन्फ़िग फ़ाइल बनानी होगी। आप रूट फ़ोल्डर में एक उदाहरण कॉन्फ़िग फ़ाइल पा सकते हैं। सभी क्रेडेंशियल बनाने के निर्देश [यहाँ](https://github.com/falconforceteam/falconhound/blob/HEAD/docs/required_permissions.md) पाए जा सकते हैं।

FalconHound चलाने का अनुशंसित तरीका इसे एक निर्धारित कार्य या क्रॉन जॉब के रूप में चलाना है। यह आपको इसे नियमित रूप से चलाने और अपने ग्राफ़, अलर्ट और एनरिचमेंट को अद्यतित रखने की अनुमति देगा।

### आवश्यकताएँ

- BloodHound, या कम से कम अभी के लिए Neo4j डेटाबेस।
- एक SIEM या अन्य लॉग एकत्रीकरण उपकरण। वर्तमान में, Azure Sentinel और Splunk समर्थित हैं।
- प्रत्येक एंडपॉइंट के लिए क्रेडेंशियल जिससे आप बात करना चाहते हैं, [आवश्यक अनुमतियाँ](https://github.com/falconforceteam/falconhound/blob/HEAD/docs/required_permissions.md) के साथ।

### कॉन्फ़िगरेशन

FalconHound को YAML फ़ाइल का उपयोग करके कॉन्फ़िगर किया गया है। आप रूट फ़ोल्डर में एक उदाहरण कॉन्फ़िग फ़ाइल पा सकते हैं। कॉन्फ़िग फ़ाइल के प्रत्येक अनुभाग को नीचे समझाया गया है।

---

## उपयोग

#### डिफ़ॉल्ट रन

To run FalconHound, just run the binary and add the `-go` parameter to have it run all queries in the actions folder.```bash
./falconhound -go

सभी सक्षम क्रियाओं की सूची बनाएं

सभी सक्षम क्रियाओं की सूची बनाने के लिए, -actionlist पैरामीटर का उपयोग करें। यह क्रियाएँ फ़ोल्डर में कॉन्फ़िग फ़ाइलों में सक्षम सभी क्रियाओं की सूची देगा। इसका उपयोग -go पैरामीटर के साथ संयोजन में किया जाना चाहिए।```bash ./falconhound -actionlist -go

root@kitploit:~
### चुनिंदा क्रियाओं के साथ चलाएँ
चुनिंदा क्रियाओं के सेट को चलाने के लिए, `-ids` पैरामीटर का उपयोग करें, इसके बाद एक या अल्पविराम से अलग किए गए क्रिया आईडी की सूची। इससे पैरामीटर में निर्दिष्ट क्रियाएं चलेंगी, जो परीक्षण, समस्या निवारण या जब आपको विशिष्ट, अधिक बार अपडेट की आवश्यकता होती है, तब बहुत उपयोगी हो सकता है। इसका उपयोग `-go` पैरामीटर के साथ संयोजन में किया जाना चाहिए।```bash
./falconhound -ids action1,action2,action3 -go

एक अलग कॉन्फ़िग फ़ाइल के साथ चलाएँ

डिफ़ॉल्ट रूप से, FalconHound वर्तमान निर्देशिका में एक कॉन्फ़िग फ़ाइल की तलाश करेगा। आप -config फ्लैग का उपयोग करके एक कॉन्फ़िग फ़ाइल भी निर्दिष्ट कर सकते हैं। इससे आप विभिन्न वातावरणों में विभिन्न कॉन्फ़िगरेशन के साथ FalconHound के कई इंस्टेंस चला सकते हैं।```bash ./falconhound -go -config /path/to/config.yml

root@kitploit:~
#### किसी भिन्न क्रियाओं फ़ोल्डर के साथ चलाएँ
डिफ़ॉल्ट रूप से, FalconHound वर्तमान निर्देशिका में क्रियाओं फ़ोल्डर की तलाश करेगा। आप `-actions-dir` फ़्लैग का उपयोग करके एक भिन्न फ़ोल्डर भी निर्दिष्ट कर सकते हैं। इससे परीक्षण और समस्या निवारण आसान हो जाता है, लेकिन यह आपको विभिन्न कॉन्फ़िगरेशन, विभिन्न वातावरणों, या विभिन्न समय अंतरालों पर FalconHound के कई उदाहरण चलाने की भी अनुमति देता है।```bash
./falconhound -go -actions-dir /path/to/actions

किसी keyvault से क्रेडेंशियल के साथ चलाएं

डिफ़ॉल्ट रूप से, FalconHound config.yml (या कस्टम लोड की गई फ़ाइल) में क्रेडेंशियल का उपयोग करेगा। -keyvault फ़्लैग सेट करके FalconHound config से keyvault प्राप्त करेगा और वहाँ से सभी रहस्य प्राप्त करेगा। यदि keyvault में आइटम गायब हैं, तो यह config फ़ाइल पर वापस आ जाएगा। यदि आप किसी managed identity का उपयोग करके Azure keyvault से रहस्य प्राप्त करना चाहते हैं, तो authtype वेरिएबल को msi के रूप में परिभाषित करें।```bash ./falconhound -go -keyvault

root@kitploit:~
## क्रियाएँ

क्रियाएँ FalconHound का मूल हैं। ये वे क्वेरी हैं जिन्हें FalconHound चलाएगा। ये स्रोत और लक्ष्य की मूल भाषा में लिखी जाती हैं और actions फ़ोल्डर में संग्रहीत होती हैं। प्रत्येक क्रिया एक अलग फ़ाइल होती है और जानकारी के स्रोत, क्वेरी लक्ष्य, के निर्देशिका में संग्रहीत होती है। फ़ाइल नाम का उपयोग क्रिया के नाम के रूप में किया जाता है।

### क्रिया फ़ोल्डर संरचना

क्रिया फ़ोल्डर को प्रति क्वेरी स्रोत के अनुसार उप-निर्देशिकाओं में विभाजित किया गया है। सभी फ़ोल्डरों को पुनरावर्ती रूप से संसाधित किया जाएगा और सभी YAML फ़ाइलों को वर्णमाला क्रम में निष्पादित किया जाएगा।

Neo4j क्रियाओं को **अंतिम** में संसाधित किया जाना चाहिए, क्योंकि उनके आउटपुट के लिए सबसे अद्यतन परिणाम प्राप्त करने के लिए अन्य डेटा स्रोतों द्वारा पहले ग्राफ़ डेटाबेस को अपडेट किए जाने की आवश्यकता होती है।

### क्रिया फ़ाइलें

सभी फ़ाइलें YAML फ़ाइलें हैं। YAML फ़ाइल में क्वेरी, कुछ मेटाडेटा और क्वेरी की गई जानकारी के लक्ष्य शामिल होते हैं।

रूट फ़ोल्डर में एक टेम्पलेट फ़ाइल उपलब्ध है। आप इसका उपयोग अपनी स्वयं की क्रियाएँ बनाने के लिए कर सकते हैं। अधिक उदाहरणों के लिए actions फ़ोल्डर में क्रियाओं को देखें।

जबकि अधिकांश आइटम काफी स्व-व्याख्यात्मक होंगे,क्रियाओं के बारे में कुछ महत्वपूर्ण बातें ध्यान देने योग्य हैं:

#### सक्षम

जैसा कि नाम से पता चलता है, इसका उपयोग किसी क्रिया को सक्षम या अक्षम करने के लिए किया जाता है। यदि इसे false पर सेट किया जाता है, तो क्रिया नहीं चलेगी।```yaml
Enabled: true

Debug

इसका उपयोग किसी कार्रवाई के लिए डीबग मोड को सक्षम या अक्षम करने के लिए किया जाता है। यदि इसे true पर सेट किया जाता है, तो कार्रवाई डीबग मोड में चलेगी। इससे क्वेरी के परिणाम कंसोल पर आउटपुट होंगे। परीक्षण और समस्या निवारण के लिए यह उपयोगी है, लेकिन उत्पादन में उपयोग करने की अनुशंसा नहीं की जाती है। यह परिणामों की संख्या के आधार पर कार्रवाई के प्रसंस्करण को धीमा कर देगा।```yaml Debug: false

root@kitploit:~
#### Query

`Query` फ़ील्ड वह क्वेरी है जो स्रोत के विरुद्ध चलाई जाएगी। यह आपके `SourcePlatform` के आधार पर KQL क्वेरी, SPL क्वेरी या Cypher क्वेरी हो सकती है।
महत्वपूर्ण: क्वेरी को यथासंभव सटीक रखने का प्रयास करें और केवल उन फ़ील्ड को लौटाएँ जिनकी आपको आवश्यकता है। इससे परिणामों का प्रसंस्करण तेज़ और अधिक कुशल हो जाएगा।

इसके अलावा, Cypher क्वेरी चलाते समय, सुनिश्चित करें कि परिणाम के रूप में RETURN एक JSON ऑब्जेक्ट हो, अन्यथा प्रसंस्करण विफल हो जाएगा।
उदाहरण के लिए, यह Azure सब्सक्रिप्शन के Name, Count, Role और Owners को लौटाएगा:```cypher
MATCH p = (n)-[r:AZOwns|AZUserAccessAdministrator]->(g:AZSubscription) 
  RETURN {Name:g.name , Count:COUNT(g.name), Role:type(r), Owners:COLLECT(n.name)}

लक्ष्य

प्रत्येक लक्ष्य में कई विकल्प होते हैं जिन्हें कॉन्फ़िगर किया जा सकता है। लक्ष्य के आधार पर, कुछ को दूसरों की तुलना में अधिक कॉन्फ़िगरेशन की आवश्यकता हो सकती है। सभी लक्ष्यों में Name और Enabled फ़ील्ड होते हैं। Name फ़ील्ड का उपयोग लक्ष्य की पहचान करने के लिए किया जाता है। Enabled फ़ील्ड का उपयोग लक्ष्य को सक्षम या अक्षम करने के लिए किया जाता है। यदि इसे false पर सेट किया जाता है, तो लक्ष्य को अनदेखा कर दिया जाएगा।

CSV

CSV {{date}} वेरिएबल का समर्थन करता है, जिसे YYYY-MM-DD प्रारूप में वर्तमान तिथि से बदल दिया जाएगा। इसका उपयोग दैनिक रिपोर्ट बनाने के लिए किया जा सकता है। इसका उपयोग फ़ोल्डर या फ़ाइल नाम में किया जा सकता है (जैसे path/to/filename-{{date}}.csv) या स्वयं फ़ोल्डर नाम में।```yaml

  • Name: CSV Enabled: true Path: path/to/filename.csv
root@kitploit:~
#### Markdown

मार्कडाउन {{date}} वेरिएबल का समर्थन करता है, जिसे वर्तमान दिनांक द्वारा `YYYY-MM-DD` प्रारूप में बदल दिया जाएगा। इसका उपयोग दैनिक रिपोर्ट बनाने के लिए किया जा सकता है।
इसका उपयोग फ़ोल्डर या फ़ाइल नाम (जैसे `path/to/filename-{{date}}.md`) या फ़ोल्डर नाम में ही किया जा सकता है।```yaml
  - Name: Markdown
    Enabled: true
    Path: path/to/filename.md

उदाहरण आउटपुट:```markdown

Results for query: N4J_REPORT_DomainAdmins

Get a list of Domain Admins

Description: Get a list of Domain Admins. Date: 2024-02-19

NameObjectID
[email protected]S-1-5-21-1122334455-112233445-1112223334-11223344
root@kitploit:~
#### Neo4j

Neo4j लक्ष्य क्वेरी के परिणामों को एक Neo4j डेटाबेस में लिखेगा। यह आउटपुट प्रति पंक्ति होता है और इसलिए इसके लिए कुछ अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है।
चूंकि हम सभी प्रकार के डेटा को सभी दिशाओं में स्थानांतरित कर सकते हैं, FalconHound को यह समझने की आवश्यकता है कि डेटा के साथ क्या करना है। यह आपके Cypher क्वेरी की पहली पंक्ति में रिप्लेसमेंट वेरिएबल्स का उपयोग करके किया जाता है। ये Neo4j को पैरामीटर के रूप में पास किए जाते हैं और क्वेरी में उपयोग किए जा सकते हैं।
`ReplacementFields` फ़ील्ड्स नीचे कॉन्फ़िगर किए गए हैं।```yaml
  - Name: Neo4j
    Enabled: true
    Query: |
      MATCH (x:Computer {name:$Computer}) MATCH (y:User {objectid:$TargetUserSid}) MERGE (x)-[r:HasSession]->(y) SET r.since=$Timestamp SET r.source='falconhound'
    Parameters:
      Computer: Computer
      TargetUserSid: TargetUserSid
      Timestamp: Timestamp

पैरामीटर्स अनुभाग उन पैरामीटर्स के एक सेट को परिभाषित करता है जिन्हें क्वेरी परिणामों के मानों द्वारा प्रतिस्थापित किया जाएगा। इन्हें $parameter_name सिंटैक्स का उपयोग करके Neo4j पैरामीटर्स के रूप में संदर्भित किया जा सकता है।

Sentinel

Sentinel लक्ष्य क्वेरी के परिणामों को एक Sentinel तालिका में लिखेगा। यदि तालिका मौजूद नहीं है तो वह बनाई जाएगी। तालिका उस कार्यक्षेत्र (workspace) में बनाई जाएगी जो कॉन्फ़िग फ़ाइल में निर्दिष्ट है। क्वेरी का डेटा EventData फ़ील्ड में जोड़ा जाएगा। EventID कार्रवाई आईडी होगा और Description कार्रवाई का नाम होगा।

इसीलिए क्वेरी आउटपुट को भी नियंत्रित करने की आवश्यकता है, अन्यथा आप अपने लक्ष्य को बाढ़ सकते हैं।```yaml

  • Name: Sentinel Enabled: true
root@kitploit:~
#### Sentinel Watchlists

सेंटिनेल वॉचलिस्ट लक्ष्य क्वेरी के परिणामों को एक सेंटिनेल वॉचलिस्ट में लिखेगा। यदि वॉचलिस्ट मौजूद नहीं है तो इसे बनाया जाएगा। वॉचलिस्ट उस कार्यक्षेत्र में बनाई जाएगी जो कॉन्फ़िग फ़ाइल में निर्दिष्ट है। क्वेरी द्वारा लौटाए गए सभी कॉलम वॉचलिस्ट में जोड़ दिए जाएंगे।```yaml
 - Name: Watchlist
    Enabled: true
    WatchlistName: FH_MDE_Exploitable_Machines
    DisplayName: MDE Exploitable Machines
    SearchKey: DeviceName
    Overwrite: true

WatchlistName फ़ील्ड वॉचलिस्ट का नाम है। DisplayName फ़ील्ड वॉचलिस्ट का प्रदर्शन नाम है।

SearchKey फ़ील्ड वह कॉलम है जो खोज कुंजी के रूप में उपयोग किया जाएगा।

Overwrite फ़ील्ड यह निर्धारित करने के लिए उपयोग किया जाता है कि वॉचलिस्ट को ओवरराइट किया जाना चाहिए या इसमें जोड़ा जाना चाहिए। यदि इसे false पर सेट किया गया है, तो क्वेरी के परिणाम वॉचलिस्ट में जोड़ दिए जाएंगे। यदि इसे true पर सेट किया गया है, तो वॉचलिस्ट हटा दी जाएगी और क्वेरी के परिणामों के साथ पुनः बनाई जाएगी।

Splunk

Sentinel की तरह, Splunk भी क्वेरी के परिणामों को एक Splunk इंडेक्स में लिखेगा। इंडेक्स बनाया जाना चाहिए और एक HEC एंडपॉइंट से जोड़ा जाना चाहिए। क्वेरी का डेटा EventData फ़ील्ड में जोड़ा जाएगा। EventID क्रिया ID होगा और Description क्रिया का नाम होगा।```yaml

  • Name: Splunk Enabled: true
root@kitploit:~
#### Azure Data Explorer

Sentinel की तरह, Splunk क्वेरी के परिणामों को एक ADX तालिका में लिखेगा।  क्वेरी से डेटा EventData फ़ील्ड में जोड़ा जाएगा।  EventID कार्रवाई आईडी होगा और Description कार्रवाई का नाम होगा।```yaml
  - Name: ADX
    Enabled: true
    Table: "name"

ADX में एक तालिका बनाने के लिए आप निम्न कमांड का उपयोग कर सकते हैं:```kql .create table FalconHound (Name: string, Description: string, EventID: string, BHQuery: string, EventData: dynamic, Timestamp: datetime)

root@kitploit:~
### ग्राफ के विस्तार

#### संबंध: HadSession

एक बार सत्र समाप्त हो जाने के बाद, इसे ग्राफ से हटाना आवश्यक था, लेकिन यह जानकारी की बर्बादी जैसा लगता था। इसलिए सत्र को हटाने के बजाय, इसे कंप्यूटर और उपयोगकर्ता के बीच एक संबंध के रूप में जोड़ा जाएगा। संबंध को `HadSession` कहा जाएगा। इस संबंध में निम्नलिखित गुण होंगे:```json
{
  "till": "2021-08-31T14:00:00Z",
  "source": "falconhound",
  "reason": "logoff",
}

यह अतिरिक्त पथ खोजों की अनुमति देता है जहाँ हम जांच कर सकते हैं कि क्या उपयोगकर्ता कभी किसी निश्चित सिस्टम में लॉग इन हुआ था, भले ही सत्र समाप्त हो गया हो।

गुण

FalconHound ग्राफ़ में नोड्स में निम्नलिखित गुण जोड़ेगा:

Computer: - 'exploitable': true/false - 'exploits': list of CVEs - 'exposed': true/false - 'ports': list of ports accessible from the internet - 'alertids': list of alert ids

क्रेडेंशियल प्रबंधन

FalconHound को क्रेडेंशियल प्रदान करने के वर्तमान समर्थित तरीके हैं:

  • डिस्क पर config.yml फ़ाइल के माध्यम से।
  • Keyvault secrets. इसके लिए VM को आवंटित Managed Sytem Identity या yaml में secrets वाले ServicePrincipal की आवश्यकता होती है।
  • मिश्रित मोड।

Config.yml

कॉन्फ़िग फ़ाइल में प्रत्येक प्लेटफ़ॉर्म के लिए आवश्यक सभी विवरण होते हैं। कॉन्फ़िग फ़ाइल में सभी आइटम case-sensitive हैं। सर्वोत्तम अभ्यास ऐप्स को प्रति सेवा स्तर पर अलग करना है, लेकिन आप सभी Azure-आधारित कार्यों के लिए 1 AppID/AppSecret का उपयोग कर सकते हैं।

आपके AppID/AppSecret के लिए आवश्यक अनुमतियाँ यहाँ सूचीबद्ध हैं docs/required_permissions.md।

Keyvault

क्रेडेंशियल्स को संग्रहीत करने का एक अधिक सुरक्षित तरीका Azure KeyVault का उपयोग करना होगा। ध्यान रखें कि Keyvaults के उपयोग से एक छोटा लागत पहलू है। KeyVaults तक पहुँच वर्तमान में Managed System Identity या AppID/AppSecret पर आधारित प्रमाणीकरण का समर्थन करती है, जिसे config.yml फ़ाइल में कॉन्फ़िगर करने की आवश्यकता है।

इसे सेट अप करने का अनुशंसित तरीका FalconHound चलाने वाले VM को एक Managed System Identity असाइन करना और इस Keyvault को Key Vault Secrets User भूमिका देना है। यह FalconHound को बिना किसी अतिरिक्त कॉन्फ़िगरेशन के Keyvault में प्रमाणित करने की अनुमति देगा।

वैकल्पिक रूप से आप एक ServicePrincipal का उपयोग कर सकते हैं जिसके पास इस Keyvault के लिए केवल Key Vault Secrets User भूमिका है। यह भूमिका केवल secrets तक पहुँच की अनुमति देती है, उन्हें सूचीबद्ध करने की भी नहीं। उस ServicePrincipal का पुनः उपयोग न करें जिसके पास Sentinel और/या MDE तक पहुँच है, क्योंकि यह Keyvault के उपयोग को लगभग पूरी तरह से नकार देता है।

Keyvault में कॉन्फ़िगर करने योग्य आइटम नीचे सूचीबद्ध हैं। कृपया ध्यान दें कि Keyvault secrets case-sensitive नहीं होते हैं।``` SentinelAppSecret SentinelAppID SentinelTenantID SentinelTargetTable SentinelResourceGroup SentinelSharedKey SentinelSubscriptionID SentinelWorkspaceID SentinelWorkspaceName MDETenantID MDEAppID MDEAppSecret Neo4jUri Neo4jUsername Neo4jPassword GraphTenantID GraphAppID GraphAppSecret AdxTenantID AdxAppID AdxAppSecret AdxClusterURL AdxDatabase SplunkUrl SplunkApiToken SplunkIndex SplunkApiPort SplunkHecToken SplunkHecPort BHUrl BHTokenID BHTokenKey LogScaleUrl LogScaleToken LogScaleRepository LimaCharlieAPIUrl LimaCharlieOrgId LimaCharlieIngestKey ElasticCloudID ElasticApiKey

root@kitploit:~
एक बार कॉन्फ़िगर हो जाने पर आप FalconHound शुरू करते समय `-keyvault` पैरामीटर जोड़ सकते हैं।

#### मिश्रित मोड / फ़ॉलबैक

जब कमांड-लाइन पर `-keyvault` पैरामीटर सेट किया जाता है, तो यह सभी आवश्यक गुप्त जानकारी (secrets) का प्राथमिक स्रोत होगा। यदि FalconHound आइटम पुनर्प्राप्त करने में विफल रहता है, तो यह `config.yml` में समतुल्य आइटम पर वापस आ जाएगा। 
यदि दोनों विफल होते हैं और उस स्रोत या लक्ष्य के लिए क्रियाएं सक्षम हैं, तो यह एक चेतावनी देगा और कार्रवाई(क्रियाओं) को छोड़ देगा।

## तैनाती

FalconHound को एक निर्धारित कार्य (scheduled task) या क्रॉन जॉब (cron job) के रूप में चलाने के लिए डिज़ाइन किया गया है। यह आपको इसे नियमित रूप से चलाने और अपने ग्राफ़, अलर्ट और संवर्धन (enrichments) को अद्यतित रखने की अनुमति देगा।
आपके द्वारा सक्षम की गई क्रियाओं की मात्रा, आपके द्वारा संसाधित किए जा रहे डेटा की मात्रा और ग्राफ़ में लिखे जा रहे डेटा की मात्रा के आधार पर, इसमें कुछ समय लग सकता है।

सभी लॉग-आधारित क्वेरीज़ हर 15 मिनट में चलने के लिए बनाई गई हैं। यदि प्रसंस्करण में बहुत अधिक समय लगता है, तो आपको इसे थोड़ा समायोजित करने की आवश्यकता हो सकती है।
यदि ऐसा है, तो कुछ क्रियाओं को अक्षम करने की अनुशंसा की जा सकती है।

इसके अलावा, उदाहरण के लिए सत्र क्रियाओं (session actions) के साथ कुछ ओवरलैप हो सकता है। यदि आपके पास बहुत सारे सत्र हैं, तो आप Sentinel के लिए सत्र क्रियाओं को अक्षम करना चाह सकते हैं और MDE वाले पर निर्भर रहना चाह सकते हैं। यह मानते हुए कि आपके पास MDE और Sentinel कनेक्टेड हैं और अधिकांश मशीनें MDE में ऑनबोर्डेड हैं।

### Sharphound / Azurehound

जबकि FalconHound को BloodHound के साथ उपयोग करने के लिए डिज़ाइन किया गया है, यह Sharphound और Azurehound का प्रतिस्थापन नहीं है। इसे संग्रह को पूरक बनाने और आवधिक संग्रह के क्षणिक-समय की समस्या को दूर करने के लिए डिज़ाइन किया गया है। डेटा एकत्र करने के लिए Sharphound और Azurehound दोनों की अभी भी आवश्यकता है, क्योंकि सभी समान डेटा लॉग में उपलब्ध नहीं है।

Sharphound और Azurehound को नियमित रूप से चलाने की अनुशंसा की जाती है, उदाहरण के लिए दिन/सप्ताह या महीने में एक बार, और FalconHound को हर 15 मिनट में चलाने की अनुशंसा की जाती है।

## लाइसेंस

यह प्रोजेक्ट BSD3 लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए [LICENSE](https://github.com/falconforceteam/falconhound/blob/HEAD/LICENSE) फ़ाइल देखें।

इसका मतलब है कि आप इस सॉफ़्टवेयर का मुफ्त में उपयोग कर सकते हैं, यहां तक कि वाणिज्यिक उत्पादों में भी, जब तक आप हमें इसका श्रेय देते हैं।
आप इस सॉफ़्टवेयर के कारण होने वाली किसी भी क्षति के लिए हमें उत्तरदायी नहीं ठहरा सकते।
टूल डाउनलोड करें