
सार्वजनिक रूप से उजागर Azure Storage blobs के लिए एक तेज़ गणना उपकरण।
Goblob एक हल्का और तेज़ गणना उपकरण है जो Azure ब्लॉब्स में सार्वजनिक रूप से उजागर संवेदनशील जानकारी की खोज में सहायता के लिए डिज़ाइन किया गया है, जो भेद्यता मूल्यांकन, पैठ परीक्षण और टोही जैसे विभिन्न अनुसंधान उद्देश्यों के लिए उपयोगी हो सकता है।
चेतावनी। Goblob प्रत्येक संग्रहण खाते में जाँच करने के लिए प्रत्येक कंटेनर नाम के लिए अलग-अलग goroutines जारी करेगा, जो केवल -goroutines फ़्लैग में निर्दिष्ट अधिकतम समवर्ती goroutines की संख्या तक सीमित है। यह कार्यान्वयन अधिकांश मामलों में डिफ़ॉल्ट वर्डलिस्ट के साथ बैंडविड्थ को बहुत जल्दी समाप्त कर सकता है, या यदि आप क्लाउड वातावरण में टूल का उपयोग कर रहे हैं तो संभावित रूप से आपको बहुत पैसा खर्च कर सकता है। टूल चलाने से पहले सुनिश्चित करें कि आप समझते हैं कि आप क्या कर रहे हैं।
go install github.com/Macmod/goblob@latest
goblob का उपयोग करने के लिए निम्न आदेश चलाएँ:
$ ./goblob <storageaccountname>
जहाँ <storageaccountname> लक्ष्य संग्रहण खाता है जिसमें सार्वजनिक Azure ब्लॉब संग्रहण URL की गणना करनी है।
आप जाँच करने के लिए संग्रहण खाता नामों की एक सूची भी निर्दिष्ट कर सकते हैं:
$ ./goblob -accounts accounts.txt
डिफ़ॉल्ट रूप से, उपकरण संभावित URL बनाने के लिए सामान्य Azure Blob Storage कंटेनर नामों की एक सूची का उपयोग करेगा। हालाँकि, आप -containers विकल्प का उपयोग करके कंटेनर नामों की एक कस्टम सूची भी निर्दिष्ट कर सकते हैं। उदाहरण के लिए:
$ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt
उपकरण -output विकल्प का उपयोग करके परिणामों को एक फ़ाइल में आउटपुट करने का भी समर्थन करता है:
$ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt -output results.txt
यदि आप stdin के माध्यम से परीक्षण करने के लिए खाते प्रदान करना चाहते हैं तो आप -accounts (या खाता नाम) को पूरी तरह से छोड़ भी सकते हैं:
$ cat accounts.txt | ./goblob
Goblob बुनियादी वर्डलिस्ट के साथ आता है जिनका उपयोग -containers विकल्प के साथ किया जा सकता है:
Goblob कई फ़्लैग प्रदान करता है जिन्हें गणना प्रक्रिया में सुधार के लिए समायोजित किया जा सकता है:
-goroutines=N - अनुमति देने के लिए अधिकतम समवर्ती goroutines की संख्या (डिफ़ॉल्ट: 5000)।-blobs=true - कंटेनरों के URL के बजाय प्रत्येक ब्लॉब का URL रिपोर्ट करें (डिफ़ॉल्ट: false)।-verbose=N - वर्बोसिटी स्तर सेट करें (डिफ़ॉल्ट: 1, न्यूनतम: 0, अधिकतम: 3)।-maxpages=N - ब्लॉब की खोज के लिए पार करने के लिए कंटेनर पृष्ठों की अधिकतम संख्या (डिफ़ॉल्ट: 20, सीमा अक्षम करने के लिए -1 सेट करें या ब्लॉब को सूचीबद्ध करने से पूरी तरह बचने और केवल यह जाँचने के लिए 0 सेट करें कि कंटेनर सार्वजनिक है या नहीं)।-timeout=N - HTTP अनुरोधों के लिए टाइमआउट (सेकंड, डिफ़ॉल्ट: 90)।उदाहरण के लिए, यदि आप केवल संग्रहण खातों और कंटेनर नामों की बड़ी सूचियों का उपयोग करके सार्वजनिक रूप से उजागर कंटेनर खोजना चाहते हैं, तो आपको goroutines को परिणामों को पेजिनेट करने से रोकने के लिए -maxpages=0 का उपयोग करना चाहिए। फिर इसे उन परिणामों के सेट पर फिर से चलाएँ जो आपने -blobs=true और -maxpages=-1 के साथ पाए हैं ताकि वास्तव में ब्लॉब के URL प्राप्त हो सकें।
दूसरी ओर, यदि आप संग्रहण खातों के एक बड़े सेट के विरुद्ध बहुत लोकप्रिय कंटेनर नामों की एक छोटी सूची का परीक्षण करना चाहते हैं, तो आप प्रत्येक संग्रहण खाते के लिए कंटेनर नामों के बजाय प्रत्येक कंटेनर नाम के लिए सार्वजनिक खातों को देखने के लिए -invertsearch=true को -maxpages=0 के साथ आज़माना चाह सकते हैं।
आप अपनी बैंडविड्थ का सर्वोत्तम उपयोग करने और तेज़ी से परिणाम खोजने के लिए -goroutines, -timeout और -maxidleconns, -maxidleconnsperhost और -maxconnsperhost और -skipssl को बदलने का भी प्रयास कर सकते हैं।
यह जानने के लिए फ़्लैग्स के साथ प्रयोग करें कि आपके लिए सबसे अच्छा क्या काम करता है ;-)
योगदान का स्वागत है एक समस्या खोलकर या पुल रिक्वेस्ट सबमिट करके।
उपकरण के साथ मेरे प्रयोगों में पाए गए लोकप्रिय कंटेनर नामों का एक दिलचस्प दृश्य:

यदि आप मेरे प्रयोगों और सामान्य रूप से विषय के बारे में अधिक जानना चाहते हैं, तो मेरा लेख देखें:
MIT लाइसेंस (MIT)
Copyright (c) 2023 Artur Henrique Marzano Gonzaga
प्राधिकरण इस प्रकार प्रदान किया जाता है, निःशुल्क, किसी भी व्यक्ति को जो इस सॉफ़्टवेयर और संबंधित दस्तावेज़ फ़ाइलों (जिसे "सॉफ़्टवेयर" कहा जाता है) की एक प्रति प्राप्त करता है, बिना किसी प्रतिबंध के सॉफ़्टवेयर से निपटने के लिए, जिसमें बिना सीमा के उपयोग, प्रतिलिपि, संशोधन, विलय, प्रकाशन, वितरण, उप-लाइसेंसिंग और/या सॉफ़्टवेयर की प्रतियां बेचने का अधिकार शामिल है, और उन व्यक्तियों को अनुमति देना जिन्हें सॉफ़्टवेयर प्रदान किया गया है, निम्नलिखित शर्तों के अधीन ऐसा करने के लिए:
उपरोक्त कॉपीराइट सूचना और यह अनुमति सूचना सॉफ़्टवेयर की सभी प्रतियों या महत्वपूर्ण भागों में शामिल की जाएगी।
सॉफ़्टवेयर "जैसा है" प्रदान किया जाता है, बिना किसी प्रकार की वारंटी के, व्यक्त या निहित, जिसमें बिना सीमा के व्यापारिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और उल्लंघन न करने की वारंटी शामिल है। किसी भी स्थिति में लेखक या कॉपीराइट धारक किसी भी दावे, क्षति या अन्य देयता के लिए उत्तरदायी नहीं होंगे, चाहे वह अनुबंध के कार्य, टोर्ट या अन्यथा से उत्पन्न हुआ हो, सॉफ़्टवेयर या इसके उपयोग या अन्य लेन-देन से या उसके संबंध में।
-maxidleconns=N - HTTP क्लाइंट के लिए MaxIdleConns ट्रांसपोर्ट पैरामीटर (डिफ़ॉल्ट: 100)।-maxidleconnsperhost=N - HTTP क्लाइंट के लिए MaxIdleConnsPerHost ट्रांसपोर्ट पैरामीटर (डिफ़ॉल्ट: 10)।-maxconnsperhost=N - HTTP क्लाइंट के लिए MaxConnsPerHost ट्रांसपोर्ट पैरामीटर (डिफ़ॉल्ट: 0)।-skipssl=true - SSL सत्यापन छोड़ें (डिफ़ॉल्ट: false)।-invertsearch=true - प्रत्येक खाते के लिए कंटेनरों की गणना करने के बजाय प्रत्येक कंटेनर के लिए खातों की गणना करें (डिफ़ॉल्ट: false)।