Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/e1abrador/sub.monitor
الاستطلاعجمع المعلوماتتعداد النطاقات الفرعية
GitHube1abrador/sub.monitor

sub.Monitor

أداة مراقبة مستمرة سلبية للنطاقات الفرعية ذاتية الاستضافة.

عرض المستودع
17220منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

sub.Monitor

root@kitploit:~

   أداة مراقبة نطاقات فرعية سريعة وسهلة الاستخدام لإدارة سطح الهجوم المستمر.

image

لماذا؟

لماذا تختار sub.Monitor؟ يقدم هذا البرنامج إعدادًا سهلاً بسبب استخدامه لـ SQLite لتخزين جميع النطاقات المُكتشفة (مما يلغي الحاجة إلى إدارة قاعدة بيانات مسبقة). علاوة على ذلك، يتمتع بقابلية تخصيص عالية، حيث يحتاج المستخدمون فقط إلى إضافة بضعة أسطر من الكود إلى السكربت باستخدام أدواتهم المختارة. وعلى عكس الحلول الأخرى الموجودة التي تعتمد على قواعد بيانات مثل MySQL أو MongoDB، يمكن أن يصبح تشغيل السكربت مهمة شاقة.

الميزات

  • سريع
  • سهل الاستخدام
  • سهل التثبيت
  • سهل التخصيص
  • حفظ النطاقات الفرعية باستمرار في قاعدة البيانات المحلية (مع إمكانية تفريغها جميعًا)
  • إشعارات Telegram/Slack/Discord

قائمة المساعدة

أعلام sub.Monitor:

root@kitploit:~
options:
  --add ADD             Domain to scan
  --out-scope OUT_SCOPE
                        File with out-of-scope domains
  --file FILE           File with known subdomains
  -D DOMAIN, --domain DOMAIN
                        Domain to scan
  -H HOURS, --hours HOURS
                        Hours between scans
  --dump                Dump all subdomains for a specific domain
  --list                List all root domains in the database
  -df DF                File with domains to scan
  --inscope             Dump only in-scope domains
  --notinscope          Dump only out-of-scope domains
  --dumpall             Dump all subdomains with their details
  --info                Show discovery date for subdomains
  -help, -?             Show this help message and exit

التكوينات المطلوبة مسبقًا

تحتاج إلى كتابة مسارات ملفات التكوين (API) في ملف config.ini.

  • ملف تكوين API لـ Subfinder.
  • ملف تكوين API لـ Amass.
  • ملف تكوين API لـ Notify.
  • ستحتاج إلى تحديد مسارات الثنائي والتكوين في ملف sub.monitor-config.ini.
  • أخيرًا، قم بتنفيذ pip3 install -r requirements.txt

يمكنك بسهولة تنفيذ أدواتك الخاصة في السكربت، فقط قم بتعديل أسطر الكود:

root@kitploit:~
def run_tool(tool, domain, output_file):
    print(f'[{datetime.datetime.now()}] - Running {tool} on {domain}')
    if tool == 'assetfinder':
        assetfinder_binary = config.get('Binary paths', 'assetfinder')
        cmd = f'echo {domain} | {assetfinder_binary} -subs-only | grep -E "{domain}$" |grep -v "*" | grep -v "@"'
    elif tool == 'subfinder':
        subfinder_binary = config.get('Binary paths', 'subfinder')
        subfinder_api = config.get('Api', 'subfinder_api')
        cmd = f'{subfinder_binary} -d {domain} -silent -pc {subfinder_api} -all'
    elif tool == 'amass':
        amass_binary = config.get('Binary paths', 'amass')
        amass_api = config.get('Api', 'amass_api')
        cmd = f'{amass_binary} enum -passive -norecursive -noalts -d {domain} -config {amass_api}'
    elif tool == 'my-custom-tool':
        my-custom-tool-binary = config.get('Binary paths', 'my-custom-tool-binary-or-script')
        cmd = f'{my-custom-tool-binary} -d {domain}'

من المهم ملاحظة أنه إذا أضفت أي أداة مخصصة، يجب أن يكون الإخراج النهائي هو نتائج النطاق لكي يقوم sub.Monitor بحفظها في قاعدة البيانات، على سبيل المثال طريقة استخدامها ستكون:

root@kitploit:~
cmd = f'bash customtool.sh {domain}''
...
cat customtool.sh
mycustomtool -d $1 > /tmp/$1.txt &>/dev/null; cat /tmp/$1.txt | unfurl domains | anew; rm -r /tmp/$1.txt

أيضًا أضف اسم أداتك هنا:

root@kitploit:~
                for tool in ['subfinder', 'amass', 'assetfinder', 'my-custom-tool-name']:
                    run_tool(tool, domain, output_file)

أخيرًا، بالطبع، تحتاج إلى إضافة الأداة في ملف sub.monitor-config.ini لكي يتمكن سكربت بايثون من الحصول على الثنائي من ملف التكوين ذلك.

الشيء الوحيد المطلوب هو أنه بمجرد انتهاء الأمر، يجب أن يُظهر الإخراج جميع النطاقات المُكتشفة حتى يتمكن السكربت من حفظها في ملف السجلات وداخل قاعدة البيانات.

خطة العمل

أولاً وقبل كل شيء، يحتاج sub.Monitor إلى قائمة بالنطاقات التي تم مسحها بالفعل:

root@kitploit:~
➜  cat ibm_sorted_subdomains.txt
test1.ibm.com
test2.ibm.com
test3.ibm.com
subtest.testX.ibm.com
...

الآن، يمكن تمرير الملف الذي يحتوي على النطاقات الفرعية إلى sub.Monitor باستخدام الأمر التالي:

root@kitploit:~
python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

يوجد أيضًا إمكانية لإضافة علامة خارج النطاق، على سبيل المثال، لنفترض أن برنامج Bug Bounty يحتوي على السياسة التالية:

root@kitploit:~
*.ibm.com - in scope
super-admin.ibm.com - out of scope
*.super-admin.ibm.com - out of scope

من الممكن إنشاء ملف بهذه المحتويات:

root@kitploit:~
cat outscope.txt
super-admin.ibm.com
*.super-admin.ibm.com

الآن، يمكنك إضافة جميع النطاقات التي اكتشفتها يدويًا إلى قاعدة البيانات (مع تصفية تلك الموجودة في النطاق):

root@kitploit:~
python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt --out-scope outscope.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador.sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

سيؤدي هذا إلى إضافة جميع النطاقات الفرعية إلى قاعدة البيانات، ولكنه سيضع علامة على جميع النطاقات خارج النطاق بـعلامة [Out of scope] (سنرى كيفية تصفية النطاقات داخل النطاق من قاعدة البيانات في قسم تفريغ النطاقات).

لتأكيد إضافة النطاق إلى قاعدة البيانات، قم بتنفيذ:

root@kitploit:~
python3 monitor.py --list
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

ibm.com [9 subdomains added manually] [2 subdomains discovered] [11 total unique in database]

بمجرد تحميله بشكل صحيح، يمكن بدء عملية المراقبة. يُوصى باستخدام TMUX على VPS وتركه قيد التشغيل لفترة طويلة. باستخدام الأمر التالي، سيقوم السكربت بتشغيل أدوات تعداد النطاقات الفرعية وسيقارن النتائج الجديدة بالنتائج القديمة. إذا تم العثور على أي نطاق فرعي جديد، فسيقوم sub.Monitor أولاً بإضافته إلى قاعدة البيانات المحلية (لن يتم الإشعار مرة أخرى عن هذا الاكتشاف) ثم سيقوم بإخطار المستخدم عبر Slack/Telegram/Discord.

root@kitploit:~
python3 monitor.py -D ibm.com -H 12 --out-scope outscope.txt

إذا تم العثور على أي نطاق فرعي، فسيظهر sub.Monitor الرسالة التالية في الإخراج:

root@kitploit:~
➜ python3 monitor.py -D ibm.com -H 8 # لتصفية النطاقات الفرعية الموجودة في النطاق الحالي من تلك خارج النطاق، يمكنك استخدام:
                                      # python3 monitor.py -D ibm.com -H 8 --out-scope outscope.txt

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:07:25.191169] - New subdomain xxxx.ibm.com discovered
[2023-06-06 18:07:25.353156] - New subdomain xyxyxyxyxyx.ibm.com discovered
[2023-06-06 18:07:25.641082] - New subdomain x1.xxxx.ibm.com discovered

من الممكن أيضًا مراقبة أكثر من نطاق واحد، باستخدام الأمر التالي:

root@kitploit:~
python3 monitor.py -df root-domains.txt -H 8
python3 monitor.py -df roots.txt -H 8 --out-scope outscope.txt

بعد الإبلاغ عن تلك الرسائل، في نفس الوقت سيتلقى المستخدم الإشعارات على Telegram

image

كيف أدير الإشعارات؟ لقد وجدت طريقة سهلة (وسهلة الإدارة) لرؤية جميع النطاقات المكتشفة حديثًا باستخدام Discord. لدي هذا (تم تعتيمه نظرًا لأنها جميعها برامج خاصة):

image

الفكرة هي أولاً إنشاء فئة تخص اسم البرنامج:

> Yahoo

--- yahoo.com

--- yahoo.net

--- إلخ ...

> IBM

--- ibm.com

--- whateverdomain.com

--- إلخ ...

هذا ما يبدو عليه ملف تكوين notify الخاص بي:

image

أوصي بفعل ذلك لكل نطاق (قد يكون الإعداد شاقًا بعض الشيء، لكنها طريقة رائعة لإدارة النتائج). سيقوم سكربت monitor.py بإرسال النتائج إلى webhook المحدد بناءً على المعرف (الذي يجب أن يكون مطابقًا لاسم النطاق المراد مسحه).

لنفترض أن السكربت كان يعمل لمدة شهرين وتريد الحصول على جميع النتائج (النطاقات الفرعية القديمة والمكتشفة حديثًا). مع sub.Monitor، من الممكن ذلك باستخدام علامة --dump:

root@kitploit:~
python3 monitor.py -D ibm.com --dump

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

Subdomains for ibm.com:
subdomain1.ibm.com
subdomain2.ibm.com
...

يمكنك أيضًا استخدام الأمر التالي لرؤية اليوم الذي تم اكتشاف النطاق فيه:

root@kitploit:~
python3 monitor.py -D ibm.com --dump --info

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

Subdomains for ibm.com:
test.ibm.com [discovered on 06/08/2023]
test2.ibm.com [discovered on 08/08/2023] [Out of scope]

نظرًا لأنه من المحتمل جدًا أن يتم وضع علامة على بعض النطاقات على أنها خارج النطاق باستخدام الأمر python3 monitor.py -d ibm.com --dump --info، لعرض النطاقات داخل النطاق فقط، من الممكن استخدام علامة --inscope:

root@kitploit:~
python3 monitor.py -D ibm.com --dump --info --inscope

          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

Subdomains for ibm.com:
test.ibm.com [discovered on 06/08/2023]
test3.ibm.com [discovered on 08/08/2023]

الشكر

شكرًا لـ:

  • Projectdiscovery لإنشاء subfinder و notify!
  • شكرًا لـ OWASP على مشروعهم الرائع amass!
  • Tomnomnom لإنشاء assetfinder!

المهام المتبقية

  • تنفيذ مراقبة أكثر من نطاق فرعي. [تم]
  • قراءة ملفات النطاقات باستمرار بحيث يمكن مسح نطاقات جديدة دون إيقاف البرنامج. [تم]
  • تنفيذ تصفية خارج النطاق. [تم]

إذا كانت لديك أي فكرة عن وظيفة جديدة، افتح طلب سحب (PR) على https://github.com/e1abrador/sub.Monitor/pulls.

حظ سعيد وصيد موفق! إذا كنت حقًا تحب الأداة (أو أي أدوات أخرى)، أو ساعدتك في العثور على مكافأة رائعة، فكر في شراء قهوة لي! ☕ (يمكنني استخدام الكافيين!)

⚪ e1abrador

تويتر: https://twitter.com/e1abrador

Buy Me a Coffee at ko-fi.com

تنزيل الأداة
sub.Monitor — أداة مراقبة مستمرة سلبية للنطاقات الفرعية ذاتية الاستضافة. | Kitploit