
किसी संगठन के नेटवर्क पर सभी वेबसाइटों को DNS zone transfers और masscan के माध्यम से गणना करता है, प्रतिक्रियाओं को संग्रहीत करता है, और ज्ञात कमजोर वेब प्रौद्योगिकियों और कस्टम regex पैटर्न के लिए क्वेरी करने में सक्षम बनाता है।
WebStor एक उपकरण है जो Python में MIT लाइसेंस के तहत कार्यान्वित किया गया है, जो आपके संगठन के सभी नेटवर्कों पर सभी वेबसाइटों को तेज़ी से सूचीबद्ध करने, उनके प्रतिसादों को संग्रहीत करने, और ज्ञात वेब तकनीकों और संस्करणों, जैसे कि ज़ीरो-डे कमज़ोरियों वाले, की क्वेरी करने के लिए है। इसका उद्देश्य विशेष रूप से मध्यम से बड़े आकार के संगठनों में विकेंद्रीकृत प्रशासन के साथ उत्पन्न होने वाली अनूठी समस्या को हल करना है, जहाँ विभिन्न इकाइयों और नेटवर्कों में वितरित विभिन्न प्रशासकों द्वारा तैनात सभी वेब तकनीकों को ट्रैक करना लगभग असंभव हो सकता है।
WebStor अपने लक्ष्य को निम्नलिखित क्रियाएँ करके प्राप्त करता है:
WebStor वर्तमान में Linux सिस्टम पर चलेगा। चूँकि यह Python में लिखा गया है, Windows को समर्थन देने के लिए रूपांतरण सरल होगा और भविष्य में होने की संभावना है।
webstor.py [-h] [--ADD-HTTP-PORT HTTPPORTTOADD] [--CLEAR-HTTP]
[--ADD-HTTPS-PORT HTTPSPORTTOADD] [--CLEAR-HTTPS]
[--ADD-CUSTOM-FINGERPRINT FINGERPRINT]
[--DELETE-CUSTOM-FINGERPRINT FINGERPRINTNAMETODELETE]
[--IMPORT-CUSTOM-FINGERPRINT IMPORTFINGERPRINTFILE]
[--CLEAR-CUSTOM-FINGERPRINTS] [--SHOW-CONFIG]
[--SHOW-CONFIG-FULL] [--RUN-MASSCAN]
[--SET-MASSCAN-RANGES SETSCANRANGES]
[--ADD-RANGE RANGETOADD] [--DELETE-RANGE RANGETODELETE]
[--IMPORT-MASSCAN-RANGES IMPORTSCANRANGES]
[--ADD-PATH PATHTOADD] [--DELETE-PATH PATHTODELETE]
[--CLEAR-PATHS] [--REFRESH-RESPONSES]
[--RESPONSES-ADD-FOR-PATH RESPONSESADDFORPATH]
[--SEARCH-PATTERN SEARCHPATTERN]
[--SEARCH-CUSTOM-FINGERPRINT SEARCHFINGERPRINT]
[--SEARCH-WAPPALYZER SEARCHWAPPALYZER] [--NO-TSIG-KEY]
[--TSIG-KEY-IMPORT IMPORTTSIGFILE]
[--TSIG-KEY-REPLACE REPLACEMENTTSIGFILE]
[--DELETE-TSIG TSIGTODELETE]
[--USE-TSIG-FILE-ONLY USETSIGFILEONLY]
[--DOWNLOAD-NEW-WAPPALYZER] [--LIST-WAPPALYZER-TECH-NAMES]
[--ZONE-XFER] [--ADD-DOMAIN DOMAINDETAILS]
[--DELETE-DOMAIN DOMAINTODELETE]
[--IMPORT-ZONE-FILE IMPORTZONEFILE] [--CLEAR-DOMAINS]
[--LIST-DOMAINS] [--LIST-OUTSIDE] [--SQL-CREDS SQLCREDSFILE]
optional arguments:
-h, --help show this help message and exit
--ADD-HTTP-PORT HTTPPORTTOADD, -a HTTPPORTTOADD
Add a custom HTTP port.
--CLEAR-HTTP, -aC Clear any custom HTTP ports and revert to default of
80.
--ADD-HTTPS-PORT HTTPSPORTTOADD, -b HTTPSPORTTOADD
Add a custom HTTPS port.
--CLEAR-HTTPS, -bC Clear any custom HTTPS ports and revert to default of
443.
--ADD-CUSTOM-FINGERPRINT FINGERPRINT, -c FINGERPRINT
Add a custom fingerprint in the form <Name>,<RegEx>.
--DELETE-CUSTOM-FINGERPRINT FINGERPRINTNAMETODELETE, -cD FINGERPRINTNAMETODELETE
Delete a custom fingerprint by name.
--IMPORT-CUSTOM-FINGERPRINT IMPORTFINGERPRINTFILE, -cI IMPORTFINGERPRINTFILE
Import a custom fingerprint file with the path
specified.
--CLEAR-CUSTOM-FINGERPRINTS, -cC
Clears all custom fingerprints stored in DB.
--SHOW-CONFIG, -g Show current WebStor configuration (brief).
--SHOW-CONFIG-FULL, -gF
Show current WebStor configuration (full).
--RUN-MASSCAN, -m Runs a new port scan with Masscan on all configured
TCP ports for HTTP and HTTPS, against all configured
ranges and any IP addresses from DNS records that are
outside those ranges.
--SET-MASSCAN-RANGES SETSCANRANGES, -mR SETSCANRANGES
Scan range or ranges, replaces existing ranges in DB,
comma separated, such as: -s
10.10.0.0/16,10.13.0.0/16,192.168.1.0/24
--IMPORT-MASSCAN-RANGES IMPORTSCANRANGES, -mI IMPORTSCANRANGES
Import scan ranges (CIDR blocks) from a specified
file.
--DELETE-RANGE RANGETODELETE, -mD RANGETODELETE
Delete scan range.
--ADD-PATH PATHTOADD, -p PATHTOADD
Add paths for which to request and store responses
besides '/'.
--DELETE-PATH PATHTODELETE, -pD PATHTODELETE
Delete paths for which to request and store responses
besides '/'.
--CLEAR-PATHS, -pC Clear any custom URL request paths and revert to
default of '/'.
--REFRESH-RESPONSES, -r
Refresh URL responses in DB.
--RESPONSES-ADD-FOR-PATH RESPONSESADDFORPATH, -rP RESPONSESADDFORPATH
Add URL responses for a one-time path in with the
current responses in the DB.
--SEARCH-PATTERN SEARCHPATTERN, -sP SEARCHPATTERN
Search for string or regular expression in WebStor
database.
--SEARCH-CUSTOM-FINGERPRINT SEARCHFINGERPRINT, -sC SEARCHFINGERPRINT
Search for technology by name of user-provided custom
fingerprint.
--SEARCH-WAPPALYZER SEARCHWAPPALYZER, -sW SEARCHWAPPALYZER
Search for technology by name (from Wappalyzer Tech
DB) in WebStor DB.
--NO-TSIG-KEY, -tN Do not use DNSSec TSIG key stored in database or a
file, even if present.
--TSIG-KEY-IMPORT IMPORTTSIGFILE, -tI IMPORTTSIGFILE
Import a specified TSIG key file into the database
--TSIG-KEY-REPLACE REPLACEMENTTSIGFILE, -tR REPLACEMENTTSIGFILE
Replace a TSIG key in the database with a specified
file
--DELETE-TSIG TSIGTODELETE, -dT TSIGTODELETE
Delete a TSIG key from the database by name.
--USE-TSIG-FILE-ONLY USETSIGFILEONLY, -tF USETSIGFILEONLY
Only use tsig file specified (full path), do not use
TSIGs stored in the DB. Applies to all domains,
limiting WebStor to one TSIG for zone transfers in the
current execution.
--DOWNLOAD-NEW-WAPPALYZER, -w
Download a new Wappalyzer fingerprints file directly
from GitHub. Overwrites existing Wappalyzer
fingerprint data.
--LIST-WAPPALYZER-TECH-NAMES, -wL
List the names of all Wappalyzer technologies in the
database.
--ZONE-XFER, -z Forces a new zone transfer using all domains, servers,
and associated TSIG keys in DB
--ADD-DOMAIN DOMAINDETAILS, -zA DOMAINDETAILS
Add a domain in the form <Domain name>,<Server>,<TSIG
Key Name>.
--DELETE-DOMAIN DOMAINTODELETE, -zD DOMAINTODELETE
Delete a DNS domain from the database by name.
--IMPORT-ZONE-FILE IMPORTZONEFILE, -zI IMPORTZONEFILE
Add domains for zone transfers from a file.
--CLEAR-DOMAINS, -zC Clears all DNS domains stored in DB.
--LIST-DOMAINS, -zL Lists all DNS domains stored in DB.
--LIST-OUTSIDE, -e Prints a list of all names and IPs from our zone
transfers that are outside defined net ranges.
--SQL-CREDS SQLCREDSFILE, -q SQLCREDSFILE
Use SQL credentials in file at specified path.
नोट: ये चरण मानते हैं कि आपका संगठन ज़ोन ट्रांसफ़र के लिए केवल एक TSIG कुंजी का उपयोग करता है और सभी रिकॉर्ड एक DNS सर्वर से क्वेरी किए जा सकते हैं। यदि ऐसा नहीं है, तो नीचे सुरक्षित/गूढ़ उपयोग के मामले अनुभाग देखें।
# किसी वेब तकनीक से संबंधित स्ट्रिंग/regex खोजें:
./webstor.py -sP "content=\"wordpress 4.[7-9]"
# इस regex वाली साइटों की एक सूची, Wordpress v4.7-9 साइटों से अपेक्षित प्रतिसाद, लौटाई जाएगी।
# उपरोक्त उदाहरण में regex को एक कस्टम फिंगरप्रिंट के रूप में सहेजने के लिए जिसे आप नाम से क्वेरी कर सकते हैं (और हर बार regex याद रखने की आवश्यकता नहीं है):
./webstor.py -c "wordpress4.7-9,content=\"wordpress 4.[7-9]"
# उपरोक्त कमांड चलाने के बाद, क्वेरी केवल इसके साथ की जा सकती है:
./webstor.py -sC wordpress4.7-9
# Wappalyzer परिभाषाओं के माध्यम से Wordpress साइटों की खोज के लिए WebStor का उपयोग:
./webstor.py -sW wordpress
# आपके संगठन के नेटवर्कों पर पहुँच योग्य Wordpress साइटों की एक सूची लौटाई जाएगी। नोट: सत्यापित करने के लिए क्वेरी किए जा रहे गुणों की संख्या के कारण Wappalyzer खोजें पैटर्न/regex खोजों की तुलना में धीमी हो सकती हैं।
साइटों को नाम और IP पते दोनों के प्रतिसादों के आधार पर क्वेरी किया जाता है। यह महत्वपूर्ण है क्योंकि कुछ वेबसर्वर एकाधिक नामों के तहत कई साइटों को होस्ट करते हैं। कुछ अन्य सर्वर IP द्वारा अनुरोध करने पर केवल एक डिफ़ॉल्ट साइट या होस्टिंग प्रदाता का डिफ़ॉल्ट प्रतिसाद दे सकते हैं (जैसे https://68.66.216.42), और नाम द्वारा क्वेरी करने पर एक वास्तविक व्यावसायिक साइट (जैसे https://www.seekerdlp.com)। इस कारण से, यदि आपके पास एक नामित साइट है जो वेबसर्वर के IP का अनुरोध करने पर भी परोसी जाती है, तो आपको दोनों के लिए क्वेरी परिणाम दिखाई देंगे।
यह अनुशंसा की जाती है कि आप प्रतिदिन WebStor चलाने के लिए एक क्रॉन जॉब सेट करें ताकि आपके क्वेरी परिणाम हमेशा आपके नेटवर्क की वर्तमान स्थिति को दर्शाते रहें।
यदि आप डिफ़ॉल्ट MariaDB क्रेडेंशियल (root, खाली पासवर्ड) का उपयोग नहीं करना चाहते हैं, तो आप क्रेडेंशियल वाली फ़ाइल का पथ निर्दिष्ट करने के लिए -q विकल्प का उपयोग कर सकते हैं। फ़ाइल की पहली पंक्ति सर्वर होनी चाहिए, जैसे localhost। दूसरी पंक्ति sql उपयोगकर्ता नाम होनी चाहिए। तीसरी पंक्ति पासवर्ड होनी चाहिए।
यदि आप अपनी TSIG कुंजी को डेटाबेस में संग्रहीत नहीं करना चाहते हैं, तो आप एक ACLed TSIG कुंजी फ़ाइल का पथ निर्दिष्ट करने के लिए -tF विकल्प का उपयोग कर सकते हैं।
यदि आपका संगठन एकाधिक TSIG कुंजियों का उपयोग करता है, तो आपको उन्हें डेटाबेस में संग्रहीत करने की आवश्यकता होगी। उनमें से प्रत्येक को -tI विकल्प के साथ जोड़ा जा सकता है और डोमेन को सामान्य विकल्पों के माध्यम से, उपयुक्त कुंजी और सर्वर निर्दिष्ट करके जोड़ा जा सकता है।
WebStor संग्रहीत प्रतिसादों के विरुद्ध पूर्व-पॉप्युलेटेड, नाम-अनुक्रमित तकनीकी लुकअप के लिए Wappalyzer के तकनीकी डेटाबेस का उपयोग करता है। Wappalyzer MIT लाइसेंस की शर्तों के तहत लाइसेंस प्राप्त है।
WebStor को Ross Geerlings <rjgeer@umich.edu>, <ross@seekerdlp.com> द्वारा लिखा गया था।
WebStor MIT लाइसेंस की शर्तों के तहत लाइसेंस प्राप्त है, जो नीचे पुन: प्रस्तुत किया गया है।
MIT लाइसेंस
कॉपीराइट (c) 2020-2024 द यूनिवर्सिटी ऑफ़ मिशिगन बोर्ड ऑफ़ रीजेंट्स।
इसके द्वारा, किसी भी व्यक्ति को जो इस सॉफ़्टवेयर और संबंधित दस्तावेज़ीकरण फ़ाइलों ("सॉफ़्टवेयर") की एक प्रति प्राप्त करता है, बिना किसी प्रतिबंध के सॉफ़्टवेयर में व्यवहार करने की अनुमति दी जाती है, जिसमें बिना किसी सीमा के सॉफ़्टवेयर का उपयोग, प्रतिलिपि, संशोधन, विलय, प्रकाशन, वितरण, उप-लाइसेंस और/या बेचने के अधिकार शामिल हैं, और सॉफ़्टवेयर प्रदान किए जाने वाले व्यक्तियों को ऐसा करने की अनुमति देने के लिए, निम्नलिखित शर्तों के अधीन:
उपरोक्त कॉपीराइट नोटिस और यह अनुमति नोटिस सॉफ़्टवेयर की सभी प्रतियों या पर्याप्त भागों में शामिल किए जाएँगे।
सॉफ़्टवेयर "जैसा है" प्रदान किया जाता है, बिना किसी प्रकार की वारंटी के, व्यक्त या निहित, जिसमें व्यापारिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और उल्लंघन की वारंटी शामिल है लेकिन इन्हीं तक सीमित नहीं है। किसी भी स्थिति में लेखक या कॉपीराइट धारक किसी भी दावे, क्षति या अन्य देयता के लिए उत्तरदायी नहीं होंगे, चाहे वह अनुबंध, अपकृत्य या किसी अन्य कार्रवाई में उत्पन्न हो, सॉफ़्टवेयर से या उसके उपयोग या अन्य लेन-देन से संबंधित।