
wpscan v4.1.0
ماسح أمان لـ WordPress يكتشف الثغرات الأمنية، ويُعدّد الإضافات/السمات/المستخدمين، ويتحقق من كلمات المرور الضعيفة. يتكامل مع WPScan API للحصول على بيانات الثغرات في الوقت الفعلي.
WPScan
ماسح أمان ووردبريس
قاعدة بيانات ثغرات ووردبريس من WPScan - ملحق أمان ووردبريس
التثبيت
المتطلبات الأساسية
- (اختياري لكن يُنصح به بشدة: rbenv)
- Ruby >= 3.3 - يُنصح بأحدث إصدار مستقر
- Curl >= 7.72 - يُنصح بأحدث إصدار مستقر
- الإصدار 7.29 يعاني من خطأ تجزئة (segfault)
- الإصدارات الأقل من 7.72 قد تؤدي إلى
Stream error in the HTTP/2 framing layerفي بعض الحالات
- RubyGems - يُنصح بأحدث إصدار مستقر
- قد تتطلب Nokogiri تثبيت حزم عبر مدير الحزم الخاص بنظام التشغيل لديك، راجع https://nokogiri.org/tutorials/installing_nokogiri.html
في توزيعة اختبار الاختراق
عند استخدام توزيعة اختبار اختراق (مثل Kali Linux)، يُنصح بتثبيت/تحديث wpscan عبر مدير الحزم إذا كان متاحًا.
في macOS عبر Homebrew
brew install wpscanteam/tap/wpscan
من RubyGems
يعتمد WPScan على gems ذات امتدادات أصلية (مثل yajl-ruby وnokogiri وffi)، لذا يجب توفر سلسلة أدوات C عاملة وترويسات تطوير Ruby قبل gem install wpscan. وبدونها، يفشل التثبيت بأخطاء مثل Failed to build gem native extension أو make: x86_64-linux-gnu-gcc: No such file or directory (انظر #1844).
- Debian / Ubuntu:
sudo apt install build-essential ruby-dev - Fedora / RHEL / CentOS:
sudo dnf install @development-tools ruby-devel - Arch Linux:
sudo pacman -S base-devel ruby - Alpine:
sudo apk add build-base ruby-dev - macOS: ثبّت أدوات سطر الأوامر الخاصة بـ Xcode (
xcode-select --install).
ثم ثبّت الـ gem:
gem install wpscan
على macOS، إذا ظهر خطأ Gem::FilePermissionError بسبب حماية تكامل النظام (SIP) من Apple، فإما أن تثبّت RVM وتعيد تثبيت wpscan، أو شغّل sudo gem install -n /usr/local/bin wpscan (انظر #1286)
التحديث
يمكنك تحديث قاعدة البيانات المحلية باستخدام wpscan --update
يتم تحديث WPScan نفسه إما عبر gem update wpscan أو عبر مدير الحزم (وهذا مهم جدًا لتوزيعات مثل Kali Linux: apt-get update && apt-get upgrade) اعتمادًا على كيفية تثبيت WPScan مسبقًا
Docker
اسحب المستودع باستخدام docker pull wpscanteam/wpscan
تعداد أسماء المستخدمين
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u
تعداد نطاق من أسماء المستخدمين
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100
** استبدل u1-100 بنطاق من اختيارك.
الحفاظ على قاعدة البيانات المحلية
تأتي الصورة مع نسخة من قاعدة البيانات المحلية مدمجة فيها وقت البناء. ولأن أوامر الأمثلة أعلاه تستخدم --rm، يتم تجاهل أي تحديث لقاعدة البيانات يتم أثناء التشغيل عند خروج الحاوية، لذا تبدأ عملية التشغيل التالية من النسخة المدمجة (التي قد تكون قديمة).
تركيب وحدة تخزين مُسمّاة عند /wpscan/.cache/wpscan/db (دليل ذاكرة التخزين المؤقت لمستخدم wpscan داخل الحاوية) يحافظ على قاعدة البيانات عبر عمليات التشغيل المتعددة، بحيث يعيد wpscan --update تنزيل الملفات التي تغيّرت مجاميعها الاختبارية (checksums) فقط، ويعمل تنبيه التقادم لخمسة أيام كما لو كان التثبيت محليًا:
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update
يتم إنشاء وحدة التخزين المُسمّاة تلقائيًا عند أول استخدام إذا لم تكن موجودة بالفعل.
الاستخدام
يمكن العثور على الوثائق الكاملة للمستخدم هنا؛ https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
wpscan --url blog.tld سيقوم هذا بفحص المدونة باستخدام الخيارات الافتراضية مع توازن جيد بين السرعة والدقة. ويقوم باكتشاف الإصدار واكتشاف القوالب واكتشاف النتائج المثيرة للاهتمام. لتعداد الإضافات والقوالب والمستخدمين ومجلدات النسخ الاحتياطي وغيرها، استخدم الخيار -e (مثل -e ap لجميع الإضافات، و-e vp للإضافات الضعيفة، و-e bf لمجلدات النسخ الاحتياطي).
إذا كانت هناك حاجة إلى نهج أكثر تكتّمًا، فيمكن استخدام wpscan --stealthy --url blog.tld.
ونتيجة لذلك، عند استخدام خيار --enumerate، لا تنسَ ضبط --plugins-detection وفقًا لذلك، لأن قيمته الافتراضية هي 'passive'.
لمزيد من الخيارات، افتح طرفية واكتب wpscan --help (إذا بنيت wpscan من المصدر، فاكتب الأمر خارج مستودع git)
موقع قاعدة البيانات
يتبع موقع قاعدة البيانات مواصفات XDG للدليل الأساسي:
- التثبيتات الجديدة:
~/.cache/wpscan/db(أو$XDG_CACHE_HOME/wpscan/dbإذا تم ضبطه) - التثبيتات الحالية:
~/.wpscan/db(مسار قديم، مُبقى للتوافق مع الإصدارات السابقة)
تُخزَّن ملفات وقت التشغيل مثل ذاكرة التخزين المؤقت الافتراضية لـ HTTP وملف الكعكات (cookie jar) تحت $TMPDIR/wpscan عندما
يكون $TMPDIR مضبوطًا. وبخلاف ذلك، تستخدم نفس دليل ذاكرة التخزين المؤقت لـ XDG الخاص بالمستخدم، مثل
~/.cache/wpscan/cache و~/.cache/wpscan/cookie_jar.txt. يمكن تجاوز هذه الإعدادات الافتراضية
باستخدام --cache-dir و--cookie-jar.
لترحيل تثبيت حالي إلى مسار XDG:
mv ~/.wpscan ~/.cache/wpscan
اختياري: واجهة برمجة تطبيقات قاعدة بيانات ثغرات ووردبريس
تستخدم أداة WPScan CLI واجهة برمجة تطبيقات قاعدة بيانات ثغرات ووردبريس لاسترجاع بيانات ثغرات ووردبريس في الوقت الفعلي. ولكي يسترجع WPScan بيانات الثغرات، يجب توفير رمز API عبر خيار --api-token، أو عبر ملف إعدادات، كما هو موضح أدناه. يمكن الحصول على رمز API عن طريق تسجيل حساب على WPScan.com.
يتم توفير ما يصل إلى 25 طلب API يوميًا مجانًا، وهو ما ينبغي أن يكون مناسبًا لفحص معظم مواقع ووردبريس مرة واحدة على الأقل يوميًا. وعند استنفاد الطلبات اليومية البالغ عددها 25، سيستمر WPScan في العمل بشكل طبيعي ولكن بدون أي بيانات عن الثغرات.
كم عدد طلبات API التي تحتاجها؟
- يقوم ماسح ووردبريس الخاص بنا بطلب API واحد لإصدار ووردبريس، وطلب واحد لكل إضافة مثبتة، وطلب واحد لكل قالب مثبت.
- في المتوسط، يحتوي موقع ووردبريس على 22 إضافة مثبتة.
تحميل خيارات CLI من ملف/ملفات
يمكن لـ WPScan تحميل جميع الخيارات (بما في ذلك --url) من ملفات الإعدادات، ويتم فحص المواقع التالية (بالترتيب: من الأول إلى الأخير):
$XDG_CONFIG_HOME/wpscan/scan.json(إذا تم ضبطXDG_CONFIG_HOME)$XDG_CONFIG_HOME/wpscan/scan.yml(إذا تم ضبطXDG_CONFIG_HOME)~/.config/wpscan/scan.json(إذا لم يتم ضبطXDG_CONFIG_HOME)~/.config/wpscan/scan.yml(إذا لم يتم ضبطXDG_CONFIG_HOME)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.yml
إذا كانت هذه الملفات موجودة، فسيتم تحميل الخيارات من مفتاح cli_options وتجاوزها إذا وُجدت مرتين.
مثال:
~/.config/wpscan/scan.yml:
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
pwd/.wpscan/scan.yml:
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
تشغيل wpscan في الدليل الحالي (pwd) هو نفسه تشغيل wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld
يمكن إضافة خيارات أخرى لسطر الأوامر باستخدام اصطلاح snake case. مثال:
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
حفظ رمز API في ملف
الميزة المذكورة أعلاه مفيدة للاحتفاظ برمز API في ملف إعدادات وعدم الاضطرار إلى توفيره عبر CLI في كل مرة. للقيام بذلك، أنشئ ملف ~/.config/wpscan/scan.yml يحتوي على ما يلي:
cli_options:
api_token: 'YOUR_API_TOKEN'
تحميل رمز API من متغيرات البيئة (منذ v3.7.10)
سيتم تحميل رمز API تلقائيًا من متغير البيئة WPSCAN_API_TOKEN إذا كان موجودًا. وإذا تم أيضًا توفير خيار CLI --api-token، فسيتم استخدام القيمة القادمة من CLI.
حالة خدمة API
إذا واجهت مشكلات في الاتصال بواجهة برمجة تطبيقات WPScan، يمكنك التحقق من حالة الخدمة على https://status.wpscan.com/. وعند حدوث أخطاء في اتصال API، سيتضمن WPScan رابطًا لصفحة الحالة في رسالة الخطأ.
تعداد أسماء المستخدمين
wpscan --url https://target.tld/ --enumerate u
تعداد نطاق من أسماء المستخدمين
wpscan --url https://target.tld/ --enumerate u1-100
** استبدل u1-100 بنطاق من اختيارك.
تعداد مجلدات النسخ الاحتياطي
wpscan --url https://target.tld/ --enumerate bf
سيتحقق هذا من مجلدات النسخ الاحتياطي التي تنشئها إضافات النسخ الاحتياطي الشائعة لوردبريس. قد تحتوي هذه المجلدات على بيانات حساسة مثل تفريغات قواعد البيانات أو ملفات الإعدادات أو نسخ احتياطية كاملة للموقع.
الترخيص
رخصة المصدر العامة لـ WPScan
برنامج WPScan (يُشار إليه فيما بعد ببساطة باسم "WPScan") مرخّص بترخيص مزدوج - حقوق الطبع والنشر 2011-2019 لفريق WPScan.
الحالات التي تشمل تسويق WPScan تجاريًا تتطلب ترخيصًا تجاريًا غير مجاني. وبخلاف ذلك، يمكن استخدام WPScan دون مقابل وفقًا للشروط المبينة أدناه.
1. التعريفات
1.1 "الترخيص" يعني هذا المستند.
1.2 "المساهم" يعني كل فرد أو كيان قانوني ينشئ WPScan أو يساهم في إنشائه أو يملكه.
1.3 "فريق WPScan" يعني المطوّرين الأساسيين لـ WPScan.
2. التسويق التجاري
الاستخدام التجاري هو الاستخدام المعدّ لتحقيق ميزة تجارية أو تعويض مالي.
أمثلة على حالات التسويق التجاري:
- استخدام WPScan لتقديم خدمات مُدارة/برمجيات كخدمة (SaaS) تجارية.
- توزيع WPScan كمنتج تجاري أو كجزء من منتج تجاري.
- استخدام WPScan كخدمة/منتج ذي قيمة مضافة.
الحالات التي لا تتطلب ترخيصًا تجاريًا، وبالتالي تخضع للشروط المبينة أدناه، تشمل (على سبيل المثال لا الحصر):
- مختبرو الاختراق (أو مؤسسات اختبار الاختراق) الذين يستخدمون WPScan كجزء من مجموعة أدوات التقييم الخاصة بهم.
- توزيعات لينكس لاختبار الاختراق، بما في ذلك على سبيل المثال لا الحصر Kali Linux وSamuraiWTF وBackBox Linux.
- استخدام WPScan لاختبار أنظمتك الخاصة.
- أي استخدام غير تجاري لـ WPScan.
إذا كنت بحاجة إلى شراء ترخيص تجاري أو لم تكن متأكدًا مما إذا كنت بحاجة إلى شراء ترخيص تجاري، فتواصل معنا - [email protected].
شروط وأحكام الاستخدام المجاني؛
3. إعادة التوزيع
يُسمح بإعادة التوزيع وفق الشروط التالية:
- توفير الترخيص غير المعدّل مع WPScan.
- توفير إشعارات حقوق الطبع والنشر غير المعدّلة مع WPScan.
- عدم التعارض مع بند التسويق التجاري.
4. النسخ
يُسمح بالنسخ طالما لا يتعارض مع بند إعادة التوزيع.
5. التعديل
يُسمح بالتعديل طالما لا يتعارض مع بند إعادة التوزيع.
6. المساهمات
أي مساهمات تفترض أن المساهم يمنح فريق WPScan الحق غير المحدود وغير الحصري في إعادة استخدام محتوى المساهم وتعديله وإعادة ترخيصه.
7. الدعم والتحديثات والصيانة
يتم توفير WPScan على أساس "كما هو" (AS-IS) وبدون أي دعم أو تحديثات أو صيانة. يجوز تقديم الدعم والتحديثات والصيانة وفقًا لتقدير فريق WPScan وحده.
8. إخلاء مسؤولية الضمان
يتم توفير WPScan بموجب هذا الترخيص على أساس "كما هو"، دون أي ضمان من أي نوع، سواء كان صريحًا أو ضمنيًا أو قانونيًا، بما في ذلك على سبيل المثال لا الحصر ضمانات خلو WPScan من العيوب، أو قابليته للتسويق، أو ملاءمته لغرض معين، أو عدم انتهاكه لحقوق الآخرين.
9. تحديد المسؤولية
في الحدود التي يسمح بها القانون، يتم توفير WPScan على أساس "كما هو". لا يكون فريق WPScan مسؤولًا أبدًا، وبدون أي حد، عن أي ضرر أو تكلفة أو نفقة أو أي دفعة أخرى تتكبدها نتيجة لأفعال WPScan أو فشله أو أخطائه البرمجية و/أو أي تفاعل آخر بين WPScan والمعدات الطرفية أو أجهزة الكمبيوتر أو البرامج الأخرى أو أي طرف ثالث أو معدات طرفية أو أجهزة كمبيوتر أو خدمات.
10. إخلاء المسؤولية
قد يكون تشغيل WPScan ضد مواقع الويب دون موافقة متبادلة مسبقة غير قانوني في بلدك. لا يتحمل فريق WPScan أي مسؤولية ولا يكون مسؤولًا عن أي إساءة استخدام أو ضرر يسببه WPScan.
11. العلامة التجارية
مصطلح "wpscan" هو علامة تجارية مسجلة. لا يمنح هذا الترخيص استخدام العلامة التجارية "wpscan" أو استخدام شعار WPScan.