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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-47981 — # سكربت تقييم PowerShell سكربت تقييم PowerShell يفحص أنظمة Windows بحثًا عن CVE-2025-47981 (تجاوز سعة الكومة في SPNEGO NEGOEX) من خلال التحقق من إصدار النواة، ومفتاح التسجيل PKU2U، والمنافذ المكشوفة لـ SPNEGO. يوفر خطوات المعالجة وإرشادات الكشف. | Kitploit
أدوات/GitHubGitHub/hkenzokimura/cve-2025-47981
ماسحات الثغرات الأمنيةتدقيق التكوينأمن الشبكاتالتعلم والتعليمالاستجابة للحوادث
GitHubhkenzokimura/cve-2025-47981

CVE-2025-47981

# سكربت تقييم PowerShell سكربت تقييم PowerShell يفحص أنظمة Windows بحثًا عن CVE-2025-47981 (تجاوز سعة الكومة في SPNEGO NEGOEX) من خلال التحقق من إصدار النواة، ومفتاح التسجيل PKU2U، والمنافذ المكشوفة لـ SPNEGO. يوفر خطوات المعالجة وإرشادات الكشف.

عرض المستودع
26منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

🔵 CVE-2025-47981 — سكربت تقييم ثغرة Windows SPNEGO NEGOEX

النوع: تقييم الثغرات — فحص اكتشاف / التحقق من الامتثال CVE: CVE-2025-47981 CVSS: 9.8 حرج (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) CWE: CWE-122 — تجاوز سعة المخزن المؤقت في الكومة (Heap-based Buffer Overflow) الاسم المستعار: "SPNEGO Nightmare" / "Windows Authentication Wormable RCE" التصحيح: KB5062560 | تحديثات يوليو 2025 Patch Tuesday

سكربت PowerShell للتقييم يتحقق مما إذا كان نظام Windows عرضة لثغرة CVE-2025-47981 — تجاوز سعة المخزن المؤقت في الكومة في آلية SPNEGO Extended Negotiation (NEGOEX) التي تسمح بتنفيذ التعليمات البرمجية عن بُعد دون مصادقة. لا ينفذ استغلالًا — فقط يقيم التعرض وحالة التصحيح.

تم التطوير بواسطة: HKK


$ cat ./vulnerability_summary.txt

CVE-2025-47981 هو تجاوز سعة المخزن المؤقت في الكومة في بروتوكول NEGOEX — الطبقة الداخلية الموسعة لآلية مصادقة SPNEGO في Windows. تسمح الثغرة للمهاجمين غير المصادق عليهم بتنفيذ تعليمات برمجية عشوائية عن بُعد، مما قد يؤدي إلى السيطرة الكاملة على النظام.

وصف المحللون الثغرة بأنها تمتلك "الخصائص غير المحظوظة لتصبح مشكلة كبيرة"، مع إمكانية الانتشار الذاتي (wormable) — قادرة على الانتشار تلقائيًا بين الأنظمة الضعيفة دون تفاعل المستخدم.

تؤثر الثغرة على Windows 10 (الإصدار 1607 فما فوق) وجميع إصدارات Windows Server من 2008 R2 حتى Server 2025، بما في ذلك متغيرات Server Core — أكثر من 33 تكوينًا مختلفًا من Windows وServer مؤكد أنها ضعيفة على معماريات x64 وx86 وARM64.


$ cat ./technical_background.txt

ما هو SPNEGO ولماذا هو في النواة؟

SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) هو طبقة مصافحة المصادقة التي يستخدمها Windows قبل كل جلسة مصادقة. غالبًا ما تحتاج التطبيقات إلى مصادقة دون تثبيت بروتوكول — يمكن لـ Windows استخدام Kerberos في بيئة، وNTLM في أخرى، أو آلية مصادقة موسعة في نموذج ثقة مختلف. SPNEGO هو آلية التفاوض التي تقرر بروتوكول المصادقة الذي سيتم استخدامه.

Cliente                          Servidor
  │                                │
  │──── SPNEGO Negotiation ────────►│
  │     MechTypeList:               │
  │     [Kerberos, NTLM, NEGOEX]    │
  │                                │
  │◄─── Selected Mechanism ─────────│
  │                                │
  │──── Auth Exchange ─────────────►│  ← overflow هنا في NEGOEX

NEGOEX هو آلية التوسعة داخل SPNEGO — تسمح بتفاوض مصادقات PKU2U (نظير إلى نظير) وآليات مخصصة أخرى. تقع الثغرة في الدالة ntoskrnl!SpnegoHandleExtended، التي تعالج هياكل SPNEGO_TOKEN كبيرة الحجم مرسلة في أجزاء متعددة، مما يسبب تجاوزًا في كومة النواة.

لماذا يضخم PKU2U المخاطر؟

الخطر مرتفع في الأنظمة التي تكون فيها سياسة المجموعة "Network security: Allow PKU2U authentication requests to this computer to use online identities" مفعلة. هذا الإعداد، المفعل افتراضيًا في العديد من توزيعات Windows، يوسع سطح هجوم NEGOEX من خلال السماح بمصادقة نظير إلى نظير التي تنشط مسار التعليمات البرمجية الضعيف في NEGOEX على نقاط النهاية التي لن تعرضه بطريقة أخرى.


$ cat ./architecture.txt

┌─────────────────────────────────────────────────────────────────────────┐
│            CVE-2025-47981 ASSESSMENT SCRIPT — FLOW                      │
│                                                                         │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 1: Windows Version                                        │  │
│  │  Get-CimInstance Win32_OperatingSystem → .Version               │  │
│  │  السياق: يحدد البنية الدقيقة للربط مع التصحيح                    │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 2: ntoskrnl.exe Version                                   │  │
│  │  Get-Item C:\Windows\System32\ntoskrnl.exe                      │  │
│  │  المقارنة: المثبت < 10.0.14393.8246 → ضعيف                       │  │
│  │  المقارنة: المثبت ≥ 10.0.14393.8246 → تم تطبيق KB5062560         │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 3: PKU2U Registry Key                                     │  │
│  │  HKLM:\SYSTEM\...\Lsa\pku2u\AllowOnlineID                      │  │
│  │  1 → PKU2U مفعل → سطح هجوم موسع                                │  │
│  │  0 → PKU2U معطل → ناقل PKU2U مخفف                              │  │
│  │  غير موجود → التكوين الافتراضي (يُقيَّم عبر GPO)                │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 4: منافذ SPNEGO المكشوفة                                  │  │
│  │  Get-NetTCPConnection → 135, 445, 5985, 3389, 80, 443, 25      │  │
│  │  كل منفذ مفتوح = ناقل تسليم للاستغلال                            │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│                    Format-Table -AutoSize                               │
│                    (مخرجات قابلة للقراءة لتقرير اختبار الاختراق)        │
└─────────────────────────────────────────────────────────────────────────┘

$ cat ./design_decisions.md

1. التحقق من الإصدار عبر ntoskrnl.exe

$kernelPath = [System.IO.Path]::Combine($env:SystemRoot, "System32\ntoskrnl.exe")
$requiredVersion = "10.0.14393.8246"

$installedVersion = (Get-Item $kernelPath).VersionInfo.FileVersion

if ([version]$installedVersion -lt [version]$requiredVersion) {
    "ضعيف - التصحيح مفقود ($missingKB)"
}

لماذا ntoskrnl.exe وليس Get-HotFix؟

Get-HotFix يسرد التحديثات المثبتة، لكن له قيود معروفة:

  • لا يكتشف التحديثات المطبقة عبر DISM أو Windows Update في الوضع الصامت
  • قد يعرض تحديثات تمت إزالتها كموجودة في بعض السيناريوهات
  • لا يعكس الحالة الفعلية للملف الثنائي قيد التشغيل

التحقق من إصدار ntoskrnl.exe مباشرة أكثر موثوقية — الملف لا يتلقى الإصدار المُصحح إلا عندما يتم تطبيق التحديث بشكل فعلي وإعادة تشغيل النظام. النظام الذي لديه تحديث معلق لإعادة التشغيل سيظل لديه الإصدار القديم من النواة في الذاكرة.

تحويل [version]: يقارن PowerShell السلاسل النصية معجميًا افتراضيًا — "10.0.14393.8246" -lt "10.0.14393.800" سيكون $false (خطأ). التحويل إلى [version] يضمن مقارنة رقمية صحيحة لكل ثمانية (octet).

[System.IO.Path]::Combine($env:SystemRoot, ...): يستخدم SystemRoot بدلاً من C:\Windows المثبت — قابل للنقل للأنظمة المثبتة على محركات أقراص مختلفة.


2. إصدار المرجع 10.0.14393.8246

10.0.14393.xxxx  →  Windows 10 الإصدار 1607 / Windows Server 2016
         │
         └─ 8246 = البنية مع تطبيق KB5062560

لماذا هذه البنية تحديدًا؟

Windows Server 2016 (البنية الأساسية 14393) هو أحد أكثر البيئات حرجًا للتصحيح — مستخدم على نطاق واسع في وحدات التحكم بالمجال (DCs) وخوادم الملفات والخدمات الداخلية للشركات. الإصدار 8246 يتوافق مع بنية النواة بعد تطبيق KB5062560 (يوليو 2025).

بالنسبة لأنظمة التشغيل الأخرى، رقم البنية الأدنى المطلوب مختلف — يمكن توسيع السكربت بجدول إصدارات لكل نظام تشغيل.


3. سجل PKU2U — AllowOnlineID

$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\pku2u"
$regName = "AllowOnlineID"

ماذا يتحكم هذا المفتاح؟

تؤثر الثغرة بشكل أساسي على الأنظمة التي تكون فيها سياسة المجموعة "Allow PKU2U authentication requests to this computer to use online identities" مفعلة افتراضيًا، وهذا هو الحال لـ Windows 10 الإصدار 1607 فما فوق.

تنزيل الأداة