
एक वर्चुअल होस्ट स्कैनर जो रिवर्स लुकअप करता है, पिवट टूल्स के साथ उपयोग किया जा सकता है, कैच-ऑल परिदृश्यों का पता लगाता है, वाइल्डकार्ड, उपनाम और डायनामिक डिफ़ॉल्ट पेजों के आसपास काम करता है।
एक वर्चुअल होस्ट स्कैनर जिसका उपयोग पिवट टूल्स के साथ किया जा सकता है, कैच-ऑल परिदृश्यों, उपनामों और डायनामिक डिफ़ॉल्ट पेजों का पता लगाने में सक्षम है। पहली बार सितंबर 2017 में SecTalks BNE में प्रस्तुत किया गया (स्लाइडडेक)।
यह मूल VHostScan (Codingo द्वारा) का एक उन्नत संस्करण है, जिसमें अतिरिक्त सुधार, आधुनिक कोडबेस और बेहतर वर्चुअल होस्ट खोज के लिए विस्तारित वर्डलिस्ट शामिल हैं।
फिर एप्लिकेशन चलाएँ `docker run --rm -it vhostscan -t´
VHostScan को Python 3.8 या उच्चतर की आवश्यकता है। निम्न का उपयोग करके इंस्टॉल करें:
$ pip install VHostScan
या स्रोत से इंस्टॉल करें:
$ git clone https://github.com/codingo/VHostScan.git
$ cd VHostScan
$ pip install .
विकास के लिए:
$ pip install -e .
निर्भरताएँ तब इंस्टॉल हो जाएँगी और VHostScan आपके पथ में जुड़ जाएगा।
ध्यान दें कि इनमें से कई उदाहरण 10.10.10.29 का संदर्भ देते हैं। यह IP BANK.HTB को संदर्भित करता है, जो HackTheBox (https://www.hackthebox.eu/) का एक सेवानिवृत्त लक्ष्य मशीन है।
सबसे सीधा उदाहरण डिफ़ॉल्ट वर्डलिस्ट को example.com के विरुद्ध पोर्ट 80 के डिफ़ॉल्ट का उपयोग करके चलाता है:
$ VHostScan -t example.com
यदि आपके कनेक्शन को SSL की आवश्यकता है, तो आप उपयोग कर सकते हैं:
$ VHostScan -t example.com --ssl

मान लें कि आपके पास पोर्ट 4444 पर एक SSH पोर्ट फ़ॉरवर्ड सुन रहा है जो example.com की डेवलपमेंट मशीन पर पोर्ट 80 पर ट्रैफ़िक अग्रेषित करता है। आप VHostScan को अपने SSH टनल के माध्यम से localhost:4444 से कनेक्ट करने के लिए निम्न का उपयोग कर सकते हैं लेकिन हेडर अनुरोधों को सीधे पोर्ट 80 से कनेक्ट करने के लिए प्रारूपित कर सकते हैं:
$ VHostScan -t localhost -b example.com -p 4444 -r 80
VHostScan अन्य अनुप्रयोगों से पाइपिंग का समर्थन करता है और VHostScan को दी गई जानकारी को वर्डलिस्ट डेटा के रूप में मानेगा, उदाहरण के लिए:
$ cat bank.htb | VHostScan -t 10.10.10.29

आप अभी भी stdin के साथ उपयोग करने के लिए एक वर्डलिस्ट निर्दिष्ट कर सकते हैं। ऐसे मामलों में वर्डलिस्ट जानकारी stdin में जोड़ दी जाएगी। उदाहरण के लिए:
$ echo -e 'a.example.com\b.example.com' | VHostScan -t localhost -w ./wordlists/wordlist.txt
यहाँ फ़ज़ी लॉजिक सक्षम के साथ एक उदाहरण है। आप देख सकते हैं कि अंतिम तुलना पहले दो की तुलना में बहुत अधिक समान है (यह सामग्री की तुलना कर रहा है, वास्तविक हैश की नहीं):
VHostScan में अब विभिन्न परिदृश्यों के लिए कई विशेष वर्डलिस्ट शामिल हैं। मूल वर्डलिस्ट Codingo द्वारा वास्तविक दुनिया के पेनिट्रेशन टेस्टिंग अनुभव के आधार पर बनाई गई थीं, और इस उन्नत संस्करण में आधुनिक बुनियादी ढांचे के लिए अतिरिक्त विशेष वर्डलिस्ट शामिल हैं।
प्रत्येक वर्डलिस्ट के बारे में विस्तृत जानकारी के लिए, WORDLISTS.md देखें।
सुरक्षा आकलन के लिए pentest-focused वर्डलिस्ट का उपयोग करें:
$ VHostScan -t target.com -w ./wordlists/pentest-focused.txt
व्यापक स्कैनिंग के लिए एकाधिक वर्डलिस्ट संयोजित करें:
$ VHostScan -t target.com -w "./wordlists/common-vhosts.txt,./wordlists/cloud-modern.txt"
आधुनिक बुनियादी ढांचे के लिए क्लाउड-केंद्रित वर्डलिस्ट का उपयोग करें:
$ VHostScan -t example.com -w ./wordlists/cloud-modern.txt --ssl
इस प्रोजेक्ट में परीक्षणों का एक छोटा सा सेट शामिल है। परीक्षण चलाना वास्तव में सरल है:
pip install -r test-requirements.txt
python3 setup.py test
यदि आप प्रोजेक्ट में एक नई सुविधा जोड़ने के बारे में सोच रहे हैं, तो कुछ परीक्षणों के साथ योगदान करने पर भी विचार करें। एक अच्छी तरह से परीक्षित कोडबेस एक स्वस्थ कोडबेस है। :)
इस उन्नत संस्करण में शामिल हैं:
VHostScan मूल रूप से Codingo द्वारा बनाया गया था और पहली बार सितंबर 2017 में SecTalks BNE में प्रस्तुत किया गया था। यह उन्नत संस्करण आधुनिक पेनिट्रेशन टेस्टिंग और बग बाउंटी हंटिंग के लिए अतिरिक्त सुधारों के साथ उस उत्कृष्ट नींव पर आधारित है।
| आर्गुमेंट | विवरण |
|---|
| -h, --help | सहायता संदेश प्रदर्शित करें और बाहर निकलें |
| -t TARGET_HOSTS | लक्ष्य होस्ट सेट करें। |
| -b BASE_HOST | वर्डलिस्ट में प्रतिस्थापन के दौरान उपयोग करने के लिए होस्ट सेट करें (डिफ़ॉल्ट TARGET है)। |
| -w WORDLISTS | उपयोग करने के लिए वर्डलिस्ट(एँ) सेट करें। आप अल्पविराम से अलग किए गए प्रारूप में एकाधिक वर्डलिस्ट निर्दिष्ट कर सकते हैं (जैसे -w "./wordlists/simple.txt, ./wordlists/hackthebox.txt" (डिफ़ॉल्ट ./wordlists/virtual-host-scanning.txt)। उपलब्ध वर्डलिस्ट: simple.txt, hackthebox.txt, common-vhosts.txt, pentest-focused.txt, cloud-modern.txt, virtual-host-scanning.txt। |
| -p PORT | उपयोग करने के लिए पोर्ट सेट करें (डिफ़ॉल्ट 80)। |
| -r REAL_PORT | वेबसर्वर का वास्तविक पोर्ट हेडर में उपयोग करने के लिए जब यह 80 न हो (RFC2616 14.23 देखें), ssh/nc आदि के माध्यम से पिवट करते समय उपयोगी (डिफ़ॉल्ट PORT है)। |
| --ignore-http-codes IGNORE_HTTP_CODES | वर्चुअल होस्ट स्कैन के साथ अनदेखा करने के लिए http कोड की अल्पविराम से अलग सूची (डिफ़ॉल्ट 404)। |
| --ignore-content-length IGNORE_CONTENT_LENGTH | निर्दिष्ट मात्रा की सामग्री लंबाई को अनदेखा करें। |
| --prefix PREFIX | वर्डलिस्ट में प्रत्येक आइटम में एक उपसर्ग जोड़ें, जैसे dev-<शब्द>, test-<शब्द> आदि जोड़ने के लिए |
| --suffix SUFFIX | वर्डलिस्ट में प्रत्येक आइटम में एक प्रत्यय जोड़ें, जैसे <शब्द>dev, <शब्द>dev जोड़ने के लिए |
| --first-hit | पहला सफल परिणाम लौटाएँ। केवल उन परिदृश्यों में उपयोग करें जहाँ आप सुनिश्चित हैं कि कोई कैच-ऑल कॉन्फ़िगर नहीं किया गया है (जैसे CTF)। |
| --unique-depth UNIQUE_DEPTH | पृष्ठ सामग्री के संभावित मिलान दिखाएँ जो x बार पाए जाते हैं (डिफ़ॉल्ट 1)। |
| --ssl | यदि सेट किया जाता है, तो कनेक्शन HTTP के बजाय HTTPS पर किए जाएँगे। |
| --fuzzy-logic | यदि सेट किया जाता है, तो सभी अद्वितीय सामग्री प्रतिक्रियाओं की तुलना की जाती है और प्रत्येक जोड़े के लिए एक समानता अनुपात दिया जाता है। यह उन स्थितियों में vhosts को अलग करने में मदद करता है जहाँ डिफ़ॉल्ट पृष्ठ स्थिर नहीं है (जैसे उस पर समय होना)। |
| --no-lookups | रिवर्स लुकअप अक्षम करें (नए लक्ष्यों की पहचान करता है और वर्डलिस्ट में जोड़ता है, डिफ़ॉल्ट रूप से चालू)। |
| --rate-limit | प्रत्येक स्कैन के बीच विलंब करने के लिए समय (सेकंड में) (डिफ़ॉल्ट 0)। |
| --random-agent | यदि सेट किया जाता है, तो प्रत्येक स्कैन पूर्वनिर्धारित सूची से एक यादृच्छिक उपयोगकर्ता-एजेंट का उपयोग करेगा। |
| --user-agent | स्कैन के लिए उपयोग करने के लिए एक उपयोगकर्ता एजेंट निर्दिष्ट करें। |
| --waf | यदि सेट किया जाता है, तो सरल WAF बायपास हेडर भेजे जाएँगे। |
| -oN OUTPUT_NORMAL | सामान्य आउटपुट एक फ़ाइल में मुद्रित किया जाता है जब -oN विकल्प फ़ाइल नाम तर्क के साथ निर्दिष्ट किया जाता है। |
| -oG OUTPUT_GREPABLE | Grepable आउटपुट एक फ़ाइल में मुद्रित किया जाता है जब -oG फ़ाइल नाम तर्क के साथ निर्दिष्ट किया जाता है। |
| -oJ OUTPUT_JSON | JSON आउटपुट एक फ़ाइल में मुद्रित किया जाता है जब -oJ विकल्प फ़ाइल नाम तर्क के साथ निर्दिष्ट किया जाता है। |
| -v VERBOSE | प्रगति दिखाने के लिए टूल का आउटपुट बढ़ाएँ |