
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'