
OSINT Omnibus (बीटा रिलीज़)
Omnibus को इस प्रकार परिभाषित किया गया है एक खंड जिसमें कई उपन्यास या अन्य आइटम शामिल होते हैं जो पहले अलग-अलग प्रकाशित हुए थे और InQuest Omnibus परियोजना का उद्देश्य ओपन सोर्स इंटेलिजेंस संग्रह, अनुसंधान और आर्टिफैक्ट प्रबंधन के लिए बिल्कुल यही होना है।
एक उपयोग में आसान इंटरैक्टिव कमांड लाइन एप्लिकेशन प्रदान करके, उपयोगकर्ता विभिन्न आर्टिफैक्ट जैसे IP पते, डोमेन नाम, ईमेल पते, उपयोगकर्ता नाम, फ़ाइल हैश, Bitcoin पते और अधिक की जाँच करने के लिए सत्र बना सकते हैं, जैसे-जैसे हम विस्तार करते रहते हैं।
इस परियोजना ने इससे पहले आई महान परियोजनाओं जैसे SpiderFoot, Harpoon और DataSploit से प्रेरणा ली है। ओपन सोर्स की दुनिया में योगदान देने वाले उन महान लेखकों का बहुत-बहुत धन्यवाद।
यह एप्लिकेशन Python 2.7 को ध्यान में रखकर लिखा गया है और OSX और Ubuntu 16.04 वातावरण पर सफलतापूर्वक परीक्षण किया गया है।
यह अंतिम एप्लिकेशन का बीटा है और इस तरह उपयोग के दौरान कुछ बग या अन्य अजीबता हो सकती है। अधिकांश भाग के लिए Omnibus पूरी तरह से कार्यात्मक है और इसका उपयोग तुरंत OSINT जांच शुरू करने के लिए किया जा सकता है।
Omnibus एक मॉड्यूलर तरीके से बनाया गया है जो OSINT डेटा स्रोत मॉड्यूल और आयात/निर्यात मॉड्यूल को आसानी से जोड़ने की अनुमति देता है। प्रत्येक श्रेणी का प्रत्येक मॉड्यूल एक एकल निर्देशिका में शामिल है, और कोड की कुछ पंक्तियाँ जोड़कर, आपका मॉड्यूल अगला हो सकता है!
जैसे-जैसे Wiki बढ़ती जा रही है, हमारे पास कस्टम प्लगइन लिखने के पूर्ण उदाहरण होंगे।
यदि आप कोई बग या अन्य समस्या देखते हैं, तो कृपया एक Issue और/या Pull Request बनाएँ। हम अधिक मॉड्यूल बनाने और Omnibus उपयोग-मामलों का विस्तार करने में सामुदायिक समर्थन का भी स्वागत करेंगे। नई सुविधाओं के लिए Forks और Pull Requests का स्वागत है!
यह README फ़ाइल Omnibus और इसकी सुविधाओं का एक त्वरित अवलोकन प्रदान करती है। पूर्ण दस्तावेज़ीकरण इस रिपॉजिटरी के 'docs' फ़ोल्डर में उपलब्ध है।
शुरू करने से पहले हमें Omnibus द्वारा उपयोग की जाने वाली कुछ शब्दावली को कवर करने की आवश्यकता होगी।
new कमांड का उपयोग करके या मॉड्यूल निष्पादन के माध्यम से खोजे जाने परजांच के लिए Omnibus शुरू करना इस GitHub रिपॉजिटरी को क्लोन करने, pip install -r requirements.txt का उपयोग करके Python आवश्यकताओं को स्थापित करने और python omnibus-cli.py चलाने जितना आसान है।
Omnibus शेल - मुख्य प्रारंभ

CLI के दृश्य संदर्भ के लिए, ऊपर चित्रित Omnibus कंसोल है जब एक नया सत्र शुरू किया गया है, दो आर्टिफैक्ट एक सत्र में जोड़े गए हैं, और help मेनू दिखाया गया है।
आपको मॉड्यूल के अंदर उपयोग करने के लिए किसी भी API कुंजी को omnibus/etc/apikeys.json फ़ाइल के अंदर सेट करना होगा।
यह फ़ाइल एक JSON दस्तावेज़ है जिसमें उन सभी सेवाओं के लिए प्लेसहोल्डर हैं जिन्हें API कुंजियों की आवश्यकता होती है, और Omnibus द्वारा केवल प्रति मॉड्यूल आधार पर उस API कुंजी को पुनर्प्राप्त करने के लिए एक्सेस किया जाता है जिसे मॉड्यूल को निष्पादित करने की आवश्यकता होती है।
यह ध्यान दिया जाना चाहिए कि API कुंजियों की आवश्यकता वाली अधिकांश सेवाओं के पास मुफ्त खाते और API कुंजियाँ हैं। कुछ मुफ्त खातों में कम संसाधन सीमाएँ हो सकती हैं, लेकिन छोटी दैनिक जांच या एप्लिकेशन के परीक्षण के दौरान यह कोई समस्या नहीं रही है।
एक उपयोगी टिप: यह देखने के लिए cat apikeys कमांड का उपयोग करें कि आपके पास वास्तव में कौन सी कुंजियाँ संग्रहीत हैं।
यदि मॉड्यूल विफल हो रहे हैं या कोई परिणाम नहीं लौटा रहे हैं, तो पहले यहाँ जाँच करें कि आपकी API कुंजी ठीक से सहेजी गई है या नहीं।
जब आप पहली बार CLI चलाते हैं, तो आपका स्वागत कुछ बुनियादी जानकारी के साथ एक सहायता मेनू द्वारा किया जाएगा।
Omnibus कुछ सामान्य Linux कमांड की नकल करने वाले कमांड का उपयोग करने का प्रयास करता है ताकि परिचितता और उपयोग में आसानी हो। उदाहरण के लिए, आर्टिफैक्ट के बारे में जानकारी दिखाने के लिए कमांड cat, डेटाबेस से आर्टिफैक्ट को हटाने के लिए rm, वर्तमान सत्र आर्टिफैक्ट देखने के लिए ls, और > वर्ण का उपयोग करके किसी भी कमांड के लिए आउटपुट रीडायरेक्शन समर्थन।
आउटपुट रीडायरेक्शन के उदाहरण के रूप में, यदि आप "inquest.net" नामक आर्टिफैक्ट का विवरण अपनी स्थानीय डिस्क पर JSON फ़ाइल में सहेजना चाहते हैं, तो आप बस कमांड चलाएँगे:
cat inquest.net > inquest-report.json और यह वहाँ होगा!
यह सुविधा सापेक्ष पथों के बजाय पूर्ण फ़ाइल पथों के साथ भी काम करती है।
Omnibus में अक्सर उपयोग किए जाने वाले उच्च-स्तरीय कमांड हैं:
session
new <आर्टिफैक्ट नाम>
modules
open <फ़ाइल पथ>
ls
rm
wipe
cat <आर्टिफैक्ट नाम | सत्र ID>
<मॉड्यूल नाम> <आर्टिफैक्ट नाम | सत्र ID>
<मशीन नाम> <आर्टिफैक्ट नाम | सत्र ID>
यदि आपको कभी भी एप्लिकेशन के विभिन्न क्षेत्रों के लिए उपलब्ध विभिन्न कमांड पर त्वरित संदर्भ की आवश्यकता होती है, तो इसी उद्देश्य के लिए उप-सहायता मेनू हैं। इन कमांड का उपयोग करने से आपको केवल वे कमांड दिखाई देंगे जो किसी विशिष्ट क्षेत्र से संबंधित हैं:
general
artifacts
sessions
modules
अधिकांश साइबर जांच एक या अधिक तकनीकी संकेतकों, जैसे IP पता, फ़ाइल हैश या ईमेल पते से शुरू होती है। खोज और विश्लेषण के बाद, संबंध बनने लगते हैं और आप जुड़े डेटा बिंदुओं के माध्यम से घूम सकते हैं। इन डेटा बिंदुओं को Omnibus के अंदर आर्टिफैक्ट कहा जाता है और ये उस किसी भी आइटम का प्रतिनिधित्व करते हैं जिसकी आप जाँच करना चाहते हैं।
आर्टिफैक्ट निम्नलिखित प्रकारों में से एक हो सकते हैं:
कमांड "new" के बाद एक आर्टिफैक्ट, आपके Omnibus सत्र के अंदर उस आर्टिफैक्ट को बनाएगा और MongoDB के अंदर आर्टिफैक्ट का एक रिकॉर्ड संग्रहीत करेगा। यह रिकॉर्ड आर्टिफैक्ट का नाम, प्रकार, उपप्रकार, मॉड्यूल परिणाम, स्रोत, नोट्स, टैग, बच्चों की जानकारी (आवश्यकतानुसार) और निर्माण का समय रखता है। जब भी आप किसी बनाए गए या संग्रहीत आर्टिफैक्ट के विरुद्ध एक मॉड्यूल चलाते हैं, तो नए खोजे गए डेटा को दर्शाने के लिए डेटाबेस दस्तावेज़ अपडेट किया जाएगा।
एक नया आर्टिफैक्ट बनाने और ट्रैकिंग के लिए उसे MongoDB में जोड़ने के लिए, कमांड new <आर्टिफैक्ट नाम> चलाएँ। उदाहरण के लिए, डोमेन inquest.net की जाँच शुरू करने के लिए, आप new inquest.net चलाएँगे।
Omnibus स्वचालित रूप से निर्धारित करेगा कि आर्टिफैक्ट किस प्रकार का है और सुनिश्चित करेगा कि उस प्रकार के केवल मॉड्यूल ही आर्टिफैक्ट के विरुद्ध निष्पादित हों। यदि आप किसी आर्टिफैक्ट को ऐसे मॉड्यूल के विरुद्ध चलाने का प्रयास करते हैं जो आर्टिफैक्ट प्रकार का समर्थन नहीं कर सकता है, तो आपको एक चेतावनी संदेश द्वारा सूचित किया जाएगा जो स्वीकृत प्रकारों को सूचीबद्ध करता है।
जब एक मॉड्यूल बनाया जाता है, तो खोज प्रक्रिया के दौरान नए आर्टिफैक्ट मिल सकते हैं। उदाहरण के लिए, "dnsresolve" कमांड चलाने से पहले Omnibus द्वारा नहीं देखे गए नए IPv4 पते मिल सकते हैं। यदि ऐसा है, तो वे नए पाए गए आर्टिफैक्ट स्वचालित रूप से Omnibus में नए आर्टिफैक्ट के रूप में बनाए जाते हैं और उनके मूल से "source" नामक एक अतिरिक्त फ़ील्ड के साथ जुड़े होते हैं ताकि यह पहचाना जा सके कि वे मूल रूप से किस मॉड्यूल से पाए गए थे। इस उदाहरण में नवनिर्मित आर्टिफैक्ट का स्रोत "dnsresolve" होगा।
आर्टिफैक्ट को "rm" कमांड का उपयोग करके डेटाबेस से हटाया जा सकता है। यदि आपको अब किसी आर्टिफैक्ट की आवश्यकता नहीं है, तो बस डिलीट कमांड चलाएँ और आर्टिफैक्ट का नाम या सत्र ID निर्दिष्ट करें यदि उसके पास है।
Omnibus "सत्र" नामक एक सुविधा का उपयोग करता है। सत्र अस्थायी कैश हैं जो हर बार जब आप CLI सत्र शुरू करते हैं तो Redis के माध्यम से बनाए जाते हैं। हर बार जब आप एक आर्टिफैक्ट बनाते हैं, तो उस आर्टिफैक्ट का नाम एक संख्यात्मक कुंजी के साथ सत्र में जोड़ा जाता है जो आसान पुनर्प्राप्ति, खोज और संबंधित आर्टिफैक्ट के विरुद्ध कार्रवाई के लिए बनाता है।
उदाहरण के लिए, यदि आपके सत्र में "inquest.net" का एक आइटम है, तो virustotal inquest.net निष्पादित करने की आवश्यकता के बजाय आप virustotal 1 भी चला सकते हैं और आपको वही परिणाम प्राप्त होंगे। वास्तव में, यह किसी भी मॉड्यूल या कमांड के विरुद्ध काम करता है जो पहले तर्क के रूप में आर्टिफैक्ट नाम का उपयोग करता है।
सत्र ID के साथ आर्टिफैक्ट नाम के बजाय इंटरैक्ट करना

सत्र आर्टिफैक्ट तक आसान पहुँच के लिए हैं और हर बार जब आप कमांड लाइन सत्र छोड़ते हैं तो साफ़ हो जाएंगे। यदि आप सत्र को जल्दी साफ़ करना चाहते हैं, तो "wipe" कमांड चलाएँ और आपको एक साफ स्लेट मिलेगी।
Omnibus वर्तमान में मॉड्यूल की निम्नलिखित सूची का समर्थन करता है। यदि आपके पास मॉड्यूल के लिए सुझाव हैं या अपना खुद का लिखना चाहते हैं, तो कृपया एक पुल रिक्वेस्ट बनाएँ।
साथ ही, Omnibus कंसोल के अंदर, मॉड्यूल का नाम टाइप करने से उस मॉड्यूल से संबंधित सहायता जानकारी दिखाई देगी।
मॉड्यूल
मशीनें किसी दिए गए आर्टिफैक्ट के विरुद्ध एक आर्टिफैक्ट प्रकार के सभी उपलब्ध मॉड्यूल चलाने का एक सरल तरीका है। यह एक तेज़ तरीका है यदि आप एक कमांड का उपयोग करके किसी लक्ष्य पर जितना संभव हो उतनी जानकारी एकत्र करना चाहते हैं।
ऐसा करने के लिए, बस कमांड machine <आर्टिफैक्ट नाम|सत्र ID> चलाएँ और मॉड्यूल के निष्पादन समाप्त होने तक कुछ मिनट प्रतीक्षा करें।
एकमात्र चेतावनी यह है कि यह आर्टिफैक्ट प्रकार और प्रति मॉड्यूल परिणामों के आधार पर बड़ी मात्रा में डेटा और चाइल्ड आर्टिफैक्ट लौटा सकता है। इसे हल करने के लिए, हम उपयोगकर्ताओं के लिए अवांछित डेटा को ट्रिम करना आसान बनाने के लिए संग्रहीत डेटाबेस दस्तावेज़ से विशिष्ट आर्टिफैक्ट फ़ील्ड को हटाने का एक तरीका खोज रहे हैं।
याद रखने के लिए कुछ त्वरित कमांड हैं:
session - एक नया आर्टिफैक्ट कैश शुरू करेंcat <आर्टिफैक्ट नाम>|apikeys - एक आर्टिफैक्ट दस्तावेज़ को सुंदर-प्रिंट करें या अपनी संग्रहीत API कुंजियाँ देखेंopen <फ़ाइल पथ> - आर्टिफैक्ट की एक टेक्स्ट फ़ाइल सूची को Omnibus में जांच के लिए लोड करेंnew <आर्टिफैक्ट नाम> - एक नया आर्टिफैक्ट बनाएँ और इसे MongoDB और अपने सत्र में जोड़ेंfind <आर्टिफैक्ट नाम> - जाँचें कि क्या कोई आर्टिफैक्ट db में मौजूद है और परिणाम दिखाएँरिपोर्ट एक आर्टिफैक्ट के डेटाबेस दस्तावेज़ का JSON आउटपुट है, मूल रूप से "cat" कमांड के आउटपुट का एक टेक्स्ट फ़ाइल संस्करण। लेकिन report कमांड का उपयोग करके आप एक आर्टिफैक्ट और एक फ़ाइलपथ निर्दिष्ट कर सकते हैं जहाँ आप आउटपुट को सहेजना चाहते हैं:
omnibus >> report inquest.net /home/adam/intel/osint/reports/inq_report.jsonयह उपरोक्त कमांड omnibus/reports के मानक रिपोर्ट निर्देशिका को ओवरराइड करता है। डिफ़ॉल्ट रूप से, और यदि आप कोई रिपोर्ट पथ निर्दिष्ट नहीं करते हैं, तो सभी रिपोर्ट उस स्थान पर सहेजी जाएंगी। साथ ही, यदि आप कोई फ़ाइल नाम निर्दिष्ट नहीं करते हैं तो रिपोर्ट निम्नलिखित प्रारूप का उपयोग करेगी:
[artifact_name]_[timestamp].jsonकमांड के आउटपुट को मानक Linux वर्ण > का उपयोग करके मनमानी टेक्स्ट फ़ाइलों में भी सहेजा जा सकता है।
उदाहरण के लिए, यदि आप एक होस्ट के लिए VirusTotal लुकअप के आउटपुट को "vt-lookup.json" नामक फ़ाइल में संग्रहीत करना चाहते हैं, तो आप बस निष्पादित करेंगे:
virustotal inquest.net > vt-lookup.jsonडिफ़ॉल्ट रूप से रीडायरेक्टेड आउटपुट फ़ाइलें वर्तमान कार्यशील निर्देशिका में सहेजी जाती हैं, इसलिए "omnibus/" में, लेकिन यदि आप एक पूर्ण पथ निर्दिष्ट करते हैं जैसे virustotal inquest.net > /home/adam/intel/cases/001/vt-lookup.json तो JSON स्वरूपित आउटपुट वहाँ सहेजा जाएगा।