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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
wazuh-unauth-chain — Wazuh PoC يربط بين قراءة الملفات عبر CVE-2026-74034 وتنفيذ الأوامر عبر CVE-2026-74041؛ تم إصلاحه في 4.14.8. مكتبة Python القياسية فقط. | Kitploit
أدوات/GitHubGitHub/roninreilly/wazuh-unauth-chain
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتسريب البياناتما بعد الاستغلالالتشفيراختبار الاختراقالمصادقة
GitHubroninreilly/wazuh-unauth-chain

wazuh-unauth-chain

Wazuh PoC يربط بين قراءة الملفات عبر CVE-2026-74034 وتنفيذ الأوامر عبر CVE-2026-74041؛ تم إصلاحه في 4.14.8. مكتبة Python القياسية فقط.

2منذ 23 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

سلسلة استغلال Wazuh PoC (مُصلحة في 4.14.8) — CVE-2026-74034 / CVE-2026-74041

ملف واحد، يعتمد على المكتبة القياسية فقط، PoC متعدد المضيفين يربط بين CVE-2026-74034 و CVE-2026-74041. نُشر كلا التنبيهين في 13 أكتوبر 2026؛ وصدرت الإصلاحات في Wazuh 4.14.8 في 23 سبتمبر 2026. الإصدار 4.14.8 هو الإصدار المُرقَّع، وليس هدفًا متأثرًا.

ينفّذ السكربت السلسلة التالية عندما تكون خدمات المدير المطلوبة قابلة للوصول ويكون تسجيل الوكلاء بدون كلمة مرور مُفعَّلًا:

recon :55000/:1515/:1514
        │
        ├─ Phase 2  anonymous enrollment on TCP/1515 (TLS)  ──► agent id + 64-hex key
        │
        ├─ Phase 3  OSSEC agent secure channel on TCP/1514   ──► CVE-2026-74034
        │           queue 'u' (UPGRADE_MQ) upgrade_custom          arbitrary ROOT file read
        │           with parameters.file_path = /etc/shadow …
        │
        └─ Phase 4  ES512 JWT forged from the leaked             ──► CVE-2026-74041
                    /var/ossec/api/configuration/security/          ROOT RCE via the
                    private_key.pem → PUT /manager/configuration      check_remote_commands
                    parser differential (+ restart)                   parser differential

لا حاجة إلى بيانات اعتماد موجودة مسبقًا عندما يكون تسجيل authd الافتراضي بدون كلمة مرور قابلًا للوصول (<auth><use_password>no</use_password>). تغيّر كلمة مرور التسجيل أو شهادة العميل المطلوبة هذا الشرط المسبق. يتطلب CVE-2026-74041 وحده مستخدم API مُصادَقًا لديه إذن تحديث التكوين؛ في هذه السلسلة، يتبع الوصول إلى API الكشف عن مفتاح التوقيع.

ثغرات CVE ضمن النطاق

CVECVSS / المتجهالمتأثروصف موجز
CVE-2026-740347.5، PR:N>=4.1.0 <4.14.8يُفتح parameters.file_path في upgrade_custom بواسطة ROOT عبر wm_agent_upgrade مع فحص وجود wfopen() فقط ويُعاد بثّه إلى الوكيل المسجَّل → قراءة تعسفية لملفات الجذر
CVE-2026-740419.1 (CVSS 3.1)، PR:H>=4.14.3 <4.14.8يقبل check_remote_commands وسم <LOG_FORMAT> بأحرف كبيرة يفوته المدقّق البايثوني الحسّاس لحالة الأحرف لكن جامع السجلات C غير الحسّاس لحالة الأحرف يلتزم به → full_command localfile بصلاحيات الجذر

يصف نطاقا الإصدارين العيبين الفرديين؛ التداخل الموثّق للسلسلة الكاملة هو >=4.14.3 <4.14.8. الاستشارات الأخرى خارج نطاق هذا PoC.

المتطلبات

  • Python 3.8+ — المكتبة القياسية فقط (بدون pip، بدون pycryptodome، بدون cryptography).
  • يتم تنفيذ AES-256-CBC وECDSA P-521 (ES512) بلغة Python خالصة داخل السكربت.
  • TCP صادر إلى 1515، 1514، 55000.

الاستخدام

# single host
python3 wazuh_poc.py 192.0.2.10
python3 wazuh_poc.py 192.0.2.10 --port 55000
python3 wazuh_poc.py https://192.0.2.10:55000
python3 wazuh_poc.py 192.0.2.10:55000

# many hosts, one per line ('#' comments allowed)
python3 wazuh_poc.py -f hosts.txt --threads 10

# phases 1-3 only (no config write / restart)
python3 wazuh_poc.py -f hosts.txt --no-rce

# leave the uploaded config / marker in place (NO cleanup)
python3 wazuh_poc.py 192.0.2.10 --keep

# override the phase-4 root command
python3 wazuh_poc.py 192.0.2.10 --cmd 'id; hostname > /var/ossec/etc/lists/zz_pwned 2>&1'

الخيارات

العلمالافتراضيالمعنى
--port55000منفذ Wazuh REST API
--authd-port1515منفذ تسجيل authd
--remoted-port1514منفذ القناة الآمنة للوكيل
--timeout10مهلة المقبس (ثانية)
--agent-namepoc-<rand8>الاسم المسجَّل على المدير
--cmd(id; hostname) > …/zz_pwnedأمر الجذر في المرحلة 4
--no-rceمعطّلتخطّي المرحلة 4
--keepمعطّللا تستعد ossec.conf / ولا تحذف العلامة
--debugمعطّلإظهار رسائل البروتوكول
--threads5التوازي بين المضيفين
--api-userwazuhاسم المستخدم المراد وضعه في JWT المزوّر

الخروج دائمًا سلس لكل مضيف: يُبلَّغ عن الرفض، أو authd المحمي بكلمة مرور، أو النسخة المرقّعة، أو عدم تطابق التشفير مع تحديد نقطة الحجب الدقيقة، ويستمر التشغيل مع المضيفين المتبقين.

ما تفعله كل مرحلة

المرحلة 1 — الاستطلاع

يفحص TCP 55000 (API)، و1515 (authd)، و1514 (remoted). يطلب GET / مع تعطيل التحقق من TLS ويبلّغ عن api_version عندما تكشف API عنها دون مصادقة. في البِنى المُحصّنة يُرجع GET / الرمز 401؛ عندئذٍ تُستعاد نسخة المدير الحقيقية في المرحلة 3 من /var/ossec/VERSION.json وتُعلَّم مقابل 4.14.8.

المرحلة 2 — التسجيل المجهول (authd :1515)

اتصال TLS (authd في 4.4+ يعمل بـ TLS فقط؛ ويعيد السكربت أيضًا محاولة TCP العادي للبِنى القديمة جدًا)، ثم OSSEC A:'<name>'\n. يردّ المدير بـ OSSEC K:'<id> <name> <ip> <key>'؛ ويحتفظ السكربت بمفتاح الوكيل المكوّن من 64 خانة سداسية عشرية.

المرحلة 3 — CVE-2026-74034 (remoted :1514)

يعيد إنتاج تشفير وكيل Wazuh من src/os_crypto/shared/msgs.c:

  • إطار TCP [4-byte little-endian length][payload]
  • الحمولة !<id>!#AES:<ciphertext> للوكلاء الديناميكيين (ip=any)
  • AES-256-CBC، المفتاح = MD5(agent_key_hex) (32 بايت ASCII)، IV FEDCBA0987654321، PKCS#7
  • النص الصريح = حشو !…! + zlib(MD5_hex(plain) + "%05rand%010global:%04local:" + msg)

يرسل #!-agent startup {"version":"v4.14.6"} ورسالة keepalive تحمل منصة/معمارية Ubuntu حتى يصبح الوكيل active في قاعدة البيانات العامة، ثم مهمة قائمة u (UPGRADE_MQ):

{"command":"upgrade_custom","parameters":{"file_path":"/etc/shadow","installer":"upgrade.sh"}}

يقوم analysisd بإعادة توجيهه إلى WM_UPGRADE_SOCK؛ يفتح wazuh-modulesd الجذر الملف (wfopen، دون فحوصات للمسار/الامتداد/التوقيع) ويبثّ البايتات الخام مرة أخرى كأجزاء write بترميز base64. تعيد الأداة تجميعها وتطبع أسطر [ACC] مباشرةً:

الملفالمعالجة
/etc/shadowأسطر root: / wazuh: فقط (تُطبع التجزئة كاملةً)
/var/ossec/etc/client.keysكامل (مقتطع إلى 25 سطرًا، مع عدّ البايتات)
/var/ossec/etc/authd.passكامل (غائب عند التسجيل المجهول)
/var/ossec/api/configuration/security/private_key.pemكامل
/var/ossec/etc/ossec.conf<key> الخاص بالعنقود، وبيانات اعتماد الـ indexer، وكلمة مرور <auth>
/var/ossec/VERSION.jsonبديل احتياطي للإصدار لأغراض الاستطلاع

بين الملفات ترسل الأداة upgrade_update_status (وإلا يبقي مدير المهام الوكيل في حالة In progress ويرفض المهمة التالية).

المرحلة 4 — CVE-2026-74041 (اختيارية، REST :55000)

  1. اصنع رمز JWT ES512 لمدير باستخدام المفتاح الخاص المسرَّب (iss=wazuh، aud="Wazuh API REST"، sub=wazuh، rbac_roles=[1]، rbac_mode=white، exp-nbf=900). يُتحقق منه عبر GET /agents.
  2. GET /manager/configuration?raw=true، وأدرج قبل آخر </ossec_config> عنصر <localfile> يحتوي على <log_format>syslog</log_format> بحروف صغيرة كطُعم، و<LOG_FORMAT>full_command</LOG_FORMAT> بحروف كبيرة مع الأمر.
  3. PUT /manager/configuration (application/octet-stream)، ثم PUT /manager/restart.
  4. استقصِ GET /lists/files/zz_pwned?raw=true للحصول على مخرجات الأمر الجذر.
  5. ما لم يُمرَّر --keep: نفّذ PUT لملف ossec.conf الأصلي، وأعد التشغيل، ثم DELETE /lists/files/zz_pwned (مع إعادات المحاولة حتى يزول العلامة).

المخرجات

  • يُطبع كل شيء مباشرةً ويُفرَّغ من المخزن المؤقت، موسومًا بـ [+] (الحالة)، و[ACC] (الوصول/الأسرار المجمّعة)، و[!] (تحذير)، و[-] (فشل)، مع بادئة اسم المضيف.
  • يُضاف findings.jsonl بجوار الأداة: كائن JSON واحد لكل مضيف يتضمن version، وagent_id، وagent_key (عند نجاح التسجيل)، وaccesses، وfindings، وok، وerror الاختياري. تعامل مع الملف على أنه حساس.
  • يقدّم ملخص لكل مضيف معرّف الوكيل المسجَّل، وعمليات الوصول المجمّعة، والنتائج وأي نقطة إعاقة. تشير ok إلى قراءة ملف واحد على الأقل، وليس إلى تنفيذ أوامر عن بُعد مؤكَّد.

الآثار الجانبية والتنظيف

تنزيل الأداة