Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
php2shell-detect — كشوفات Zeek وSuricata لـ "php2shell" CVE-2026-109618 وCVE-2026-109619 | Kitploit
أدوات/GitHubGitHub/corelight/php2shell-detect
أدوات دفاعيةالتقاط وتحليل الحزمتحليل الثغرات الأمنيةأمن الويبأمن الشبكاتكشف التسللالاستجابة للحوادث
GitHubcorelight/php2shell-detect

php2shell-detect

كشوفات Zeek وSuricata لـ "php2shell" CVE-2026-109618 وCVE-2026-109619

عرض المستودع
1059منذ 3 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

كشف php2shell

كشوفات Zeek وقواعد Suricata لمؤشرات HTTP المرتبطة بـ "php2shell" CVE-2026-109618 / CVE-2026-109619، احتمال تنفيذ تعليمات عن بُعد (RCE) في معالجة الذاكرة longjmp() في PHP. تحدد النتائج حركة مرور مشبوهة أو برمجيات قد تكون متأثرة.

  • [مدونة Corelight: كشف PHP2Shell قبل الإفصاح][blog]
  • إشعار PHP

Zeek

يتطلب Zeek 7.0.0 أو أحدث. التثبيت باستخدام Zeek Package Manager:

zkg install https://github.com/corelight/php2shell-detect

حمّل الحزم المثبّتة باستخدام @load packages في إعدادات Zeek الخاصة بك. للحصول على نسخة مباشرة من المستودع، حمّل /path/to/php2shell-detect/scripts. تستخدم الحزمة واجهات Zeek القياسية الخاصة بـ HTTP وتحليل الملفات والإشعارات والعنقود.

تفحص الحزمة أطوال أسماء حقول POST، وبُنى بيانات مُسلسلة مختارة، ورؤوس MIME المتكررة. كما تربط المعاملات المشبوهة ذات الصلة باستخدام ملفات تعريف ارتباط الجلسة المُهيّأة. توفّر رؤوس الاستجابة جردًا منفصلًا لإصدار PHP. يجب أن تكون حركة المرور مرئية لمحلّل HTTP الخاص بـ Zeek؛ ويتطلب HTTP المشفّر فك التشفير قبل الفحص.

الإشعارات

جميع أنواع الإشعارات تقع تحت PHP2SHELL:::

الإشعارالملاحظة
PHP_Crash_Sequenceمعاملات HTTP مشبوهة ذات صلة ضمن جلسة واحدة
Multipart_Header_Floodتكرار مفرط لرؤوس MIME المعروفة
Large_Form_Keyاسم حقل نموذج مُرمّز بعنوان URL طويل بشكل غير معتاد
Serialized_Integer_Overflowرمز عدد صحيح مُسلسل كبير بشكل غير معتاد
Serialized_Integer_Collisionsنمط مفتاح عدد صحيح مُسلسل معروف
Serialized_String_Collisionsنمط مفتاح نصي مُسلسل معروف
Serialized_Duplicate_Arrayنمط إدخال مصفوفة مُسلسلة متكرر
Serialized_Object_Repetitionنمط كائن مُسلسل متكرر
Potentially_Affected_PHP_Versionيُعلن رأس الاستجابة عن إصدار ضمن النطاق المتأثر المُهيّأ

تذهب النتائج إلى notice.log القياسي؛ ولا تُنشئ الحزمة أي تدفق سجلات إضافي. يوفّر حقل sub في الإشعار سياقًا محدودًا مثل اسم الرأس، وعمق المعاملة، والأعداد، وعيّنة قصيرة مُهرّبة من جسم POST. تقتصر العيّنات افتراضيًا على 64 بايتًا خامًا قبل التهريب؛ اضبط notice_body_sample_bytes=0 لحذفها. تُستخدم ملفات تعريف الارتباط وبصماتها في الذاكرة فقط ولا تُسجّلها هذه الحزمة.

افتراضيًا، يمكن لكل مؤشر طلب مميّز إصدار إشعار لكل معاملة. تُكبَت المطابقات المتكررة للمؤشر نفسه. اضبط detect_only_once=T لإيقاف فحص الجسم بعد أول اكتشاف في الطلب في كل معاملة. إشعارات جرد الإصدارات مستقلة عن اكتشافات الطلبات.

الإعدادات

تستخدم جميع الإعدادات مساحة الأسماء PHP2SHELL:::

الإعدادالافتراضيالتأثير
detect_only_onceFالإبلاغ عن كل مؤشر طلب مميّز؛ T يتوقف بعد أول اكتشاف
max_trans_depth3فحص أول ثلاث معاملات HTTP لكل اتصال؛ 0 تعني الكل
inspect_cookiesTاستخدام ملفات تعريف ارتباط الجلسة للربط
session_cookie_names{"PHPSESSID"}أسماء ملفات تعريف الارتباط المستخدمة لربط الجلسات
correlation_window1 minالحد الأقصى لعمر حالة ربط الجلسة المعلّقة
max_pending_sessions1000الحد الأقصى للإدخالات المحتفظ بها في كل جدول ربط
inspect_post_bodiesTفحص بيانات كيان POST ورؤوس MIME
http_body_analysis_byte_depth8388608سقف تحفّظي قدره 8 MiB على عمل فحص جسم POST، مشترك بين أجزاء MIME؛ 0 تعطّل تسليم الجسم
body_overlap_bytes256التداخل المحتفظ به للأنماط التي تعبر أجزاء الجسم
large_form_key_bytes65536عتبة بايتات الإرسال لاسم النموذج
multipart_header_threshold128عدد رؤوس MIME المعروفة المتكررة اللازمة للاكتشاف
notice_body_sample_bytes64الحد الأقصى لبايتات الجسم الخام لكل عيّنة إشعار؛ 0 يحذف العيّنات
detect_affected_php_versionsTتفعيل جرد الإصدارات من رؤوس الاستجابة
php_version_notice_interval1 hrكبت إشعارات الإصدارات لكل عنوان IP خادم عبر المنافذ والإصدارات
php_fixed_patch_versions8.2: 35, 8.3: 36, 8.4: 27, 8.5: 12أول تصحيح إصلاحي مؤقت لكل فرع

على سبيل المثال:

redef PHP2SHELL::detect_only_once = T;
redef PHP2SHELL::notice_body_sample_bytes = 0;
redef PHP2SHELL::session_cookie_names += { "custom_session" };

فحص POST يستخدم أجزاء تحليل الملفات مع تداخل محدود، بدلاً من تجميع الأجسام الكاملة. يحترم عدّ أسماء النماذج فواصل القيم وإنهاء NUL الخام. فقط كيانات POST المؤهلة تتلقى محللاً؛ ميزانيات الجسم وحدود المعاملات تقيّد نطاق الكشف عمداً. هذه المؤشرات غير مكتملة ويمكن أن تطابق أيضاً حركة مرور حميدة.

في عنقود Zeek، يوجّه العمال ملاحظات الجلسات الصغيرة إلى الوكلاء باستخدام Cluster::publish_hrw(). تصل كلتا المرحلتين للجلسة نفسها إلى الوكيل نفسه، الذي يطابقهما ويرفع PHP_Crash_Sequence مباشرة. يحتفظ الإشعار بمعرّف اتصال المتابعة وUID وعمق المعاملة؛ ويحدد peer_descr الوكيل. لا يحتفظ العمال بسجلات الاتصال أو HTTP الكاملة لعمليات الاستدعاء.

تنتهي صلاحية المحفزات والمتابعات غير المتطابقة بعد correlation_window، مع تحديد max_pending_sessions لكل جدول. يحتفظ الوكلاء بأول متابعة غير متطابقة لكل مفتاح جلسة. يبحث المحفز عن ذلك المفتاح مباشرة للتعامل مع الرسائل الواردة بترتيب معكوس؛ يتم دمج المتابعات غير المتطابقة اللاحقة للمفتاح نفسه حتى تتطابق تلك المدخلة أو تنتهي صلاحيتها. تستخدم المطابقة طوابع وقت الملاحظة والعميل والخادم ومنفذ الخادم ومضيف HTTP وملخص الجلسة. يرتبط Zeek المستقل محلياً. يلزم اتصال وكيل عادي.

تستخدم إشعارات الوكيل كبت الإشعارات القياسي المفتاح بـ UID وعمق المعاملة لـ correlation_window. هذا مستقل عن نتائج العمال ولا يوقف فحص جسم العامل. لا تزال المطابقات المتزامنة لملفات تعريف ارتباط جلسات مختلفة على وكلاء مختلفين قادرة على إنتاج إشعارات مكررة قبل انتشار كبت العنقود.

جرد إصدار PHP

يتم فحص رؤوس استجابة Server وX-Powered-By الخارجية، بما في ذلك الاستجابات لطلبات GET. أسماء الرؤوس غير حساسة لحالة الأحرف. الحد الأدنى المتأثر هو PHP 5.4.0. تفترض الحدود التالية أن التصحيح التالي بعد أحدث الإصدارات المستقرة التي تم فحصها في 18 أكتوبر 2026 سيعالج كلا الخطأين:

الفرعأحدث إصدار مستقر عند الفحصأول إصدار مُصلح مؤقت
8.28.2.348.2.35
8.38.3.358.3.36
8.48.4.268.4.27
8.58.5.118.5.12

الإصدارات المُصلحة المُهيأة والتصحيحات اللاحقة في الفرع نفسه لا تُنبّه. الفروع التي لا تحتوي على حد مُهيأ تبقى مرشحة. تستخدم لواحق البائعين الشائعة الإصدار الرقمي الأساسي. قد تكون اللافتات غائبة أو معاد كتابتها أو تعكس بناء بائع مع إصلاحات مدعومة، لذا فهذه تلميحات جرد.

قواعد Suricata

القواعد الثلاث في [suricata/php2shell.rules][rules] تعمل بشكل مستقل عن Zeek. تثبيت حزمة Zeek باستخدام zkg لا يحمّل هذه القواعد في Suricata. القواعد الثلاث جميعها مفعّلة في الملف؛ خيارات تهيئة Zeek لا تؤثر عليها.

SIDمخزن الفحصالملاحظة
3000650http.request_body مع الطريقة POSTعلامة كشف في جسم الطلب
3000651http.response_headerإصدار PHP متأثر محتمل يُعلن عنه عبر Server أو X-Powered-By
3000652http.response_bodyإصدار PHP متأثر محتمل في عنوان HTML على شكل phpinfo

تحميل القواعد

أضف ملف القواعد إلى قائمة rule-files الموجودة في suricata.yaml، مع الاحتفاظ بإدخالات القواعد الأخرى. استخدم المسار المطلق لنسختك المستخرجة:

rule-files:
  - /path/to/php2shell-detect/suricata/php2shell.rules

تحقق من صحة إعداداتك، ثم أعد تحميل Suricata أو أعد تشغيله باستخدام إجراء النشر المعتاد لديك:

suricata -T -c /path/to/suricata.yaml

تم التحقق من القواعد باستخدام Suricata 8.0.6. يجب تفعيل فحص جسم HTTP؛ تحدد حدود جسم الطلب/الاستجابة وحدود إعادة تجميع التدفق المحتوى الذي يصل إلى هذه القواعد. يتطلب HTTP المشفر فك التشفير قبل الفحص.

تفسير التنبيهات

ابحث عن هذه القواعد في سجلات تنبيهات EVE باستخدام alert.signature_id، أو عبر SID الخاص بها في مخرجات التنبيه المُهيأة لديك. قد تظهر علامة POST في حركة مرور شرعية ولا تثبت وجود محاولة استغلال. لا يقوم Suricata بإجراء ربط الجلسات الذي تقدمه حزمة Zeek.

تنزيل الأداة