
يقوم بتعداد جميع المواقع الإلكترونية عبر شبكات المؤسسة عن طريق عمليات نقل المنطقة DNS والمسح الجماعي masscan، ويخزن الاستجابات، ويتيح الاستعلام عن تقنيات الويب المعروفة الثغرات وأنماط regex المخصصة.
WebStor هي أداة مطبقة بلغة بايثون تحت رخصة MIT لعدد سريع لجميع مواقع الويب عبر جميع شبكات مؤسستك، وتخزين استجاباتها، والاستعلام عن تقنيات وإصدارات الويب المعروفة، مثل تلك التي تحتوي على ثغرات يوم الصفر. وهي موجهة بشكل خاص لحل المشكلة الفريدة التي تظهر في المؤسسات المتوسطة والكبيرة ذات الإدارة اللامركزية، حيث قد يكون من المستحيل تقريبًا تتبع جميع تقنيات الويب المنشورة من قبل مسؤولين مختلفين موزعين عبر وحدات وشبكات مختلفة.
يحقق WebStor هدفه من خلال تنفيذ الإجراءات التالية:
يعمل WebStor حاليًا على أنظمة لينكس. نظرًا لأنه مكتوب بلغة بايثون، فإن التحويل لدعم ويندوز سيكون بسيطًا ومن المرجح أن يحدث في المستقبل.
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 واحد. إذا لم يكن الأمر كذلك، راجع قسم حالات الاستخدام الآمنة/الغريبة أدناه.
# Search for a string/regex associated with a web technology:
./webstor.py -sP "content=\"wordpress 4.[7-9]"
# A list of sites with this regex, expected responses from Wordpress v4.7-9 sites,
# will be returned.
# To save the regex in the example above as a custom fingerprint you can query
# by name (and do not need to remember the regex each time):
./webstor.py -c "wordpress4.7-9,content=\"wordpress 4.[7-9]"
# After the above command has been run, the query may be performed simply with:
./webstor.py -sC wordpress4.7-9
# Using WebStor to search for Wordpress sites via Wappalyzer definitions:
./webstor.py -sW wordpress
# A list of reachable Wordpress sites on your organization's networks will be
# returned. NOTE: Wappalyzer searches may be slower than pattern/regex searches
# due to the number of properties being queried to verify.
يتم الاستعلام عن المواقع بناءً على الاستجابات لكل من الأسماء وعناوين IP. هذا مهم لأن بعض خوادم الويب تستضيف مواقع متعددة تحت أسماء متعددة. قد تخدم خوادم أخرى موقعًا افتراضيًا فقط أو استجابة افتراضية لمزود الاستضافة عند الطلب بواسطة IP (مثل https://68.66.216.42)، وموقعًا فعليًا لنشاط تجاري عند الاستعلام بالاسم (مثل https://www.seekerdlp.com). لهذا السبب، إذا كان لديك موقع مسمى يتم تقديمه أيضًا عند طلب عنوان IP لخادم الويب، فسترى نتائج استعلام لكليهما.
يوصى بإعداد وظيفة cron لتشغيل WebStor يوميًا بحيث تعكس نتائج الاستعلام دائمًا الحالة الحالية لشبكتك.
إذا كنت لا ترغب في استخدام بيانات اعتماد MariaDB الافتراضية (root، كلمة مرور فارغة)، يمكنك استخدام الخيار -q لتحديد مسار ملف يحتوي على بيانات الاعتماد. يجب أن يكون السطر الأول من الملف هو الخادم، مثل localhost. السطر الثاني يجب أن يكون اسم مستخدم SQL. السطر الثالث يجب أن يكون كلمة المرور.
إذا كنت لا ترغب في تخزين مفتاح TSIG في قاعدة البيانات، يمكنك استخدام الخيار -tF لتحديد مسار ملف مفتاح TSIG مع قوائم التحكم في الوصول (ACL).
إذا كانت مؤسستك تستخدم مفاتيح TSIG متعددة، فستحتاج إلى تخزينها في قاعدة البيانات. يمكن إضافة كل منها باستخدام الخيار -tI ويمكن إضافة النطاقات من خلال الخيارات العادية، مع تحديد المفتاح والخادم المناسبين.
يستخدم WebStor قاعدة بيانات تقنيات Wappalyzer لعمليات البحث عن التقنيات المفهرسة بالاسم والمعدة مسبقًا مقابل الاستجابات المخزنة في WebStor. يتم ترخيص Wappalyzer بموجب شروط رخصة MIT.
تم كتابة WebStor بواسطة Ross Geerlings <rjgeer@umich.edu>, <ross@seekerdlp.com>.
يتم ترخيص WebStor بموجب شروط رخصة MIT، المنصوص عليها أدناه.
رخصة MIT
حقوق الطبع والنشر (c) 2020-2024 مجلس أمناء جامعة ميشيغان.
يُمنح الإذن، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (البرنامج)، للتعامل مع البرنامج دون قيود، بما في ذلك على سبيل المثال لا الحصر حقوق الاستخدام والنسخ والتعديل والدمج والنشر والتوزيع والترخيص و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين يتم تزويدهم بالبرنامج بذلك، مع مراعاة الشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإذن الإذن هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
البرنامج مزود "كما هو"، دون أي ضمان، صريح أو ضمني، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر المسؤولية عن أي دعوى أو أضرار أو مسؤولية أخرى، سواء في دعوى تعاقدية أو تقصيرية أو غير ذلك، الناشئة عن أو فيما يتعلق بالبرنامج أو استخدامه أو تعاملات أخرى مع البرنامج.