Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
webstor — يقوم بتعداد جميع المواقع الإلكترونية عبر شبكات المؤسسة عن طريق عمليات نقل المنطقة DNS والمسح الجماعي masscan، ويخزن الاستجابات، ويتيح الاستعلام عن تقنيات الويب المعروفة الثغرات وأنماط regex المخصصة. | Kitploit
أدوات/GitHubGitHub/rossgeerlings/webstor
الاستطلاعماسحات الثغرات الأمنيةجمع المعلوماتأمن الويبتحليل DNS
GitHubrossgeerlings/webstor

webstor

يقوم بتعداد جميع المواقع الإلكترونية عبر شبكات المؤسسة عن طريق عمليات نقل المنطقة DNS والمسح الجماعي masscan، ويخزن الاستجابات، ويتيح الاستعلام عن تقنيات الويب المعروفة الثغرات وأنماط regex المخصصة.

عرض المستودع
158201منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

 

WebStor

التحديد السريع لتقنيات الويب الضعيفة في مؤسستك

WebStor هي أداة مطبقة بلغة بايثون تحت رخصة MIT لعدد سريع لجميع مواقع الويب عبر جميع شبكات مؤسستك، وتخزين استجاباتها، والاستعلام عن تقنيات وإصدارات الويب المعروفة، مثل تلك التي تحتوي على ثغرات يوم الصفر. وهي موجهة بشكل خاص لحل المشكلة الفريدة التي تظهر في المؤسسات المتوسطة والكبيرة ذات الإدارة اللامركزية، حيث قد يكون من المستحيل تقريبًا تتبع جميع تقنيات الويب المنشورة من قبل مسؤولين مختلفين موزعين عبر وحدات وشبكات مختلفة.

يحقق WebStor هدفه من خلال تنفيذ الإجراءات التالية:

  1. يقوم بنقل مناطق DNS (DNS zone transfers) لجمع سجلات A و CNAME الخاصة بالمؤسسة.
  2. يستخدم Masscan لمسح المنافذ المفتوحة HTTP/HTTPS على نطاقات الشبكة الخاصة بالمؤسسة، بالإضافة إلى أي عناوين IP خارج تلك النطاقات التي كانت موجودة في سجلات A و CNAME الخاصة بالمؤسسة.
  3. يستخدم مكتبة طلبات Paithon (Python requests library) لجمع جميع الاستجابات وتخزينها في قاعدة بيانات MariaDB. سيتم تضمين جميع أسماء DNS المقابلة لعنوان IP بمنافذ HTTP/HTTPS مفتوحة في الطلبات بالإضافة إلى عنوان IP، بحيث لا يتسبب استخدام المواقع لرؤوس مختلفة في فقدان موقع ويب.
  4. يقوم بتنزيل قاعدة بيانات تقنيات الويب Wappalyzer وتخزينها في قاعدة بيانات MariaDB، مما يسمح للمستخدمين بالاستعلام عن موقع (مواقع) تقنية ويب شائعة بالاسم.
  5. يسمح للمستخدمين بالاستعلام عن المواقع التي تحتوي على تعبيرات منتظمة (regexes) مخصصة ضمن الاستجابات المخزنة.

المنصات المدعومة

يعمل WebStor حاليًا على أنظمة لينكس. نظرًا لأنه مكتوب بلغة بايثون، فإن التحويل لدعم ويندوز سيكون بسيطًا ومن المرجح أن يحدث في المستقبل.

المتطلبات الأساسية

التطبيقات

  • Masscan
    • إذا كنت ستستخدم وظيفة cron لتحديث قاعدة البيانات (وهو أمر نموذجي)، فمن الضروري جدًا تكوين sudo بدون كلمة مرور (nopasswd) لأي مستخدم ينفذ مسح Masscan عبر WebStor.
  • MariaDB 10.0.5 أو أحدث
    • ستكون بيانات الاعتماد الافتراضية التي يحاولها WebStor هي 'root' وكلمة مرور فارغة. راجع قسم "الخيارات الآمنة" لتكوين WebStor لاستخدام أسماء مستخدمين وكلمات مرور أخرى للاتصال بقاعدة البيانات.

مكتبات بايثون

  • pip3 install dnspython
  • pip3 install beautifulsoup4
  • pip3 install mysql-connector-python
  • pip3 install js-regex
  • pip3 install gevent
  • pip3 install requests

التوفر عبر PyPI

  • إذا كنت تبحث ببساطة عن تشغيل WebStor وليس تحريره، يمكنك تثبيت التطبيقات المطلوبة ثم استخدام 'sudo pip3 install webstor'.
  • بعد تثبيت WebStor عبر PyPI، سيكون webstor في المسار ويمكن تشغيله من سطر الأوامر بغض النظر عن دليل العمل باستخدام 'webstor' بدلاً من 'webstor.py'، على سبيل المثال 'webstor -g'.

الاستخدام الأساسي

root@kitploit:~
       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.

خطوات التكوين الأولي لـ WebStor وتعبئة قاعدة البيانات:

ملاحظة: تفترض هذه الخطوات أن مؤسستك تستخدم مفتاح TSIG واحدًا لنقل المناطق وأن جميع السجلات يمكن الاستعلام عنها من خادم DNS واحد. إذا لم يكن الأمر كذلك، راجع قسم حالات الاستخدام الآمنة/الغريبة أدناه.

  1. احصل على ملف مفتاح TSIG يسمح لك بسحب نقل المنطقة، ضعه في دليل العمل الخاص بك.
  2. احصل على ملف قائمة محددة بخطوط جديدة لجميع نطاقات الشبكة في مؤسستك (ترميز CIDR). إذا كنت تستخدم مساحات خاصة كبيرة من RFC1918، وخاصة مساحة 10.X، فلا تقم ببساطة بإضافة 10.0.0.0/8 لأن ذلك قد يتسبب في استغراق Masscan وقتًا طويلاً لاحقًا. بدلاً من ذلك، استخدم كتلًا أصغر متعددة مخصصة فعليًا (مثل 10.10.3.0/24). مع شبكة شركة أو جامعة نموذجية في وقت كتابة هذا التقرير، يمكنك توقع أن كل مليون عنوان IP يتم مسحها ستستغرق حوالي 15 دقيقة أثناء المسح باستخدام إعدادات التقييد الحالية لـ WebStor.
  3. أنشئ ملفًا نصيًا بأسماء النطاقات التي ستسحب منها نقل المنطقة. في أعلى الملف، أدخل سطرين: الأول باسم مفتاح TSIG (إذا كنت لا تعرف ما هو، فسيكون في السطر الأول من ملف TSIG بعد "key")، والثاني يجب أن يكون اسم أو عنوان IP لخادم DNS الخاص بك. باقي الملف يجب أن يكون كل اسم نطاق DNS لمؤسستك، كل اسم في سطر. بالنسبة لجامعة كبيرة نموذجية، ستكون هذه أسماء مثل engineering.stateu.edu.
  4. قم بتشغيل ./webstor.py -g لعرض التكوين وتأكيد وظائف قاعدة البيانات.
  5. قم بتشغيل ./webstor.py -tI <ملف tsig> -mI <ملف نطاقات الشبكة> -zI <ملف النطاقات> ملاحظة: أثناء جزء استيراد TSIG من هذه العملية، سيُطلب منك نطاق للربط مع TSIG وخادم DNS لاستهداف هذا TSIG. وذلك لأن ملف TSIG نفسه لا يحتوي على هذه المعلومات. ببساطة قم بتوفير أي من نطاقاتك، مثل stateu.edu، وعنوان IP لخادم DNS الخاص بك. المعلومات الموجودة في ملف استيراد النطاق، التي تتم معالجتها بعد ذلك، ستتجاوز ارتباط النطاق.
  6. أصبح WebStor الآن جاهزًا لجمع البيانات. قم بتشغيل ./webstor.py -z -m -r -w. سيقوم هذا بجمع سجلات DNS عبر نقل المنطقة، ومسح منافذ الويب المفتوحة باستخدام Masscan، وإجراء طلبات HTTP/HTTPS ضد جميع المضيفين ذوي منافذ الويب المفتوحة (المجموعة الفوقية لتلك الموجودة في نطاقات الشبكة والمضيفين الذين لديهم سجلات DNS تقع خارج تلك النطاقات)، وتخزين الاستجابات في قاعدة البيانات. يقوم الخيار -w أيضًا بتنزيل أحدث نسخة من قاعدة بيانات تقنيات الويب Wappalyzer من GitHub.

مثال على الاستخدام

root@kitploit:~
# 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. هذا مهم لأن بعض خوادم الويب تستضيف مواقع متعددة تحت أسماء متعددة. قد تخدم خوادم أخرى موقعًا افتراضيًا فقط أو استجابة افتراضية لمزود الاستضافة عند الطلب بواسطة 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.

شكر خاص

  • Brandon Bailey <Twitter: @ge0stigm4> (المصمم المشارك للمفهوم الأصلي)
  • Bob Harold (إرشادات حول DNS)
  • Neamen Negash <nnegash@umich.edu> (مثبت)
  • afreudenreich (إصلاحات وتحسينات متعددة)

الرخصة والمؤلف

تم كتابة WebStor بواسطة Ross Geerlings <rjgeer@umich.edu>, <ross@seekerdlp.com>.

يتم ترخيص WebStor بموجب شروط رخصة MIT، المنصوص عليها أدناه.

رخصة MIT

حقوق الطبع والنشر (c) 2020-2024 مجلس أمناء جامعة ميشيغان.

يُمنح الإذن، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (البرنامج)، للتعامل مع البرنامج دون قيود، بما في ذلك على سبيل المثال لا الحصر حقوق الاستخدام والنسخ والتعديل والدمج والنشر والتوزيع والترخيص و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين يتم تزويدهم بالبرنامج بذلك، مع مراعاة الشروط التالية:

يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإذن الإذن هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.

البرنامج مزود "كما هو"، دون أي ضمان، صريح أو ضمني، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر المسؤولية عن أي دعوى أو أضرار أو مسؤولية أخرى، سواء في دعوى تعاقدية أو تقصيرية أو غير ذلك، الناشئة عن أو فيما يتعلق بالبرنامج أو استخدامه أو تعاملات أخرى مع البرنامج.

تنزيل الأداة