إطار عمل هجومي معياري بلغة Python3 لأتمتة استغلال منصات SIEM (Splunk, Graylog, OSSIM, QRadar, McAfee) عبر سرقة بيانات الاعتماد، ونشر الحمولات، ووحدات ما بعد الاستغلال.
MultiSIEM Modular Python3 Attack Framework
By ElevenPaths https://www.elevenpaths.com/
Usage: python3 ./siemsframework.py
تُعد أنظمة SIEM أدوات دفاعية تُستخدم بشكل متزايد في مجال الأمن السيبراني، وخاصة من قبل الشركات الكبرى والشركات التي تهدف إلى مراقبة الأنظمة والشبكات شديدة الأهمية. ومع ذلك، من وجهة نظر المهاجم، فإن الصلاحيات الممنوحة لأنظمة SIEM على الأنظمة والحسابات من شبكات الشركات تكون عالية. علاوة على ذلك، يمكن استخدام الوصول الإداري إلى أنظمة SIEM للحصول على تنفيذ الأكواد على الخادم الذي تم تثبيت نظام SIEM عليه، وأحيانًا أيضًا على أجهزة العميل، بالنظر إلى أن نظام SIEM يجمع الأحداث من خوادم Active Directory وخوادم AWS وقواعد البيانات وأجهزة الشبكة (مثل جدران الحماية والموجهات).
أثناء تحقيقنا، اكتشفنا عددًا كبيرًا من نواقل الهجوم التي يمكن استخدامها على أنظمة SIEM المختلفة لاختراقها، على سبيل المثال:
• الحصول على حسابات المستخدمين وكلمات المرور المخزنة في نظام SIEM من الأنظمة الحيوية (خوادم LDAP/AD، قواعد البيانات، أجهزة الشبكة، خوادم AWS).
• تطوير وتثبيت تطبيقات خبيثة مثل قذائف عكسية لنظامي Windows/Linux، أو قذائف مقيدة لنظامي Windows/Linux، أو نصوص برمجية خبيثة بهدف اختراق الخادم الذي تم تثبيت نظام SIEM عليه.
• تطوير وتثبيت تطبيقات خبيثة مثل قذائف عكسية لنظامي Windows/Linux، أو قذائف مقيدة لنظامي Windows/Linux، أو نصوص برمجية خبيثة بهدف اختراق الأجهزة التي يجمع منها نظام SIEM الأحداث.
• إنشاء وتطبيق إجراءات أو إشعارات خبيثة تسمح بتنفيذ أوامر عند حدوث حدث معين، على سبيل المثال بهدف الحصول على قذيفة عكسية على الخادم الذي تم تثبيت نظام SIEM عليه.
• استغلال كلمات المرور الافتراضية ونقاط الضعف في أنظمة SIEM في تكوين صور OVA للحصول على بيانات اعتماد المسؤول للخادم أو قاعدة البيانات أو حتى واجهة الويب الخاصة بنظام SIEM نفسه.
• تنفيذ هجمات القاموس أو هجمات القوة العمياء ضد واجهة الويب أو الإدارة، أو ضد برنامج عميل SIEM، للحصول على بيانات اعتماد المسؤول.
• قراءة ملفات عشوائية من الخادم الذي تم تثبيت نظام SIEM عليه.
• الحصول على معلومات تكوين نظام SIEM ومعايير أخرى ذات صلة لتنفيذ هجمات إضافية.
بناءً على نتائج التحقيق، تم تطوير الأداة مفتوحة المصدر SIEMs Framework. وهي أداة معيارية تم تطويرها بلغة Python3 بواسطة فريق الابتكار والمختبر في ElevenPaths. تتيح هذه الأداة أتمتة الهجمات المحتملة على أنظمة SIEM المختلفة الموجودة في السوق (سواء التجارية أو مفتوحة المصدر).
يدعم SIEMs Framework العديد من حمولات الهجوم التي يمكن اختيارها وفقًا لنظام SIEM المستهدف ونظام تشغيله. تتوفر حمولات بصيغ PowerShell وPython وBash وExe والمزيد. بمجرد تنفيذ الهجوم المحدد، تعرض الأداة النتائج على الشاشة ويمكن العودة وتنفيذ أي هجوم آخر على نفس نظام SIEM أو اختيار نظام SIEM آخر لاختراقه. تتمتع الأداة بواجهة بسيطة وسهلة الاستخدام وبديهية. حاليًا، يمكن استخدامها مع أنظمة SIEM التالية: Splunk وGraylog وOSSIM.
يمكن تنزيل SIEMs Framework من مستودعنا على Github عن طريق تنزيل ملف .zip أو استنساخ المستودع، وتتطلب المتطلبات التالية التي يمكن تثبيتها عبر pip3 install -r requirements.txt:
• splunk-sdk
• requests
• python-nmap
• colorama
• pandas
• paramiko
• pymongo
• qradar4py
• requests_mock
• urllib3
بمجرد تثبيت المتطلبات، يمكن استخدام الأداة على النحو التالي: python3 ./siemsframework.py
عند تشغيل الأداة، تظهر القائمة الرئيسية، وهناك يجب عليك اختيار ما إذا كنت ترغب في مسح عنوان IP محدد حيث يوجد نظام SIEM أو شبكة لاكتشاف أنظمة SIEM داخلها. لمسح واكتشاف نظام SIEM ضمن عنوان IP محدد، يجب استخدام الخيار 1، ولمسح الشبكة استخدم الخيار 2.
من خلال اختيار الخيار 1 "Scan and Detect SIEM"، تطلب الأداة عنوان IP لتتمكن من مسح المنافذ المحددة لأنظمة SIEM المدعومة والاتصال بواجهة الويب أو الإدارة للتحقق من أنه نظام SIEM حقًا.
بمجرد اكتشاف نظام SIEM باتباع الطرق المذكورة أعلاه، تعرض الأداة نظام SIEM المكتشف باللون الأحمر وتمنحك خيار تشغيل وحدة الهجوم الخاصة بذلك النظام.
من خلال اختيار الخيار 2 "Find SIEMs on the network"، تطلب الأداة الشبكة المراد مسحها بصيغة CIDR، على سبيل المثال: 192.168.137.0/24. بمجرد إدخال المعلومات، يقوم SIEMs Framework أولاً بإجراء اكتشاف لتحديد الأنظمة النشطة؛ ثم يتم مسح المنافذ الافتراضية لأنظمة SIEM المدعومة، وأخيرًا يتصل بواجهة الويب أو الإدارة لكل من تلك الأنظمة للتحقق من أنه نظام SIEM حقًا.
بمجرد اكتشاف أنظمة SIEM باتباع الطرق المذكورة أعلاه، تعرض الأداة أنظمة SIEM المكتشفة باللون الأحمر وتطلب عنوان IP لنظام SIEM المراد مهاجمته.
بإدخال "y" واختيار تشغيل وحدات هجوم Splunk، تعرض الأداة جميع الهجمات الممكنة التي يمكن تنفيذها ضد نظام SIEM هذا. بالنسبة للهجومين الأولين، لا يلزم وجود بيانات اعتماد، ولكن بالنسبة للهجوم الخامس، يلزم وجود صلاحيات مسؤول Splunk.
تحتوي وحدة الهجوم هذه على قاموس خاص بـ Splunk باسم dict.txt، والذي يتكون من أكثر 100 كلمة مرور استخدامًا خلال عام 2018 والعديد من التباديل المختلفة للاسم التجاري لنظام SIEM والمستخدم المسؤول الخاص به، بأحرف كبيرة وصغيرة، واستبدال حروف العلة بالأرقام. في حال رغبت في استخدام قائمة أخرى غير المذكورة أعلاه، يمكن استبدال /splunk/dict.txt بأي قائمة كلمات أخرى، بشرط الاحتفاظ باسم الملف. لا تنطبق سياسة كلمات المرور الخاصة بـ Splunk على المستخدمين الذين لديهم دور المسؤول، لذلك لا تنطبق القيود المتعلقة بكلمات المرور أو حظر الحساب بسبب محاولات الوصول غير الناجحة. قبل بدء هجوم القاموس، تتحقق الأداة مما إذا كان إصدار Splunk المراد تحليله هو الإصدار المجاني الذي لا يستخدم أي نوع من المصادقة، أو إذا كان لا يزال يحتفظ بكلمة المرور الافتراضية "changeme" للإصدارات الأقدم من هذا البرنامج:
في حال كان خادم Splunk المراد تحليله يحتوي على واجهة ويب نشطة، تسمح هذه الوحدة بالحصول على معلومات الخادم والجلسة من واجهة الويب نفسها دون الحاجة إلى المصادقة. المنفذ الافتراضي لواجهة ويب Splunk هو 8000؛ لاستخدام هذه الوحدة، من الضروري معرفة وإدخال المنفذ الذي تم نشر واجهة الويب عليه.
يمكن استخدام هذه الوحدة على خادم Splunk أو Universal Forwarder. لاستخدامها، يلزم وجود بيانات اعتماد مسؤول Splunk، ويمكن الحصول عليها على سبيل المثال من خلال هجوم القاموس (الهجوم الأول). نتيجة الوحدة هي معلومات تثبيت Splunk الحالي: الإصدار، نظام التشغيل، تكوينات Splunk والمزيد.
تُستخدم هذه الوحدة فقط على خوادم Splunk. لاستخدامها، يلزم وجود بيانات اعتماد مسؤول Splunk، ويمكن الحصول عليها على سبيل المثال من خلال هجوم القاموس (الهجوم الأول). نتيجة الوحدة هي جميع بيانات الاعتماد المخزنة بواسطة التطبيقات المستخدمة في Splunk للاتصال بتلك الأجهزة التي يتم الحصول على الأحداث منها.
يمكن استخدام هذه الوحدة على خادم Splunk بنظام Linux. لاستخدامها، يلزم وجود بيانات اعتماد مسؤول Splunk، ويمكن الحصول عليها على سبيل المثال من خلال هجوم القاموس (الهجوم الأول). تستخدم الوحدة فهرسًا لتحميل الملف المعني، وتكون نتيجتها محتوى ملف /etc/shadow من الخادم الذي تم تثبيت Splunk عليه.
ستكون هذه الوحدة متاحة في الإصدار التالي من SIEMs Framework. لاختراق أجهزة Universal Forwarders، يمكن حتى الآن تنفيذ الهجوم الأول للحصول على بيانات الاعتماد ثم الهجوم السابع لتثبيت تطبيقات خبيثة حسب المنصة.
تسمح وحدة الهجوم هذه بتطوير وتثبيت تطبيق خبيث على Splunk مصمم لاختراق النظام المعني. أولاً، يجب تحديد نوع الحمولة المراد استخدامها وفقًا لنظام التشغيل ونوع Splunk المراد مهاجمته (خادم Splunk أو Universal Forwarder). يمكنك استخدام القذيفة العكسية أو المقيدة لنظام Linux بلغة Python لخادم Splunk أو UF؛ أو القذيفة العكسية أو المقيدة لنظام Windows بلغة Python لخادم Splunk (حيث يتم تثبيت Python افتراضيًا)؛ أو قذيفة مقيدة قابلة للتنفيذ أو نص برمجي لإضافة مستخدم مسؤول على أجهزة Universal Forwarders بنظام Windows (حيث لا يتم تثبيت Python افتراضيًا). ثم يجب إدخال اسم المستخدم وكلمة مرور مسؤول Splunk وعنوان IP الخاص بالمهاجم.