
तेज़ निर्देशिका स्कैनिंग और स्क्रैपिंग उपकरण
Dirble एक वेबसाइट निर्देशिका स्कैनिंग उपकरण है जो विंडोज और लिनक्स के लिए है। इसे तेज़ चलाने और उपयोग में आसान बनाने के लिए डिज़ाइन किया गया है।
लिनक्स, विंडोज या मैक के लिए पहले से संकलित बाइनरी में से एक डाउनलोड करें, या Cargo का उपयोग करके स्रोत को संकलित करें, फिर इसे टर्मिनल से चलाएं। Dirble द्वारा उपयोग की जाने वाली डिफ़ॉल्ट शब्दसूची वही निष्पादन योग्य के समान निर्देशिका में dirble_wordlist.txt है।
इसे BlackArch में sudo pacman -S dirble का उपयोग करके स्थापित किया जा सकता है।
एक डॉकर इमेज भी है, जिसे इस प्रकार चलाया जा सकता है:
docker run --rm -t isona/dirble [dirble arguments]
सहायता पाठ dirble --help का उपयोग करके प्रदर्शित किया जा सकता है, वैकल्पिक रूप से इसे github विकी पर पाया जा सकता है: https://github.com/nccgroup/dirble/wiki/Help-Text
वर्तमान निर्देशिका से डिफ़ॉल्ट dirble_wordlist.txt का उपयोग करके एक वेबसाइट के विरुद्ध चलाएं:
dirble [address]
एक अलग शब्दसूची के साथ चलाएं और .php तथा .html एक्सटेंशन शामिल करें:
dirble [address] -w example_wordlist.txt -x .php,.html
सूचीबद्ध निर्देशिका स्क्रैपिंग सक्षम के साथ:
dirble [address] --scrape-listable
एक्सटेंशन की सूची और होस्ट की सूची प्रदान करना:
dirble [address] -X wordlists/web.lst -U hostlist.txt
कमांड लाइन के माध्यम से स्कैन करने के लिए कई होस्ट प्रदान करना:
dirble [address] -u [address] -u [address]
Gobuster की डिफ़ॉल्ट शैली में थ्रेडिंग के साथ चलाना, पुनरावृत्ति अक्षम करना और मुख्य निर्देशिका को स्कैन करने वाले 10 थ्रेड होना:
dirble [address] --max-threads 10 --wordlist-split 10 -r
अपने वर्तमान प्लेटफॉर्म पर निर्माण करने के लिए, सुनिश्चित करें कि cargo स्थापित है और फिर cargo build --release चलाएं। वैकल्पिक रूप से, make चलाने से बाइनरी रिलीज़ मोड में बनेगी (आंतरिक रूप से cargo build --release चलाता है)।
32- और 64-बिट लिनक्स और विंडोज लक्ष्यों के लिए क्रॉस-कंपाइल करने के लिए, एक सुविधाजनक makefile है। make release cross का उपयोग करके सभी चार लक्ष्यों के लिए निर्माण करेगा। यह cross और docker स्थापित होने पर निर्भर करता है (cargo install cross)।
निम्नलिखित ग्राफ प्रत्येक उपकरण को 5ms विलंबता और 1% पैकेट हानि वाले टेस्ट सर्वर के विरुद्ध Hyperfine के साथ चलाकर उत्पन्न किया गया था। (पुनरावृत्ति की कमी के कारण Gobuster को छोड़ दिया गया था)।

Dirble सर्वर द्वारा भेजे गए प्रतिक्रिया कोड के आधार पर फ़ाइलों का पता लगाता है। व्यवहार को मोटे तौर पर प्रतिक्रिया कोड प्रकार द्वारा वर्गीकृत किया जा सकता है।
200: पथ मौजूद है और मान्य है301, 302: पुनर्निर्देशन; कोड, आकार और Location हेडर की रिपोर्ट करें404: नहीं मिला; डिफ़ॉल्ट रूप से इन प्रतिक्रियाओं की रिपोर्ट नहीं की जाती है+ [url] (CODE:[code]|SIZE:[size]) के रूप में रिपोर्ट किए जाते हैंएक पथ को निर्देशिका के रूप में वर्गीकृत किया जाता है यदि [url] (बिना अनुगामी स्लैश के) का अनुरोध [url]/ (अनुगामी स्लैश के साथ) पर 301 या 302 पुनर्निर्देशन लौटाता है। यह D उपसर्ग के साथ रिपोर्ट किया जाता है और यदि पुनरावृत्ति सक्षम है तो इसे स्कैन कतार में जोड़ा जाएगा।
यह विधि पुनर्निर्देशन लक्ष्य के मौजूद होने या सुलभ होने पर निर्भर नहीं करती है, इसलिए निर्देशिका के प्रतिक्रिया कोड और आकार को निर्धारित करने के लिए एक अलग अनुरोध किया जाएगा।
सूचीबद्ध निर्देशिकाओं का पता url/ की सामग्री की जांच करके लगाया जाता है: यदि यह 200 प्रतिक्रिया कोड लौटाता है और बॉडी में "parent directory", "up to " या "directory listing for" (केस असंवेदनशील) में से कोई भी शामिल है, तो यह संभवतः एक सूचीबद्ध निर्देशिका है। यदि --scrape-listable सक्षम है, तो सूची से URL निकाले जाते हैं (सॉर्टिंग लिंक या दायरे से बाहर के लिंक को अनदेखा करते हुए) और यदि उनमें अनुगामी स्लैश है तो स्कैन कतार में जोड़े जाते हैं। सूचीबद्ध निर्देशिकाओं के आउटपुट में L उपसर्ग होता है।
Dirble की थ्रेडिंग व्यवहार शब्दसूचियों और कार्यों की अवधारणाओं पर आधारित है। एक कार्य कोई भी कार्य है जो अन्य कार्यों से स्वतंत्र रूप से चलाया जा सकता है, उदाहरण के लिए URL की एक श्रृंखला का अनुरोध करना। एक शब्दसूची शब्दों की एक सूची है जिसमें एक परिभाषित रूपांतरण होता है, उदाहरण के लिए सूची {admin, config, shop} एक साथ रूपांतरण append ".php" के साथ एक एकल शब्दसूची उदाहरण बनाती है।
प्रदर्शन को और बेहतर बनाने के लिए, हम शब्दसूची विभाजन की अवधारणा प्रस्तुत करते हैं। यह वह प्रक्रिया है जिसके द्वारा एक एकल शब्दसूची उदाहरण (अर्थात रूपांतरण के साथ शब्द) को कई कार्यों में तोड़ा जाता है, प्रत्येक सूची के एक भाग के लिए जिम्मेदार होता है। प्रत्येक शब्दसूची को जितने अंतर्निहित भागों में विभाजित किया जाता है, वह --wordlist-split विकल्प (डिफ़ॉल्ट 3) द्वारा परिभाषित किया जाता है।
जब भी कोई निर्देशिका का पता लगाया जाता है (और पुनरावृत्ति सक्षम है) तो प्रत्येक विभाजित शब्दसूची (रूपांतरण के साथ) के लिए नए कार्य बनाए जाते हैं और एक केंद्रीय कार्य कतार में जोड़े जाते हैं।
समवर्ती कार्यों की अधिकतम संख्या --max-threads पैरामीटर द्वारा परिभाषित की जाती है, और Dirble कार्यों को कतार में जोड़े जाने पर शुरू कर देगा, इस सीमा तक। जब भी कोई कार्य पूरा होता है (अर्थात एक विभाजित शब्दसूची समाप्त हो जाती है), Dirble कतार से अगला कार्य लेगा और इसे शुरू करेगा।
GPL v3.0 के तहत जारी, अधिक जानकारी के लिए LICENSE देखें।