
أداة تعداد سريعة لـ Azure Storage blobs المكشوفة للعموم.
Goblob هي أداة تعداد خفيفة وسريعة مصممة للمساعدة في اكتشاف المعلومات الحساسة المكشوفة علنًا في Azure blobs، والتي يمكن أن تكون مفيدة لأغراض بحثية متنوعة مثل تقييمات الثغرات الأمنية، واختبار الاختراق، والاستطلاع.
تحذير. ستصدر Goblob goroutines فردية لكل اسم حاوية ليتم التحقق منه في كل حساب تخزين، محدودة فقط بالحد الأقصى لعدد goroutines المتزامنة المحدد في العلم -goroutines. يمكن لهذا التنفيذ استنزاف عرض النطاق الترددي بسرعة في معظم الحالات مع قائمة الكلمات الافتراضية، أو قد يكلفك الكثير من المال إذا كنت تستخدم الأداة في بيئة سحابية. تأكد من فهمك لما تفعله قبل تشغيل الأداة.
go install github.com/Macmod/goblob@latest
لاستخدام goblob، قم ببساطة بتشغيل الأمر التالي:
$ ./goblob <storageaccountname>
حيث <storageaccountname> هو حساب التخزين الهدف لتعداد عناوين URL العامة لـ Azure blob storage.
يمكنك أيضًا تحديد قائمة بأسماء حسابات التخزين للتحقق منها:
$ ./goblob -accounts accounts.txt
بشكل افتراضي، ستستخدم الأداة قائمة بأسماء حاويات Azure Blob Storage الشائعة لبناء عناوين URL محتملة. ومع ذلك، يمكنك أيضًا تحديد قائمة مخصصة لأسماء الحاويات باستخدام الخيار -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 لكل blob بدلاً من عنوان URL للحاويات (الافتراضي: false).-verbose=N - ضبط مستوى التفصيل (الافتراضي: 1، الحد الأدنى: 0، الحد الأقصى: 3).-maxpages=N - الحد الأقصى لصفحات الحاويات التي سيتم اجتيازها بحثًا عن blobs (الافتراضي: 20، اضبط على -1 لتعطيل الحد أو على 0 لتجنب سرد blobs تمامًا والتحقق فقط مما إذا كانت الحاوية عامة).-timeout=N - مهلة طلبات HTTP (بالثواني، الافتراضي: 90).على سبيل المثال، إذا كنت تريد فقط العثور على الحاويات المكشوفة علنًا باستخدام قوائم كبيرة من حسابات التخزين وأسماء الحاويات، فيجب عليك استخدام -maxpages=0 لمنع goroutines من ترقيم النتائج. ثم قم بتشغيلها مرة أخرى على مجموعة النتائج التي عثرت عليها باستخدام -blobs=true و -maxpages=-1 للحصول فعليًا على عناوين URL الخاصة بـ blobs.
من ناحية أخرى، إذا كنت تريد اختبار قائمة صغيرة من أسماء الحاويات الشائعة جدًا مقابل مجموعة كبيرة من حسابات التخزين، فقد ترغب في تجربة -invertsearch=true مع -maxpages=0، لرؤية الحسابات العامة لكل اسم حاوية بدلاً من أسماء الحاويات لكل حساب تخزين.
قد ترغب أيضًا في تجربة تغيير -goroutines و -timeout و -maxidleconns و -maxidleconnsperhost و -maxconnsperhost و -skipssl من أجل الاستفادة المثلى من عرض النطاق الترددي والعثور على النتائج بشكل أسرع.
جرب العلامات لتعرف ما يناسبك ;-)
المساهمات مرحب بها عن طريق فتح مشكلة أو تقديم طلب سحب.
تصور مثير للاهتمام لأسماء الحاويات الشائعة التي تم العثور عليها في تجاربي مع الأداة:

إذا كنت تريد معرفة المزيد عن تجاربي والموضوع بشكل عام، ألق نظرة على مقالتي:
رخصة MIT (MIT)
حقوق الطبع والنشر (c) 2023 Artur Henrique Marzano Gonzaga
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (البرنامج)، للتعامل مع البرنامج دون قيود، بما في ذلك دون قيود حقوق الاستخدام، والنسخ، والتعديل، والدمج، والنشر، والتوزيع، والترخيص، و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين يتم تزويدهم بالبرنامج بالقيام بذلك، شريطة الشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإذن الإشعار هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
البرنامج مقدم "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق، والملاءمة لغرض معين وعدم التعدي. في أي حال من الأحوال لا يكون المؤلفون أو أصحاب حقوق الطبع والنشر مسؤولين عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في دعوى تعاقدية أو تقصيرية أو غير ذلك، تنشأ عن أو من أو فيما يتعلق بالبرنامج أو الاستخدام أو التعاملات الأخرى في البرنامج.
-maxidleconns=N - معامل MaxIdleConns الخاص بالنقل لعميل HTTP (الافتراضي: 100).-maxidleconnsperhost=N - معامل MaxIdleConnsPerHost الخاص بالنقل لعميل HTTP (الافتراضي: 10).-maxconnsperhost=N - معامل MaxConnsPerHost الخاص بالنقل لعميل HTTP (الافتراضي: 0).-skipssl=true - تخطي التحقق من SSL (الافتراضي: false).-invertsearch=true - تعداد الحسابات لكل حاوية بدلاً من الحاويات لكل حساب (الافتراضي: false).