
أداة تعداد نطاقات فرعية متعددة المصادر تضم أكثر من 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 للحصول على حلول، وإذا لم يتم حلها يمكنك الانضمام إلى المجموعة للإبلاغ عن المشكلة.
أولاً، قم بتحميل وتعديل ملفات التكوين، أضف 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 يخزن نتائج جمع النطاقات الفرعية السابقة (يتم إنشاؤه فقط بعد جمع أكثر من مرتين).
توفر معاملات سطر الأوامر فقط بعض المعلمات الشائعة، لمزيد من التفاصيل حول إعدادات المعلمات، يُرجى الاطلاع على setting.py. إذا كنت تعتقد أن بعض المعلمات تُستخدم بشكل متكرر في واجهة الأوامر أو أن هناك معلمات مفقودة، فنحن نرحب بتعليقاتك. لأسباب معروفة، إذا كنت بحاجة إلى استخدام بعض واجهات الجمع المحجوبة، يُرجى أولاً تكوين الوكيل في setting.py. بعض وحدات الجمع تتطلب توفير API (يمكن الحصول عليها مجانًا في الغالب عن طريق تسجيل حساب)، إذا كنت بحاجة إلى استخدامها، يُرجى تكوين معلومات API في api.py. إذا لم تستخدمها، يمكن تجاهل رسائل الخطأ ذات الصلة. (لمزيد من التفاصيل عن الوحدات، يُرجى قراءة شرح وحدات الجمع)
واجهة سطر الأوامر لـ OneForAll مبنية على Fire. لمزيد من الطرق المتقدمة في استخدام Fire، يُرجى الاطلاع على استخدام Fire CLI.
oneforall.py هو المدخل الرئيسي للبرنامج، يمكن لـ oneforall.py استدعاء وحدات مثل brute.py و takerover.py و dbexport.py وغيرها. لتسهيل اختراق النطاقات الفرعية، تم استخراج brute.py بشكل مستقل، ولتسهيل فحص مخاطر الاستيلاء على النطاقات الفرعية، تم استخراج takerover.py، ولتسهيل تصدير قاعدة البيانات، تم استخراج dbexport.py. يمكن تشغيل هذه الوحدات بشكل منفصل، وتقبل معلمات أكثر تنوعًا. إذا كنت ترغب في استخدام هذه الوحدات بشكل منفصل، يُرجى الرجوع إلى المساعدة في الاستخدام
❗ملاحظة: إذا واجهت بعض المشكلات أو الاستفسارات أثناء الاستخدام، يُرجى أولاً البحث في Issues باستخدام ميزة البحث للعثور على إجابات، ويمكنك أيضًا الاطلاع على الأسئلة الشائعة والإجابات.
مساعدة استخدام oneforall.py
قد لا تكون معلومات المساعدة التالية هي الأحدث، يمكنك استخدام للحصول على أحدث معلومات المساعدة.
عنوان المشروع: https://github.com/shmilylty/OneForAll
أهمية جمع المعلومات في اختبار الاختراق لا تُقدّر بثمن، وجمع النطاقات الفرعية هو جزء لا غنى عنه ومهم جدًا في جمع المعلومات. حاليًا، توجد العديد من الأدوات مفتوحة المصدر لجمع النطاقات الفرعية على الإنترنت، لكنها غالبًا ما تعاني من المشكلات التالية:
لحل هذه المشكلات، وُلد هذا المشروع. كما يوحي اسمه، آمل أن يكون OneForAll أداة شاملة وسريعة وقوية لجمع النطاقات الفرعية، تجمع بين مزايا العديد من الأدوات الأخرى 🔨.
حاليًا، OneForAll لا يزال قيد التطوير، ومن المؤكد أن هناك العديد من المشكلات والمجالات التي تحتاج إلى تحسين. نرحب بالمطورين المحترفين لتقديم Issues و PR. إذا كان الاستخدام جيدًا، يمكنك إعطاء نجمة صغيرة ✨. يوجد حاليًا مجموعة QQ مخصصة للتواصل وردود الفعل حول OneForAll 👨👨👦👦: 824414244 (رمز التحقق للمجموعة: جمع المعلومات).
censys_api، certspotter، crtsh، entrust، google، spyse_api)axfr، فحص ملفات سياسة النطاق المشترك cdx، فحص شهادات HTTPS cert، فحص سياسة أمان المحتوى csp، فحص ملف robots robots، فحص ملف sitemap sitemap، استخدام سجلات NSEC لاجتياز نطاقات DNS dnssec، سيتم إضافة وحدات مثل سجلات NSEC3 لاحقًا)إذا كان لديك أفكار رائعة أخرى، فيرجى إخباري بها! 😎
لمزيد من المعلومات، يُرجى الاطلاع على شرح هيكل الدليل.
يوجد في مجلد docs هذا المشروع بعض المساعدة والإيضاحات، مثل شرح مصدر قاموس النطاقات الفرعية، عملية الحكم على التحليل العام.
شكرًا لمكتبات Python الرائعة هذه!
يستخدم هذا المشروع تنسيق SemVer لإدارة الإصدارات، يمكنك الاطلاع على سجل التغييرات لمعرفة تاريخ التغييرات.
لمزيد من المعلومات، يُرجى الاطلاع على خطة التطوير المستقبلية.
نرحب بشدة بمساهمات جميع المطورين المحترفين لتحسين هذا المشروع!
يمكنك الاطلاع على جميع المساهمين ومساهماتهم في وثيقة المساهمين، ونشكرهم على جعل OneForAll أكثر قوة وسهولة في الاستخدام.
إذا كنت تعتقد أن هذا المشروع ساعدك، يمكنك التبرع بفنجان قهوة كتشجيع :)

هذا المشروع مرخص بموجب ترخيص GPL-3.0، للتفاصيل يُرجى الاطلاع على LICENSE.
شكرًا لمشاريع جمع النطاقات الفرعية مفتوحة المصدر على الإنترنت!
شكرًا لأعضاء فريق A-Team على إجاباتهم الحماسية ونكران الذات على الأسئلة!
يمكن استخدام هذه الأداة فقط في بناء أمان المؤسسات الذي حصل على تفويض قانوني كافٍ. أثناء استخدام هذه الأداة، يجب عليك التأكد من أن جميع أفعالك تتوافق مع القوانين واللوائح المحلية. إذا قمت بأي عمل غير قانوني أثناء استخدام هذه الأداة، فستتحمل جميع العواقب بنفسك، وجميع مطوري هذه الأداة وجميع المساهمين لا يتحملون أي مسؤولية قانونية أو تضامنية. ما لم تكن قد قرأت وفهمت ووافقت على جميع شروط هذه الاتفاقية بالكامل، فيرجى عدم تثبيت أو استخدام هذه الأداة. استخدامك أو أي طريقة أخرى صريحة أو ضمنية للتعبير عن قبول هذه الاتفاقية تعتبر موافقة منك على قراءة والالتزام بشروط هذه الاتفاقية.
نفّذ الأوامر التالية لـتحديث المشروع (يمكن حفظ التعديلات على /config/setting.py و /config/api.py):
git stash # تخزين التعديلات المحلية مؤقتًا
git fetch --all # جلب تحديثات المشروع
git pull # تحميل واستبدال
git stash pop # استعادة التعديلات المحلية
الجدول المشابه لـ example_com_now_result يخزن نتائج جمع النطاقات الفرعية الحالية، في العادة يكفي التركيز على هذا الجدول.
لمزيد من المعلومات، يُرجى الاطلاع على شرح الحقول.
python oneforall.py --helppython oneforall.py --help
NAME
oneforall.py - معلومات مساعدة OneForAll
SYNOPSIS
oneforall.py COMMAND | --target=TARGET <flags>
DESCRIPTION
OneForAll أداة قوية لجمع النطاقات الفرعية
Example:
python3 oneforall.py version
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./domains.txt run
python3 oneforall.py --target example.com --valid None run
python3 oneforall.py --target example.com --brute True run
python3 oneforall.py --target example.com --port small run
python3 oneforall.py --target example.com --fmt csv run
python3 oneforall.py --target example.com --dns False run
python3 oneforall.py --target example.com --req False run
python3 oneforall.py --target example.com --takeover False run
python3 oneforall.py --target example.com --show True run
Note:
المعلمة alive تأخذ قيم True, False والتي تعني تصدير النطاقات الحية أو جميع نتائج النطاقات الفرعية
المعلمة port تأخذ قيمًا مثل 'default', 'small', 'large'، راجع تكوين config.py
المعلمة fmt تأخذ تنسيقات مثل 'csv','json'
المعلمة path الافتراضية None تستخدم مسار إنشاء دليل نتائج OneForAll
ARGUMENTS
TARGET
اسم نطاق واحد (معلمة إلزامية، واحد من اثنين)
TARGETS
مسار ملف يحتوي على اسم نطاق واحد في كل سطر (معلمة إلزامية، واحد من اثنين)
FLAGS
--brute=BRUTE
s
--dns=DNS
تحليل DNS للنطاقات الفرعية (افتراضي True)
--req=REQ
طلب HTTP للنطاقات الفرعية (افتراضي True)
--port=PORT
نطاق المنافذ للتحقق من النطاقات الفرعية (افتراضي فقط المنفذ 80)
--valid=VALID
تصدير نتائج النطاقات الفرعية الحية فقط (افتراضي False)
--fmt=FMT
تنسيق حفظ النتائج (افتراضي csv)
--path=PATH
مسار حفظ النتائج (افتراضي None)
--takeover=TAKEOVER
فحص الاستيلاء على النطاق الفرعي (افتراضي False)
archivecrawl، commoncrawl، هذه الوحدة لا تزال قيد الاختبار وتحتاج إلى إضافة وتحسين)bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx)srv، وكذلك عن طريق الاستعلام عن سجلات MX, NS, SOA, TXT في سجلات DNS للنطاق لجمع النطاقات الفرعية)alienvault, riskiq_api، threatbook_api، threatminer، virustotal، virustotal_api، هذه الوحدة لا تزال بحاجة إلى إضافة وتحسين)ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api)، في وحدات البحث، باستثناء محركات البحث الخاصة، تدعم محركات البحث العامة الاستبعاد التلقائي للبحث، والبحث الكامل، والبحث التكراري.txt, csv, json.