
أداة سريعة وشاملة لمسح الشبكات التنظيمية
الميزات • الاستخدام • التثبيت • الاستخدام • المساهمة • ملاحظات إضافية
Domainim هي أداة سريعة لاستطلاع النطاقات (domain reconnaissance) مخصصة لفحص الشبكات التنظيمية. تهدف الأداة إلى تقديم نظرة عامة موجزة عن بنية المؤسسة باستخدام تقنيات مثل OSINT والتخمين (bruteforcing) وتحليل DNS وغيرها.
الميزات الحالية (v1.3.0)-

تعداد أسماء المضيفين الافتراضية (Virtual hostname)
البحث العكسي عن DNS (Reverse DNS lookup)
يكتشف النطاقات الفرعية ذات النمط الشامل (wildcard subdomains). يتم إخفاء النتائج السلبية التي تُحلّ فقط إلى عناوين IP الخاصة بالنمط الشامل ما لم تكن قد ظهرت في شهادة TLS. يمكن فرض التخمين باستخدام --force-brute، وفي هذه الحالة تُستبعد النتائج التي تُحلّ فقط إلى عناوين IP الخاصة بالنمط الشامل
فحص أساسي لمنافذ TCP
يتم قبول النطاقات الفرعية كمدخلات
تصدير النتائج إلى ملف JSON
بعض الميزات قيد التطوير. راجع الميزات المخطط لها لمزيد من التفاصيل.
المشروع مستوحى من Sublist3r. وحدة فحص المنافذ مبنية بشكل كبير على NimScan.
يمكنك بناء هذا المستودع من المصدر-
git clone [email protected]:pptx704/domainim
nimble build
./domainim <domain> [--ports=<ports>]
أو يمكنك ببساطة تنزيل الملف التنفيذي من صفحة الإصدارات. ضع في اعتبارك أن الملف التنفيذي تم اختباره على أنظمة مبنية على Debian فقط.
./domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
<domain> هو النطاق المطلوب تعداده. يمكن أن يكون نطاقًا فرعيًا أيضًا.-- ports | -p هو تحديد نصي للمنافذ المطلوب فحصها. يمكن أن يكون واحدًا مما يلي-
all - فحص جميع المنافذ (1-65535)none - تخطي فحص المنافذ (الافتراضي)t<n> - فحص أعلى n من المنافذ الأكثر شيوعًا (مثل nmap). أي أن t100 يفحص أعلى 100 منفذ. القيمة القصوى هي 5000. إذا كانت n أكبر من 5000، فسيتم تعيينها إلى 5000.80 يفحص المنفذ 8080-100 يفحص المنافذ من 80 إلى 10080,443,8080 يفحص المنافذ 80 و443 و808080,443,8080-8090,t500 يفحص المنافذ 80 و443 ومن 8080 إلى 8090 وأعلى 500 منفذ--dns | -d هو عنوان خادم DNS. يجب أن يكون عنوان IPv4 صالحًا ويمكن أن يحتوي اختياريًا على رقم المنفذ-
a.b.c.d - استخدام خادم DNS على a.b.c.d على المنفذ 53a.b.c.d#n - استخدام خادم DNS على a.b.c.d على المنفذ n--wordlist | -l - المسار إلى ملف قائمة الكلمات. يُستخدم هذا للتخمين القسري على النطاقات الفرعية. إذا كان الملف غير صالح، فسيتم تخطي التخمين القسري. يتم تجاهل الأسطر الفارغة والأسطر التي تبدأ بـ #. يمكنك الحصول على قائمة كلمات من SecLists. تتوفر قائمة كلمات أيضًا في صفحة الإصدار.--force-brute | -f - التخمين القسري حتى إذا تم العثور على سجل حرف بدل. يتم تجاهل النطاقات الفرعية التي تُحل فقط إلى عناوين IP الخاصة بحرف البدل.--rps | -r - عدد الطلبات المطلوب إجراؤها في الثانية أثناء التخمين القسري. القيمة الافتراضية هي 1024 req/s. تجدر الإشارة إلى أن استعلامات DNS تُجرى على دفعات ولا تُجرى الدفعة التالية إلا بعد اكتمال الدفعة السابقة. نظرًا لأن الاستعلامات قد تكون محدودة المعدل، فإن زيادة القيمة لا تضمن دائمًا نتائج أسرع.--out | -o - المسار إلى ملف الإخراج. سيتم حفظ الإخراج بتنسيق JSON. يجب أن ينتهي اسم الملف بـ .json.أمثلة
./domainim nmap.org --ports=all./domainim google.com --ports=none --dns=8.8.8.8#53./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --out=results.json./domainim nmap.org --wordlist=wordlist.txt --force-brute./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1يمكن الوصول إلى قائمة المساعدة باستخدام ./domainim --help أو ./domainim -h.
Usage:
domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
domainim (-h | --help)
Options:
-h, --help Show this screen.
-p, --ports Ports to scan. [default: `none`]
Can be `all`, `none`, `t<n>`, single value, range value, combination
-l, --wordlist Wordlist for subdomain bruteforcing. Bruteforcing is skipped for invalid file.
-f, --force-brute Bruteforce even if a wildcard record is found. Results resolving only to wildcard IPs are discarded.
-d, --dns IP and Port for DNS Resolver. Should be a valid IPv4 with an optional port [default: system default]
-r, --rps DNS queries to be made per second [default: 1024 req/s]
-o, --out JSON file where the output will be saved. Filename must end with `.json`
Examples:
domainim domainim.com -p:t500 -l:wordlist.txt --dns:1.1.1.1#53 --out=results.json
domainim sub.domainim.com --ports=all --dns:8.8.8.8 -l:wordlist.txt -r:1500 -f -o:results.json
مخطط JSON للنتائج كما يلي-
[
{
"subdomain": string,
"data": [
{
"ipv4": string,
"vhosts": [string],
"reverse_dns": string,
"ports": [int]
}
]
}
]
يمكن العثور على مثال json لـ nmap.org هنا.
المساهمات مرحّب بها. لا تتردد في فتح طلب سحب أو مشكلة.
لا يزال هذا المشروع في مراحله المبكرة. هناك عدة قيود أعلم بها.
المحركات التي أستخدمها (أسميها محركات لأن Sublist3r يفعل ذلك) هي خدمات مجانية بدون مفاتيح، ومعظمها لديه نوع من حد الاستجابة. يُرجع dnsdumpster ما يصل إلى 50 نطاقًا فرعيًا للمستخدمين المجانيين وrapiddns حوالي 100. يسمح hackertarget فقط بعدد قليل من الاستعلامات يوميًا لكل IP، وcertspotter يُرجع فقط الشهادات الصالحة حاليًا. يُعشِّئ crt.sh النتائج في حالة وجود عدد كبير جدًا من النتائج وغالبًا ما يكون محمّلًا بشكل زائد (HTTP 502). لذلك بالنسبة لبعض النطاقات، قد تختلف النتائج بين عمليات تشغيل مختلفة. يتم الإبلاغ عن المحرك الفاشل وتخطيه؛ ولا يوقف الفحص أبدًا. قد تحتوي المصادر السلبية أيضًا على أسماء قديمة أو مولّدة بواسطة النطاقات الشاملة.