
ماسح أمان لـ WordPress يكتشف الثغرات الأمنية، ويُعدّد الإضافات/السمات/المستخدمين، ويتحقق من كلمات المرور الضعيفة. يتكامل مع WPScan API للحصول على بيانات الثغرات في الوقت الفعلي.
<p align="center">
<a href="https://wpscan.com/">
<img src="https://assets.kitploit.com/production/public/readmes/203/c3143aca4c894753cffdf1b314e19df72e588310fccde3db2d2e09dfbf4b2474.png" alt="شعار WPScan">
</a>
</p>
<h3 align="center">WPScan</h3>
<p align="center">
ماسح أمان ووردبريس
<br>
<br>
<a href="https://wpscan.com/" title="الصفحة الرئيسية" target="_blank">قاعدة بيانات ثغرات ووردبريس من WPScan</a> - <a href="https://wordpress.org/plugins/wpscan/" title="ملحق أمان ووردبريس" target="_blank">ملحق أمان ووردبريس</a>
</p>
<p align="center">
<a href="https://badge.fury.io/rb/wpscan" target="_blank"><img src="https://badge.fury.io/rb/wpscan.svg"></a>
<a href="https://hub.docker.com/r/wpscanteam/wpscan/" target="_blank"><img src="https://img.shields.io/docker/pulls/wpscanteam/wpscan.svg"></a>
<a href="https://github.com/wpscanteam/wpscan/actions?query=workflow%3ABuild" target="_blank"><img src="https://github.com/wpscanteam/wpscan/workflows/Build/badge.svg"></a>
<a href="https://qlty.sh/gh/wpscanteam/projects/wpscan" target="_blank"><img src="https://qlty.sh/gh/wpscanteam/projects/wpscan/maintainability.svg" alt="Maintainability"></a>
<a href="https://coveralls.io/github/wpscanteam/wpscan?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/wpscanteam/wpscan/badge.svg?branch=master" alt="Coverage Status"></a>
</p>
# التثبيت
## المتطلبات الأساسية
- (اختياري لكن يُنصح به بشدة: [rbenv](https://github.com/rbenv/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
```shell
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](https://github.com/wpscanteam/wpscan/issues/1844)).
- **Debian / Ubuntu**:
```shell
sudo apt install build-essential ruby-dev
```
- **Fedora / RHEL / CentOS**:
```shell
sudo dnf install @development-tools ruby-devel
```
- **Arch Linux**:
```shell
sudo pacman -S base-devel ruby
```
- **Alpine**:
```shell
sudo apk add build-base ruby-dev
```
- **macOS**: ثبّت أدوات سطر الأوامر الخاصة بـ Xcode (`xcode-select --install`).
ثم ثبّت الـ gem:
```shell
gem install wpscan
```
على macOS، إذا ظهر خطأ ```Gem::FilePermissionError``` بسبب حماية تكامل النظام (SIP) من Apple، فإما أن تثبّت RVM وتعيد تثبيت wpscan، أو شغّل ```sudo gem install -n /usr/local/bin wpscan``` (انظر [#1286](https://github.com/wpscanteam/wpscan/issues/1286))
# التحديث
يمكنك تحديث قاعدة البيانات المحلية باستخدام ```wpscan --update```
يتم تحديث WPScan نفسه إما عبر ```gem update wpscan``` أو عبر مدير الحزم (وهذا مهم جدًا لتوزيعات مثل Kali Linux: ```apt-get update && apt-get upgrade```) اعتمادًا على كيفية تثبيت WPScan مسبقًا
# Docker
اسحب المستودع باستخدام ```docker pull wpscanteam/wpscan```
تعداد أسماء المستخدمين
```shell
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u
```
تعداد نطاق من أسماء المستخدمين
```shell
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) فقط، ويعمل تنبيه التقادم لخمسة أيام كما لو كان التثبيت محليًا:
```shell
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 للدليل الأساسي](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html):
- **التثبيتات الجديدة**: `~/.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:
```shell
mv ~/.wpscan ~/.cache/wpscan
```
## اختياري: واجهة برمجة تطبيقات قاعدة بيانات ثغرات ووردبريس
تستخدم أداة WPScan CLI [واجهة برمجة تطبيقات قاعدة بيانات ثغرات ووردبريس](https://wpscan.com/api) لاسترجاع بيانات ثغرات ووردبريس في الوقت الفعلي. ولكي يسترجع WPScan بيانات الثغرات، يجب توفير رمز API عبر خيار `--api-token`، أو عبر ملف إعدادات، كما هو موضح أدناه. يمكن الحصول على رمز API عن طريق تسجيل حساب على [WPScan.com](https://wpscan.com/register).
يتم توفير ما يصل إلى **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.yml`
- `pwd/.wpscan/scan.json`
- `pwd/.wpscan/scan.yml`
إذا كانت هذه الملفات موجودة، فسيتم تحميل الخيارات من مفتاح `cli_options` وتجاوزها إذا وُجدت مرتين.
مثال:
`~/.config/wpscan/scan.yml`:
```yml
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
```
`pwd/.wpscan/scan.yml`:
```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. مثال:
```yml
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
```
## حفظ رمز API في ملف
الميزة المذكورة أعلاه مفيدة للاحتفاظ برمز API في ملف إعدادات وعدم الاضطرار إلى توفيره عبر CLI في كل مرة. للقيام بذلك، أنشئ ملف ~/.config/wpscan/scan.yml يحتوي على ما يلي:
```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 رابطًا لصفحة الحالة في رسالة الخطأ.
## تعداد أسماء المستخدمين
```shell
wpscan --url https://target.tld/ --enumerate u
```
تعداد نطاق من أسماء المستخدمين
```shell
wpscan --url https://target.tld/ --enumerate u1-100
```
** استبدل u1-100 بنطاق من اختيارك.
## تعداد مجلدات النسخ الاحتياطي
```shell
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.