
FestIn - ماسح لحاويات S3 المفتوحة

FestIN أداة اكتشاف دلاء S3 القوية واكتشاف المحتوىFestInFestIn هي أداة لاكتشاف دلاء S3 المفتوحة بدءاً من النطاقات.
تقوم بإجراء العديد من الاختبارات وتجمع المعلومات من:
هناك العديد من أدوات S3 للتعداد واكتشاف دلاء S3. بعضها رائع لكن لا أحد يمتلك قائمة كاملة بالميزات التي تمتلكها Festin.
الميزات الرئيسية التي تجعل Festin رائعاً:
Python 3.8 أو أعلى مطلوب!
$ pip install festin
$ festin -h
$ docker run --rm -it cr0hn/festin -h
$ festin -h
usage: __main__.py [-h] [--version] [-f FILE_DOMAINS] [-w] [-c CONCURRENCY] [--no-links] [-T HTTP_TIMEOUT] [-M HTTP_MAX_RECURSION] [-dr DOMAIN_REGEX] [-rr RESULT_FILE] [-rd DISCOVERED_DOMAINS] [-ra RAW_DISCOVERED_DOMAINS]
[--tor] [--debug] [--no-print] [-q] [--index] [--index-server INDEX_SERVER] [-dn] [-ds DNS_RESOLVER]
[domains [domains ...]]
Festin - the powered S3 bucket finder and content discover
positional arguments:
domains
optional arguments:
-h, --help show this help message and exit
--version show version
-f FILE_DOMAINS, --file-domains FILE_DOMAINS
file with domains
-w, --watch watch for new domains in file domains '-f' option
-c CONCURRENCY, --concurrency CONCURRENCY
max concurrency
HTTP Probes:
--no-links extract web site links
-T HTTP_TIMEOUT, --http-timeout HTTP_TIMEOUT
set timeout for http connections
-M HTTP_MAX_RECURSION, --http-max-recursion HTTP_MAX_RECURSION
maximum recursison when follow links
-dr DOMAIN_REGEX, --domain-regex DOMAIN_REGEX
only follow domains that matches this regex
Results:
-rr RESULT_FILE, --result-file RESULT_FILE
results file
-rd DISCOVERED_DOMAINS, --discovered-domains DISCOVERED_DOMAINS
file name for storing new discovered after apply filters
-ra RAW_DISCOVERED_DOMAINS, --raw-discovered-domains RAW_DISCOVERED_DOMAINS
file name for storing any domain without filters
Connectivity:
--tor Use Tor as proxy
Display options:
--debug enable debug mode
--no-print doesn't print results in screen
-q, --quiet Use quiet mode
Redis Search:
--index Download and index documents into Redis
--index-server INDEX_SERVER
Redis Search ServerDefault: redis://localhost:6379
DNS options:
-dn, --no-dnsdiscover
not follow dns cnames
-ds DNS_RESOLVER, --dns-resolver DNS_RESOLVER
comma separated custom domain name servers
بشكل افتراضي، يقبل FestIn نطاق بداية كمعامل لسطر الأوامر:
> festin mydomain.com
ولكن يمكنك أيضاً إعداد ملف خارجي بقائمة النطاقات:
> cat domains.txt
domain1.com
domain2.com
domain3.com
> festin -f domains.txt
يقوم FestIn بإجراء العديد من الاختبارات لنطاق واحد. يتم إجراء كل اختبار بشكل متوازٍ. بشكل افتراضي، يتم تعيين التوازي إلى 5. إذا كنت تريد زيادة عدد الاختبارات المتوازية، يجب تعيين الخيار -c
> festin -c 10 mydomain.com
كن حذراً مع عدد الاختبارات المتوازية وإلا قد تثير "إنذارات" في بعض المواقع.
يحتوي FestIn على زاحف صغير لاكتشاف الروابط إلى دلاء S3. يقبل الزاحف هذه الخيارات:
-T أو --http-timeout): تكوين مهلة لاتصالات HTTP. إذا كان موقع النطاق الذي تريد تحليله بطيئاً، نوصي بزيادة هذه القيمة. المهلة الافتراضية هي 5 ثوانٍ.-H أو --http-max-recursion): تحدد هذه القيمة حداً لتكرار الزحف. وإلا فإن FestIn سيفحص كل الإنترنت. القيمة الافتراضية هي 3. وهذا يعني أنه سيتبع فقط: domain1.com -> [رابط] -> domain2.com -> [رابط] -> domain3.com -> [رابط] -> تم الوصول إلى الحد الأقصى للتكرار. توقف.-dr أو --domain-regex): قم بتعيين هذا الخيار لتحديد الزاحف لتلك النطاقات التي تطابق هذا التعبير النمطي.مثال:
> echo "cdn" > blacklist.txt
> echo "photos" >> blacklist.txt
> festin -T 20 -M 8 -B blacklist.txt -dr .mydomain. mydomain.com
كن حذراً: -dr (أو --domain-regex) يقبل فقط تعبيرات POSIX النمطية الصالحة.
*mydomain.com* -> ليس تعبير POSIX نمطي صالح
.mydomain\.com. -> تعبير POSIX نمطي صالح
عند تشغيل FestIn يكتشف الكثير من المعلومات المفيدة. ليس فقط حول دلاء S3، ولكن أيضاً حول استقصاءات أخرى يمكننا القيام بها. على سبيل المثال:
بعد استخدام FestIn يمكننا استخدام المعلومات المكتشفة (النطاقات، الروابط، الموارد، الدلاء الأخرى...) كمدخل لأدوات أخرى، مثل nmap.
لهذا السبب، لدى FestIn 3 طرق مختلفة لتخزين المعلومات المكتشفة ويمكننا دمجها:
FestIn (-rr أو --result-file): يحتوي هذا الملف على سطر واحد بتنسيق JSON لكل دلو تم العثور عليه. يتضمن كل JSON: النطاق الأصلي، اسم الدلو وقائمة الكائنات للدلو.-rd أو --discovered-domains): يحتوي هذا الملف على نطاق واحد لكل سطر. هذه النطاقات تم اكتشافها بواسطة الزاحف أو DNS أو استقصاءات S3 ولكن يتم تخزين النطاقات التي تطابق المرشحات الخاصة بالمستخدم والداخلية فقط.-ra أو --raw-discovered-domains): يحتوي هذا الملف على جميع النطاقات، واحد لكل سطر، التي اكتشفها FestIn دون أي فلترة. هذا الخيار مفيد للمعالجة اللاحقة والتحليل.مثال:
> festin -rr festin.results -rd discovered-domains.txt -ra raw-domains.txt mydomain.txt
والربط مع Nmap:
> festin -rd domains.txt && nmap -Pn -A -iL domains.txt -oN nmap-domains.txt
يحتوي FestIn على الخيار --tor. باستخدام هذه المعلمة، تحتاج إلى وكيل Tor محلي يعمل على المنفذ 9050 على 127.0.0.1.
> tor &
> festin --tor mydomain.com
تتضمن بعض الاختبارات التي يقوم بها FestIn DNS. يدعم هذه الخيارات:
-dn أو --no-dnsdiscover)-ds أو --dns-resolver): إعداد خادم DNS مخصص. إذا كنت تخطط لإجراء العديد من الاختبارات، فيجب عليك استخدام خادم DNS مختلف عن الذي تستخدمه للمتصفح.مثال:
> festin -ds 8.8.8.8 mydomain.com
لا يمكن لـ FestIn اكتشاف دلاء S3 المفتوحة فحسب، بل يمكنه أيضاً تنزيل جميع المحتويات وتخزينها في محرك بحث نص كامل. هذا يعني أنه يمكنك إجراء استعلامات نص كامل على محتوى الدلو!
يستخدم FestIn كمحرك نص كامل المشروع مفتوح المصدر Redis Search.
تتوفر لهذه الميزة خياران:
--index): لتمكين الفهرسة في محرك البحث، يجب تعيين هذه العلامة.--index-server): تحتاج فقط إلى تعيين هذا الخيار إذا كان خادمك يعمل على IP/منفذ مختلف عن: localhost:6379.مثال:
> docker run --rm -p 6700:6379 redislabs/redisearch:latest -d
> festin --index --index-server redis://127.0.0.1:6700 mydomain.com
انتبه إلى أن الخيار `--index-server` يجب أن يحتوي على البادئة **redis://**
في بعض الأحيان لا نريد إيقاف FestIn وتشغيله في كل مرة يكون لدينا نطاق جديد لفحصه، أو أن أي أداة خارجية تكتشف نطاقات جديدة نريد التحقق منها.
يدعم FestIn وضع المراقبة. وهذا يعني أن FestIn سيبدأ ويستمع للنطاقات الجديدة. طريقة "إرسال" نطاقات جديدة إلى FestIn هي عن طريق ملف النطاقات. فهو يراقب هذا الملف للتغييرات.
هذه الميزة مفيدة لدمج FestIn مع أدوات أخرى، مثل dnsrecon.
مثال:
> festin --watch -f domains.txt
في طرفية مختلفة يمكننا كتابة:
> echo "my-second-domain.com" >> domains.txt
> echo "another-domain.com" >> domains.txt
كل نطاق جديد يُضاف إلى domains.txt سوف يوقظ FestIn.
باستخدام DnsRecon
النطاق المختار لهذا المثال هو target.com.
> dnsrecon -d target.com -t crt -c target.com.csv
بهذا الأمر سنكتشف نطاقات أخرى متعلقة بـ target.com. سيساعدنا هذا في تعظيم فرص نجاحنا.
FestIn> tail -n +2 target.com.csv | sort -u | cut -d "," -f 2 >> target.com.domains
بهذا الأمر ننشئ ملفاً يحتوي على نطاق واحد لكل سطر. هذا هو المدخل الذي يحتاجه FestIn.
> festin -f target.com.domains -c 5 -rr target.com.result.json --tor -ds 212.166.64.1 >target.com.stdout 2>target.com.stderr
في هذا المثال، الملفات الناتجة هي:
لتسهيل معالجة نطاقات متعددة، نوفر سكربتاً بسيطاً examples/loop.sh يقوم بأتمتة ذلك.
باستخدام FestIn مع نتائج DnsRecon
تشغيل ضد target.com مع الخيارات الافتراضية وترك النتيجة في ملف target.com.result:
> festin target.com -rr target.com.result.json
> festin target.com -c 5 -rr target.com.result.json --tor -ds 212.166.64.1
س: AWS يحظر عنوان IP الخاص بي ج:
عند إجراء العديد من الاختبارات ضد AWS S3، يضيف AWS عنوان IP الخاص بك إلى قائمة سوداء. ثم في كل مرة تحاول الوصول إلى أي دلو S3 باستخدام FestIn أو باستخدام متصفحك، سيتم حظرك.
نوصي بإعداد وكيل عند استخدام FestIn.

يقومون بتحليل وتقييم مخاطر التعرض لشركتك في الوقت الفعلي. الموقع الإلكتروني
يتم توزيع هذا المشروع بموجب ترخيص BSD