
مكتشف النطاقات الفرعية
Lepus هي أداة لتعداد النطاقات الفرعية، والتحقق من عمليات الاستيلاء على النطاقات الفرعية، وإجراء مسح للمنافذ - وهي سريعة جدًا!
lepus.py yahoo.com
أوضاع التعداد هي طرق مختلفة يستخدمها Lepus لتحديد النطاقات الفرعية لنطاق معين. هذه الأوضاع هي:
علاوة على ذلك:
يقوم وضع الجمع بجمع النطاقات الفرعية من الخدمات التالية:
| الخدمة | مطلوب API |
|---|---|
| Censys | نعم |
| CertSpotter | لا |
| CRT | لا |
| DNSTrails | نعم |
| FOFA | نعم |
| Google Transparency | لا |
| HackerTarget | لا |
| PassiveTotal | نعم |
| Project Discovery Chaos | نعم |
| Project Crobat | لا |
| Project Sonar | لا |
| Riddler | نعم |
| Shodan | نعم |
| Spyse | نعم |
| ThreatCrowd | لا |
| ThreatMiner | لا |
| VirusTotal | نعم |
| Wayback Machine | لا |
| ZoomEye | نعم |
يمكنك إضافة مفاتيح API الخاصة بك في ملف config.ini.
سيتم تشغيل وحدة الجمع افتراضيًا على Lepus. إذا كنت لا تريد استخدام الجمع أثناء تشغيل Lepus (حتى لا تستنفد حدود مفتاح API الخاص بك)، يمكنك استخدام الوسيطة -nc أو --no-collectors.
يمكن استخدام وضع القاموس عندما تريد تقديم قائمة من النطاقات الفرعية إلى Lepus. يمكنك استخدام الوسيطة -w أو --wordlist متبوعة باسم الملف. تأتي قائمة مخصصة مع Lepus موجودة في lists/subdomains.txt. مثال على التشغيل:
lepus.py -w lists/subdomains.txt yahoo.com
يقوم وضع التباديل بإجراء تغييرات على قائمة النطاقات الفرعية التي تم تحديدها. لكل نطاق فرعي، سيكون هناك عدد من التباديل بناءً على ملف lists/words.txt. يمكنك أيضًا تقديم قائمة كلمات مخصصة للتباديل باستخدام الوسيطة -pw أو --permutation-wordlist متبوعة باسم الملف. مثال على التشغيل:
lepus.py --permutate yahoo.com
أو
lepus.py --permutate -pw customsubdomains.txt yahoo.com
سيقوم وضع DNS العكسي بجمع جميع عناوين IP التي تم حلها وإجراء DNS عكسي على كل منها من أجل اكتشاف المزيد من النطاقات الفرعية. على سبيل المثال، إذا تم حل www.example.com إلى 1.2.3.4، سيقوم Lepus بإجراء DNS عكسي لـ 1.2.3.4 وجمع أي نطاقات فرعية أخرى تابعة لـ example.com، مثل www2, internal أو oldsite.
لتشغيل وحدة DNS العكسي استخدم الوسيطة --reverse. بالإضافة إلى ذلك، يمكن استخدام --ripe (أو -ripe) لتوجيه الوحدة للاستعلام عن قاعدة بيانات RIPE باستخدام النطاق من المستوى الثاني لنطاقات الشبكة المحتملة. علاوة على ذلك، يدعم Lepus الوسيطة --ranges (أو -r). يمكنك استخدامها لإجراء استعلامات DNS عكسية ضد CIDRs التي تنتمي إلى النطاق الهدف.
بشكل افتراضي، ستأخذ هذه الوحدة في الاعتبار جميع عناوين IP المحددة سابقًا، ثم النطاقات المعرفة، ثم النطاقات المحددة من خلال قاعدة بيانات RIPE. في حالة كنت تريد تشغيل الوحدة فقط ضد نطاقات محددة أو نطاقات محددة بواسطة RIPE، وليس ضد جميع عناوين IP المحددة بالفعل، يمكنك استخدام الوسيطة --only-ranges (-or).
مثال على التشغيل:
lepus.py --reverse yahoo.com
أو
lepus.py --reverse -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com
أو فقط ضد النطاقات المعرفة أو المحددة من RIPE
lepus.py --reverse -or -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com
تلميح: سيحدد Lepus ASNs و Networks أثناء التعداد، لذا يمكنك أيضًا استخدام هذه النطاقات لتحديد المزيد من النطاقات الفرعية في تشغيل لاحق.
مع هذه الوحدة، سيستخدم Lepus سلاسل ماركوف لتدريب نفسه ثم إنشاء نطاقات فرعية بناءً على النطاقات المعروفة بالفعل. كلما كان السطح العام أكبر، كان الأداة أفضل في تدريب نفسها، وبالتالي تكون النتائج أفضل.
يمكن تفعيل الوحدة باستخدام الوسيطة --markovify. تتضمن المعلمات أيضًا حجم حالة ماركوف، أقصى طول للإضافة المرشحة التي تم إنشاؤها، وعدد المرشحين الذين تم إنشاؤهم. القيم المحددة مسبقًا هي 3 و 5 و 5 على التوالي. يمكن تغيير هذه الوسائط باستخدام -ms (--markov-state), -ml (--markov-length) و -mq (--markov-quantity) لتلبية احتياجاتك. ضع في اعتبارك أنه كلما كانت هذه القيم أكبر، كلما احتاج Lepus وقتًا أطول لإنشاء المرشحين.
يجب ملاحظة أن عمليات التشغيل المختلفة لهذه الوحدة قد تنشئ مرشحين مختلفين، لذا لا تتردد في تشغيلها عدة مرات متتالية. ضع في اعتبارك أنه كلما ارتفعت قيم -ms, -ml و -mq، كلما زاد الوقت اللازم لإنشاء المرشحين.
lepus.py --markovify yahoo.com
أو
lepus.py --markovify -ms 5 -ml 10 -mq 10
لدى Lepus قائمة من التوقيعات لتحديد ما إذا كان يمكن الاستيلاء على نطاق أم لا. يمكنك استخدامه من خلال تقديم الوسيطة --takeover. تدعم هذه الوحدة أيضًا إشعارات Slack، بمجرد تحديد عملية استيلاء محتملة، عن طريق إضافة رمز Slack في ملف config.ini. تتم الفحوصات ضد الخدمات التالية:
ستتحقق وحدة مسح المنافذ من المنافذ المفتوحة ضد هدف وتسجيلها في النتائج. يمكنك استخدام الوسيطة --portscan التي ستقوم افتراضيًا بمسح المنافذ 80, 443, 8000, 8080, 8443. يمكنك أيضًا استخدام منافذ مخصصة أو اختيار مجموعة محددة مسبقًا من المنافذ.
| مجموعة المنافذ | المنافذ |
|---|---|
| صغيرة | 80, 443 |
| متوسطة (افتراضي) | 80, 443, 8000, 8080, 8443 |
| كبيرة | 80, 81, 443, 591, 2082, 2087, 2095, 2096, 3000, 8000, 8001, 8008, 8080, 8083, 8443, 8834, 8888, 9000, 9090, 9443 |
| ضخمة | 80, 81, 300, 443, 591, 593, 832, 981, 1010, 1311, 2082, 2087, 2095, 2096, 2480, 3000, 3128, 3333, 4243, 4567, 4711, 4712, 4993, 5000, 5104, 5108, 5800, 6543, 7000, 7396, 7474, 8000, 8001, 8008, 8014, 8042, 8069, 8080, 8081, 8088, 8090, 8091, 8118, 8123, 8172, 8222, 8243, 8280, 8281, 8333, 8443, 8500, 8834, 8880, 8888, 8983, 9000, 9043, 9060, 9080, 9090, 9091, 9200, 9443, 9800, 9943, 9980, 9981, 12443, 16080, 18091, 18092, 20720, 28017 |
مثال على التشغيل:
lepus.py --portscan yahoo.com
أو
lepus.py --portscan -p huge yahoo.com
أو
lepus.py --portscan -p 80,443,8082,65123 yahoo.com
التثبيت العادي:
$ python3.7 -m pip install -r requirements.txt
يفضل التثبيت في virtualenv:
$ pyenv virtualenv 3.7.4 lepus
$ pyenv activate lepus
$ pip install -r requirements.txt
تثبيت أحدث إصدار من python على debian: