
يقوم بفحص نقاط نهاية تخزين الكائنات السحابية العامة عبر Yandex وVK وSelectel وSber وAlibaba وTencent وHuawei وBaidu للعثور على الحاويات القابلة للسرد والكائنات المكشوفة.
ماسح ضوئي لتعرض تخزين الكائنات السحابي لاختبارات الأمان المصرح بها، وأعمال مكافآت الثغرات، والبنية التحتية التي تملكها.
يتحقق BucketBuster من أسماء الحاويات (buckets) المرشحة مقابل نقاط النهاية العامة لـ Yandex Cloud وVK Cloud وSelectel وSberCloud وAlibaba OSS وTencent COS وHuawei OBS وBaidu BOS. يمكنه تحديد الحاويات القابلة للسرد العام، ومطابقة أسماء الكائنات المتعلقة بالشهادات، وتنزيل الكائنات المتاحة للعموم اختياريًا عبر HTTP GET.
التصريح مطلوب: استخدم هذه الأداة فقط ضد الأصول التي تملكها أو لديك إذن صريح باختبارها. قد يكون فحص أو تنزيل البيانات من حاويات طرف ثالث غير قانوني. أنت مسؤول عن الامتثال للقوانين المعمول بها والعقود وقواعد مكافآت الثغرات وسياسات مزودي الخدمة.
git clone <repository-url>
cd bucketbuster
python -m venv .venv
تفعيل البيئة الافتراضية:
# Linux/macOS
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
تثبيت التبعيات:
python -m pip install -r requirements.txt
أنشئ قائمة كلمات مثل buckets.txt:
example-company
example-company-backup
example-company-documents
شغّل مجموعة المزودين الافتراضية، Yandex Cloud وVK Cloud:
python bucketbuster.py --wordlist buckets.txt
يُبلّغ الماسح الضوئي عن استجابات HTTP 200، والقوائم العامة، وأسماء الكائنات المطابقة، ونقاط النهاية التي ترفض الوصول والتي يبدو أنها موجودة. يتم تجاهل استجابة 404.
| علامة المزود | الخدمة | عائلات نقاط النهاية المضمّنة |
|---|---|---|
yandex | Yandex Cloud | نقاط نهاية التخزين والموقع الإلكتروني |
vk | VK Cloud | نقاط نهاية vkcloud-storage.ru |
selectel | Selectel | نقاط نهاية S3 وselstorage.ru |
sber | SberCloud | نقاط نهاية OBS وs3.cloud.ru |
aliyun | Alibaba Cloud OSS | مناطق مختارة في الصين |
tencent | Tencent Cloud COS | مناطق مختارة في الصين وآسيا |
huawei | Huawei Cloud OBS | مناطق مختارة في الصين |
baidu | Baidu Cloud BOS | مناطق مختارة في الصين وآسيا |
مجموعات المزودين:
--providers russia # yandex, vk, selectel, sber
--providers china # aliyun, tencent, huawei, baidu
--providers all # every supported provider
يمكنك أيضًا تقديم قائمة مفصولة بفواصل، على سبيل المثال:
python bucketbuster.py -w buckets.txt --providers aliyun,tencent
| الخيار | الافتراضي | الوصف |
|---|---|---|
-w, --wordlist PATH | مطلوب | ملف يحتوي على أسماء الحاويات المرشحة، اسم واحد في كل سطر. يتم تجاهل الأسطر الفارغة والتعليقات التي تبدأ بـ #. |
--providers VALUE | yandex,vk | علامات المزودين مفصولة بفواصل، أو all أو russia أو china. |
--dns | معطّل | إجراء فحص DNS سلبي وتخطي أسماء المضيفين التي لا يتم تحليلها. |
-t, --threads N | 12 | عدد عمال الحاويات المتزامنين. |
--delay SECONDS | 0.12 | التأخير بين طلبات HTTP. |
| الخيار | الوصف |
|---|---|
--match-ext LIST | امتدادات مفصولة بفواصل مثل .pfx,.p12,.cer,.crt. تُضاف نقطة بادئة عند حذفها. |
--match-name LIST | سلاسل فرعية للاسم/المسار غير حساسة لحالة الأحرف مفصولة بفواصل. يتم دعم حرف البدل البسيط *. |
--match-regex PATTERN | تعبير نمطي غير حساس لحالة الأحرف يُطابق مقابل مفتاح الكائن الكامل. مرّر الخيار عدة مرات لعدة أنماط. |
--match-cert | تفعيل امتدادات وكلمات الشهادات المدمجة، بما في ذلك CryptoPro وGOST والتوقيع والشهادة ومصطلحات الشهادات الروسية. |
عند تقديم مرشح واحد أو أكثر، فإنها تستخدم منطق OR: يُطابق الكائن إذا استوفى
أي امتداد أو اسم أو تعبير نمطي أو شرط --match-cert مُهيأ. بدون مرشحات،
يُعتبر كل كائن مُدرج مطابقًا للإبلاغ واختيار التنزيل.
| الخيار | الوصف |
|---|---|
-o, --output PATH | كتابة تقرير JSON. يتم بث النتائج أثناء الفحص. |
--csv PATH | كتابة تقرير CSV. يتم بث النتائج أثناء الفحص. |
| الخيار | الافتراضي | الوصف |
|---|---|---|
--download | معطّل | تنزيل الكائنات المطابقة من القوائم العامة باستخدام طلبات HTTP GET غير الموثقة. |
--download-all | معطّل | مع --download، حاول تنزيل كل كائن في كل قائمة عامة تم تحليلها وتجاهل مرشحات المطابقة. |
--download-dir PATH | ./downloads | الدليل الجذر للكائنات التي تم تنزيلها. |
--allow-private-keys | معطّل | السماح بتنزيل كائنات .pfx و.p12 و.key و.p8 و.pem. استخدمه فقط عند التصريح الصريح. |
يتطلب --download-all وجود --download. تقتصر التنزيلات على 25 MiB لكل
كائن، ولا يتم حفظ الاستجابات الفارغة أو الاستجابات غير 200. يتم حظر حاويات
المفاتيح الخاصة ما لم يتم تقديم --allow-private-keys صراحةً.
فحص مزودي روسيا/رابطة الدول المستقلة مع فحوصات DNS السلبية:
python bucketbuster.py -w buckets.txt --providers russia --dns
فحص جميع المزودين المدعومين وكتابة تنسيقي التقرير:
python bucketbuster.py \
--wordlist buckets.txt \
--providers all \
--dns \
--output findings.json \
--csv findings.csv
الإبلاغ عن ملفات الشهادات المحتملة حسب الامتداد:
python bucketbuster.py -w buckets.txt --match-ext .pfx,.p12,.cer,.crt,.der
مطابقة الأسماء والمسارات باستخدام السلاسل الفرعية وأحرف البدل البسيطة:
python bucketbuster.py \
-w buckets.txt \
--match-name cryptopro,*keystore*,backups/*.sql
استخدام تعبيرات نمطية متعددة:
python bucketbuster.py \
-w buckets.txt \
--match-regex '.*backup.*\.sql$' \
--match-regex 'config/.*\.ya?ml$'
تفعيل قائمة الامتدادات والكلمات المدمجة المتعلقة بالشهادات:
python bucketbuster.py -w buckets.txt --match-cert
تنزيل الكائنات المطابقة للامتدادات المحددة فقط:
python bucketbuster.py \
-w buckets.txt \
--providers aliyun,tencent \
--match-ext .cer,.crt,.p7b \
--download \
--download-dir ./authorized-downloads
تنزيل كل كائن مرئي في قائمة عامة. هذا يتجاهل عمدًا جميع مرشحات المطابقة ويجب استخدامه فقط على أصل اختبار معتمد:
python bucketbuster.py -w buckets.txt --download --download-all
قد يكون الإدخال المرشح اسم حاوية مجردًا، أو اسم مضيف، أو عنوان URL تخزين كامل، أو عنوان URL بنمط المسار. يتم تطبيع الأسماء والتحقق من صحتها قبل أي عملية DNS أو HTTP. يتم تجاهل المرشحات المكررة وغير الصالحة.
تتضمن نتائج JSON المزود والحاوية وعنوان URL وحالة HTTP وقابلية السرد والملفات المطابقة وجميع الملفات المكتشفة في القائمة وحالة DNS والملاحظات ومقتطف قائمة قصير ومسارات التنزيل المحلية. يحتوي CSV على حقول النتائج الرئيسية؛ يتم تسلسل قوائم الملفات كقيم مفصولة بفواصل منقوطة.
يتم تنظيم التنزيلات أسفل الدليل المحدد حسب المزود والحاوية:
downloads/
yandex/
example-company/
certificates/client.cer
يتم تعقيم مسارات الكائنات قبل كتابتها محليًا. التنزيل تسلسلي ومحدود المعدل بالتأخير المُهيأ.
--threads متحفظة وزد --delay عند اشتراط ذلك من قبل برنامج أو
سياسة مزود.--download أو --download-all أو --allow-private-keys ما لم
يغطِّ التصريح صراحةً الكائنات ذات الصلة ومعالجة البيانات.يُصدر BucketBuster بموجب BSD 2-Clause License.