## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-INSTAWP-WP2SHELL-SCAN
# wp2shell-scan
**اكتشف ونظّف اختراقاتwp2shell (CVE‑2026‑63030) عبر موقع ووردبريس واحد أو العديد منها.**
wp2shell هي ثغرة تنفيذ التعليمات البرمجية عن بُعد قبل المصادقة (pre-authentication remote-code-execution) التي تم إصلاحها في **ووردبريس 7.0.2 / 6.9.5 / 6.8.6** (2026‑07‑17). ظهر إثبات مفهوم (PoC) عام خلال يوم واحد، وتبع ذلك استغلال جماعي خلال ~48 ساعة. الترقيع يسدّ الثغرة — لكن الموقع الذي تم استغلاله _قبل_ ترقيعه **مخترق بالفعل** ، والتحديث **لا** يزيل أدوات الثبات التي زرعها المهاجم.
هذه الأداة تجد وتزيل أدوات الثبات تلك. إنها سكربت Bash واحد خفيف الاعتماديات، يعمل **للقراءة فقط افتراضيًا** ويمكنه فحص **آلاف المواقع في تمريرة واحدة**.
> ⚠️ هذه أداة دفاعية. لا تحتوي على أي كود استغلال. **التقط لقطة (snapshot) للموقع قبل تشغيل`--clean`.**
## ما الذي تكتشفه
بعد مرحلة ما بعد الاستغلال، عادةً ما يترك wp2shell أثرين للثبات، وكلاهما تجده هذه الأداة:
1. **مدير (Administrator) مارق** — شوهدت عدة نسخ: `user_login` = `wpsvc_<hex>` / `wp2_<hex>` / `w2s_<hex>`، أو بريد إلكتروني على نطاق مهاجم (`@wp2shell.*`، `@shellcode.*`، `@wordpress-svc.internal`، `@wordpress-noreply.net`، `@x.lol`)، مع دور `administrator`. (ملاحظة: `@system.local` هو بريد إلكتروني _شرعي_ بديل لمدير الموقع على بعض الاستضافات المدارة — وهو **عن قصد** غير معامل كمؤشر خطر (IOC).)
2. **ويب شيل (webshell) متنكّر كإضافة (plugin)** — `wp-content/plugins/<plausible-name>-<6hex>/<same>.php`: ملف PHP صغير (~1.3 كيلوبايت) بترويسة `Author: WordPress.org Community` مزيفة، ومحمي خلف رمز توكن، ويعرض واجهة `?c=<command>`.
كما تكتشف الحالة العامة: أي ملف PHP صغير تحت `wp-content/` يوجّه `$_GET['c']` إلى حوض تنفيذ أوامر/تقييم (command/eval sink).
## التثبيت
root@kitploit:~
curl -fsSLO https://raw.githubusercontent.com/InstaWP/wp2shell-scan/main/wp2shell-scan.sh
chmod +x wp2shell-scan.sh
يتطلب `bash` و`find` و`grep` وعميل `mysql`/`mariadb`. يُستخدم WP‑CLI عند توفره (لحذف مستخدم أنظف) لكنه غير مطلوب — فكشف الويب شيل لا يحتاج إلى قاعدة بيانات إطلاقًا.
## الاستخدام
root@kitploit:~
# افحص موقعًا واحدًا (للقراءة فقط)
./wp2shell-scan.sh --path /var/www/example.com
# افحص كل تثبيت ووردبريس تحت مجلد أساسي (فحص جماعي)
./wp2shell-scan.sh --base /var/www
./wp2shell-scan.sh --base /home # استضافة مشتركة
# اكتشاف تلقائي للتخطيطات الشائعة (/var/www/*, /home/*/public_html, ...)
./wp2shell-scan.sh
# بصيغة قابلة للقراءة آليًا
./wp2shell-scan.sh --base /var/www --json > report.json
# تنظيف — عزل + إزالة البوابات الخلفية، تدوير أملاح wp-config (تسجيل خروج الجميع)
./wp2shell-scan.sh --base /var/www --clean --yes
# فحص نسخة احتياطية / لقطة / تفريغ قالب قبل استعادته (انظر التحذير أدناه)
./wp2shell-scan.sh --sql /path/to/backup.sql
تُنقل الأصول المزالة إلى **دليل عزل (quarantine)** (وليس حذفها نهائيًا) حتى تحتفظ بالأدلة. كود الخروج هو `1` عند وجود اختراق (فحص) أو عند التنظيف (تنظيف)، و`0` عندما يكون الموقع نظيفًا — وهو أمر مفيد لـ cron/CI.
### نموذج للمخرجات
root@kitploit:~
[COMPROMISED] /var/www/example.com — 2 backdoor admin(s), 2 webshell(s)
admin: ID=41 wpsvc_2e1487df8abb <some-email@example.com> (2026-07-19 06:41:48)
webshell: .../wp-content/plugins/security-headers-manager-8d1d21/security-headers-manager-8d1d21.php
[clean] /var/www/other-site.com
----------------------------------------------------------------
scanned=812 clean=811 compromised=1 cleaned=0
## ⚠️ لا تنسَ نسخك الاحتياطية ولقطاتك وقوالبك
**تنظيف موقع مباشر لا ينظّف نسخك الاحتياطية.** النسخة الاحتياطية أو اللقطة أو لقطة قالب/نموذج أولي (blueprint) الملتقطة _بينما كان الموقع مخترقًا_ لا تزال تحتوي على حساب المدير الخاص بالمهاجم — واستعادتها (أو توفير موقع جديد منها) **يعيد الاختراق فورًا**. تعلمنا هذا بالطريقة الصعبة: بعد تنظيف كل موقع مباشر متأثر، استمرت مواقع جديدة بالظهور ومعها البوابة الخلفية لأنها كانت تُوفَّر من لقطة قالب مسموم.
افحص التفريغ (dump) **قبل** استعادته:
root@kitploit:~
./wp2shell-scan.sh --sql /path/to/backup.sql
./wp2shell-scan.sh --sql backup1.sql --sql backup2.sql.gz # قابل للتكرار، يدعم .gz
كود الخروج هو `1` إذا كان أي تفريغ مسمومًا. إذا كان كذلك: **لا تستعده** — نظّف الموقع المباشر أولًا، ثم التقط نسخة احتياطية **جديدة** ، واحذف/استبدل أي لقطة أو قالب أُنشئ خلال نافذة تعرضك للخطر.
## بعد التنظيف
يزيل `--clean` المدير والويب شيل ويدوّر الأملاح (salts). **يجب عليك أيضًا:**
1. **تحديث نواة ووردبريس** إلى 7.0.2 / 6.9.5 / 6.8.6 (الإصلاح الفعلي).
2. **إعادة تعيين كل كلمات مرور المديرين** وإعادة تثبيت/التحقق من النواة والإضافات (`wp core verify-checksums`).
3. **تدوير أي أسرار يمكن للموقع قراءتها** — كلمة مرور قاعدة البيانات، مفاتيح API، بيانات اعتماد SMTP — افترض أنها تسربت.
4. **مراجعة ما نفّذه الشيل** — سجلات الوصول لديك تسجّل قيم أوامر `?c=`.
5. احظر مسار الدفعات (batch route) عند الحافة/الأصل حتى يتم ترقية كل المواقع (`/wp-json/batch/v1`، `?rest_route=/batch/v1`، بما في ذلك المشفَّر بـ `%2f`). ضعه في **الأصل (origin)** إذا كان CDN قد يمرر مسار REST.
## التحقق يدويًا (بدون أداة)
المديرون المارقون:
root@kitploit:~
SELECT u.ID,u.user_login,u.user_email,u.user_registered
FROM wp_users u JOIN wp_usermeta m ON u.ID=m.user_id
WHERE m.meta_key='wp_capabilities' AND m.meta_value LIKE '%administrator%'
ORDER BY u.user_registered DESC;
إضافات الويب شيل:
root@kitploit:~
find wp-content/plugins -maxdepth 1 -type d -regextype posix-extended -regex '.*-[0-9a-f]{6}$'
grep -rl "\$_GET\['c'\]" wp-content/plugins/
## تفضّل وكيل ذكاء اصطناعي؟
اطّلع على `CLEANUP-WITH-CLAUDE.md` للحصول على موجه جاهز للصق يوجّه Claude Code (أو أي وكيل برمجة قادر) خلال نفس عملية الكشف والتنظيف على موقع واحد، مع تأكيد بشري قبل كل خطوة تدميرية.
## الترخيص
MIT — انظر LICENSE. يُقدَّم كما هو، دون أي ضمان. بُني واختُبر في معركة حقيقية خلال حادثة مباشرة بواسطة فريق InstaWP.