
أداة سريعة لمسح الدلائل واستخراج البيانات
Dirble هي أداة لفحص أدلة المواقع الإلكترونية تعمل على ويندوز ولينكس. صُمِّمَت لتكون سريعة التشغيل وسهلة الاستخدام.
قم بتنزيل أحد الملفات الثنائية المجمَّعة مسبقًا لأنظمة لينكس أو ويندوز أو ماك، أو قم بترجمة المصدر باستخدام Cargo، ثم شغِّلها من الطرفية. قائمة الكلمات الافتراضية التي تستخدمها Dirble هي dirble_wordlist.txt الموجودة في نفس المجلد الذي يحتوي على الملف القابل للتنفيذ.
يمكن تثبيتها في BlackArch باستخدام sudo pacman -S dirble
توجد أيضًا صورة Docker، يمكن تشغيلها كالتالي:
docker run --rm -t isona/dirble [وسائط dirble]
يمكن عرض نص المساعدة باستخدام dirble --help، أو يمكن العثور عليه في ويكي GitHub: https://github.com/nccgroup/dirble/wiki/Help-Text
التشغيل ضد موقع باستخدام dirble_wordlist.txt الافتراضي من المجلد الحالي:
dirble [العنوان]
التشغيل بقائمة كلمات مختلفة وإضافة الامتدادات .php و .html:
dirble [العنوان] -w example_wordlist.txt -x .php,.html
مع تمكين كشط الأدلة القابلة للعرض:
dirble [العنوان] --scrape-listable
تقديم قائمة بالامتدادات وقائمة بالمضيفين:
dirble [العنوان] -X wordlists/web.lst -U hostlist.txt
تقديم عدة مضيفين للمسح عبر سطر الأوامر:
dirble [العنوان] -u [العنوان] -u [العنوان]
التشغيل مع تعدد العمليات بأسلوب Gobuster الافتراضي، مع تعطيل التكرار وتشغيل 10 خيوط لمسح الدليل الرئيسي:
dirble [العنوان] --max-threads 10 --wordlist-split 10 -r
للبناء على منصتك الحالية، تأكد من تثبيت Cargo ثم شغّل cargo build --release. بدلاً من ذلك، تشغيل make سيبني الملف الثنائي في وضع الإصدار (داخليًا يشغّل cargo build --release).
للترجمة المتقاطعة لأهداف لينكس وويندوز 32 بت و64 بت، يوجد ملف make مفيد. make release سيبني لجميع الأهداف الأربعة باستخدام cross. هذا يعتمد على تثبيت cross و Docker (cargo install cross).
الرسم البياني التالي تم إنشاؤه بتشغيل كل أداة باستخدام Hyperfine ضد خادم اختبار بزمن انتقال 5 مللي ثانية وفقدان حزمة 1%. (تم حذف Gobuster لعدم وجود تكرار).

يكتشف Dirble الملفات بناءً على كود الرد الذي يرسله الخادم. يمكن تصنيف السلوك بشكل فضفاض حسب نوع كود الرد.
200: المسار موجود وصالح301, 302: إعادة توجيه؛ يتم الإبلاغ عن الكود والحجم والرأس Location404: غير موجود؛ بشكل افتراضي لا يتم الإبلاغ عن هذه الردود+ [url] (CODE:[code]|SIZE:[size])يُصنف المسار على أنه دليل إذا كان طلب إلى [url] (بدون شرطة مائلة في النهاية) يُعيد توجيه 301 أو 302 إلى [url]/ (بشرطة مائلة في النهاية). يتم الإبلاغ عن ذلك ببادئة D وإذا كان التكرار مفعلًا فسيتم إضافته إلى قائمة انتظار المسح.
هذه الطريقة لا تعتمد على وجود هدف إعادة التوجيه أو إمكانية الوصول إليه، لذلك سيتم إجراء طلب منفصل لتحديد كود الرد وحجم الدليل.
يتم اكتشاف الأدلة القابلة للعرض من خلال فحص محتوى url/: إذا كان يُرجع كود رد 200 ويحتوي النص على أي من "parent directory" أو "up to " أو "directory listing for" (دون حساسية حالة الأحرف)، فمن المحتمل أنه دليل قابل للعرض. إذا كان --scrape-listable مفعلًا، يتم استخراج عناوين URL من القائمة (مع تجاهل روابط الفرز أو الروابط خارج النطاق) وإضافتها إلى قائمة انتظار المسح إذا كانت تحتوي على شرطة مائلة في النهاية. يتم تمييز الأدلة القابلة للعرض ببادئة L في الإخراج.
يعتمد سلوك تعدد العمليات في Dirble على مفاهيم قوائم الكلمات والمهام. المهمة هي أي عمل يمكن تشغيله بشكل مستقل عن المهام الأخرى، مثل طلب سلسلة من عناوين URL. قائمة الكلمات هي قائمة من الكلمات مع تحويل محدد، على سبيل المثال القائمة {admin, config, shop} مع التحويل "إلحاق .php" تشكل مثيلًا واحدًا لقائمة الكلمات.
لتحسين الأداء بشكل أكبر، نقدم مفهوم تقسيم قائمة الكلمات. هذه هي العملية التي يتم فيها تقسيم مثيل واحد من قائمة الكلمات (أي الكلمات مع تحويل) إلى مهام متعددة، كل منها مسؤول عن جزء من القائمة. يتم تحديد عدد الأجزاء المتداخلة التي يتم تقسيم كل قائمة كلمات إليها بواسطة الخيار --wordlist-split (الافتراضي 3).
عندما يتم اكتشاف دليل (ويتم تفعيل التكرار) يتم إنشاء مهام جديدة لكل قائمة كلمات مقسمة (مع التحويل) وإضافتها إلى قائمة انتظار المهام المركزية.
يتم تعريف الحد الأقصى لعدد المهام المتزامنة بواسطة المعامل --max-threads، وسيبدأ Dirble المهام فور إضافتها إلى قائمة الانتظار حتى هذا الحد. عندما تكتمل مهمة (أي يتم استنفاد قائمة كلمات مقسمة) سيأخذ Dirble المهمة التالية من قائمة الانتظار ويبدأها.
تم إصدارها تحت رخصة GPL v3.0، انظر LICENSE لمزيد من المعلومات.