سكريبت تعداد DNS
DNSRecon هو منفذ بلغة بايثون لبرنامج نصي بلغة روبي كتبته لتعلم اللغة وعن DNS في أوائل عام 2007. هذه المرة أردت تعلم بايثون وتوسيع وظائف الأداة الأصلية، وفي هذه العملية إعادة تعلم كيفية عمل DNS وكيف يمكن استخدامه في عملية تقييم الأمن واستكشاف أخطاء الشبكة.
يوفر هذا البرنامج النصي القدرة على تنفيذ:
يتطلب DNSRecon إصدار Python 3.12 أو أعلى.
قم بتثبيت uv إذا لم تكن قد فعلت ذلك بالفعل:
curl -LsSf https://astral.sh/uv/install.sh | sh
استنسخ المستودع:
git clone https://github.com/darkoperator/dnsrecon.git
cd dnsrecon
قم بتثبيت التبعيات وإنشاء بيئة افتراضية:
uv sync
قم بتشغيل DNSRecon:
uv run dnsrecon
لتثبيت تبعيات التطوير:
uv sync --extra dev
لتشغيل الاختبارات:
uv run pytest
لتشغيل الفحص والتنسيق:
uv run ruff check
uv run ruff format
يمكن لـ DNSRecon استخدام Shodan لتوسيع نطاقات الشبكة المكتشفة أثناء التعداد القياسي من بيانات SPF (-s) و/أو WHOIS (-w).
إثراء Shodan السلبي (يستخدم نطاقات SPF + WHOIS):
uv run dnsrecon -d example.com -t std -s -w --shodan --shodan-key "$SHODAN_API_KEY"
التحقق النشط من نتائج Shodan (إعادة تحليل المضيفين وتأكيد مطابقتهم لنطاق الشبكة المستهدف):
uv run dnsrecon -d example.com -t std -s -w --shodan --shodan-active --shodan-key "$SHODAN_API_KEY"
يمكنك أيضًا تعيين مفتاح API عبر متغير بيئة بدلاً من --shodan-key:
export SHODAN_API_KEY="your-shodan-api-key"
uv run dnsrecon -d example.com -t std -s -w --shodan
ابدأ REST API:
uv run restdnsrecon
استدعاء /general_enum مع تمكين توسيع Shodan:
curl -s \
-H "X-Shodan-Api-Key: $SHODAN_API_KEY" \
"http://127.0.0.1:5000/general_enum?domain=example.com&do_spf=true&do_whois=true&do_shodan=true"
تمكين التحقق النشط في API:
curl -s \
-H "X-Shodan-Api-Key: $SHODAN_API_KEY" \
"http://127.0.0.1:5000/general_enum?domain=example.com&do_spf=true&do_whois=true&do_shodan=true&shodan_active=true"
قيمة thread_num في REST API محدودة بـ 1..100. يمكن أن تشير معاملات wordlist في API إلى الملفات المضمنة في dnsrecon/data أو الملفات الموجودة في الدلائل المدرجة في DNSRECON_WORDLIST_DIRS باستخدام فاصل المسار الخاص بالنظام. قم بتكوين دلائل قوائم الكلمات المخصصة فقط؛ لا توجه DNSRECON_WORDLIST_DIRS إلى مسارات واسعة مثل / أو دليل المنزل أو مواقع أخرى تحتوي على ملفات حساسة.
export DNSRECON_WORDLIST_DIRS="/opt/dnsrecon-wordlists:/srv/shared-wordlists"