
أداة تعداد نطاقات فرعية متعددة المصادر تضم أكثر من 50 وحدة جمع، وهجوم القوة الغاشمة على DNS، وتحليل DNS سلبي، وشفافية الشهادات، وكشط محركات البحث، واكتشاف استيلاء النطاقات الفرعية لأغراض الاستطلاع.
👊OneForAll أداة قوية لجمع النطاقات الفرعية 📝الوثائق باللغة الإنجليزية
📢 يرجى قراءة هذه الوثائق بعناية، فهي ستساعدك على التعرف بسرعة على OneForAll!
OneForAll مبني على Python 3.6.0 ومُختبر عليه، يتطلب OneForAll إصدار Python أعلى من 3.6.0 للتشغيل. لتثبيت بيئة Python يمكنك الرجوع إلى دليل تثبيت Python 3. قم بتشغيل الأوامر التالية للتحقق من إصدار Python و pip3:
python -V
pip3 -V
إذا رأيت مخرجات مشابهة للتالي فهذا يعني أن بيئة Python لا توجد بها مشكلة:
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
نظرًا لأن هذا المشروع قيد التطوير، يتم تحديثه وتحسينه باستمرار، عند التحميل يُرجى استخدام git clone لـاستنساخ أحدث مستودع للكود، مما يسهل أيضًا التحديثات المستقبلية. لا يُنصح بالتحميل من Releases لأن إصدارات Releases يتم تحديثها ببطء ويصعب تحديثها.
هذا المشروع منعكس بالفعل على Gitee (كود سحابة)، يُوصى للمستخدمين في الصين باستخدام Gitee للاستنساخ الأسرع:
git clone https://gitee.com/shmilylty/OneForAll.git
أو:
git clone https://github.com/shmilylty/OneForAll.git
يمكنك تثبيت تبعيات OneForAll باستخدام pip3، فيما يلي مثال على تثبيت التبعيات باستخدام pip3 على نظام Windows: ملاحظة: إذا كان Python3 مثبتًا في دليل Program Files للنظام، مثل: C:\Program Files\Python36، فيرجى تشغيل موجه الأوامر cmd كمسؤول وتنفيذ الأوامر التالية!
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help
للأنظمة الأساسية الأخرى، يُرجى الرجوع إلى تثبيت التبعيات، إذا واجهت مشكلة في تجميع إحدى مكتبات التبعيات أثناء التثبيت، يمكنك الرجوع إلى الأسئلة الشائعة والإجابات.md للحصول على حلول، وإذا لم يتم حلها يمكنك الانضمام إلى المجموعة للإبلاغ عن المشكلة.
نفّذ الأوامر التالية لـتحديث المشروع (يمكن حفظ التعديلات على /config/setting.py و /config/api.py):
git stash # تخزين التعديلات المحلية مؤقتًا
git fetch --all # جلب تحديثات المشروع
git pull # تحميل واستبدال
git stash pop # استعادة التعديلات المحلية
أولاً، قم بتحميل وتعديل ملفات التكوين، أضف api الخاص بك والإعدادات المخصصة، مع الحفاظ على هيكل الملفات الأصلي
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py
اسحب الصورة ونفّذها، حيث ~/.config هو المسار إلى مجلد ملفات التكوين الخاص بك
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run
أضف المعلمات مباشرة في نهاية الأمر، سيتم إخراج النتائج في الدليل المحلي ~/results، إذا كنت بحاجة إلى حفظها في موقع آخر، يمكنك تعديل ذلك بنفسك
إذا قمت بتثبيت التبعيات باستخدام pip3، فاستخدم الأوامر التالية لتشغيل المثال:
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
لنأخذ الأمر python3 oneforall.py --target example.com run كمثال، عند التنفيذ الطبيعي مع المعلمات الافتراضية، سينشئ OneForAll النتائج المقابلة في دليل results:

example.com.csv هو ملف بنتائج جمع النطاقات الفرعية لكل نطاق رئيسي.
all_subdomain_result_1583034493.csv هو ملف تلخيصي لنتائج جمع النطاقات الفرعية في كل تشغيل لـ OneForAll، يحتوي على example.com.csv، لتسهيل الحصول على جميع النتائج في سيناريوهات الجمع الجماعي.
result.sqlite3 هو قاعدة بيانات SQLite3 تخزن نتائج جمع النطاقات الفرعية لكل تشغيل لـ OneForAll، وهيكل قاعدة البيانات كما هو موضح أدناه:

الجدول المشابه لـ example_com_origin_result يخزن نتائج الجمع الأولية لكل وحدة.
الجدول المشابه لـ example_com_resolve_result يخزن نتائج تحليل النطاقات الفرعية.
الجدول المشابه لـ example_com_last_result يخزن نتائج جمع النطاقات الفرعية السابقة (يتم إنشاؤه فقط بعد جمع أكثر من مرتين).
الجدول المشابه لـ example_com_now_result يخزن نتائج جمع النطاقات الفرعية الحالية، في العادة يكفي التركيز على هذا الجدول.
لمزيد من المعلومات، يُرجى الاطلاع على شرح الحقول.
توفر معاملات سطر الأوامر فقط بعض المعلمات الشائعة، لمزيد من التفاصيل حول إعدادات المعلمات، يُرجى الاطلاع على setting.py. إذا كنت تعتقد أن بعض المعلمات تُستخدم بشكل متكرر في واجهة الأوامر أو أن هناك معلمات مفقودة، فنحن نرحب بتعليقاتك. لأسباب معروفة، إذا كنت بحاجة إلى استخدام بعض واجهات الجمع المحجوبة، يُرجى أولاً تكوين الوكيل في setting.py. بعض وحدات الجمع تتطلب توفير API (يمكن الحصول عليها مجانًا في الغالب عن طريق تسجيل حساب)، إذا كنت بحاجة إلى استخدامها، يُرجى تكوين معلومات API في api.py. إذا لم تستخدمها، يمكن تجاهل رسائل الخطأ ذات الصلة. (لمزيد من التفاصيل عن الوحدات، يُرجى قراءة شرح وحدات الجمع)
واجهة سطر الأوامر لـ OneForAll مبنية على Fire. لمزيد من الطرق المتقدمة في استخدام Fire، يُرجى الاطلاع على استخدام Fire CLI.