Sploitus

Exploit for Find-WSUS

kitploit · 2026-09-03

Exploit Code

MARKDOWN205 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MUBIX-FIND-WSUS
# 🧭 Find-WSUS

**اكتشف إعدادات خوادم WSUS عبر كائنات نهج المجموعة (GPOs) — بما في ذلك تفضيلات نهج المجموعة (GPP) المخفية.**

`Find-WSUS` هي أداة PowerShell مصممة لـ **المتخصصين في الأمن ومسؤولي الأنظمة** لتحديد جميع عناوين URL لخوادم WSUS (خدمات تحديث Windows Server) المكوّنة عبر كائنات نهج المجموعة (GPOs). تكتشف الأداة الإعدادات من كلا المصدرين:

  * **قوالب النهج الإدارية (HKLM\Software\Policies)**
  * **إعدادات تفضيلات نهج المجموعة (GPP)** المخفية في تقارير XML



* * *

## ⚠️ لماذا هذا مهم

خوادم WSUS هي **أصول بنية تحتية عالية القيمة**. إذا تم اختراقها، يمكن للمهاجم نشر "تحديثات" خبيثة على جميع الأنظمة المرتبطة بالمجال، مما يؤدي إلى **اختراق المجال بالكامل**.

> 🧨 تُظهر ثغرات مثل **CVE-2025-59287** أن استغلالًا واحدًا لـ WSUS يمكن أن يمنح المهاجمين سيطرة على نطاق المجال بأكمله.

**Find-WSUS** تساعد المؤسسات على تحديد كل مصادر إعداد WSUS قبل أن يفعل المهاجمون ذلك.

* * *

## 🔍 مشكلة "WSUS المخفي"

معظم عمليات الفحص تتحقق فقط من:

root@kitploit:~
    
    
    HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
    

ولكن العديد من المؤسسات تنشر إعداد WSUS عبر **تفضيلات نهج المجموعة (GPP)** ، التي تعدّل مفاتيح التسجيل مباشرةً. هذه الإعدادات **لا تظهر** في تقارير GPMC القياسية.

✅ يكتشف `Find-WSUS` كلًا من الإعدادات القياسية والقائمة على GPP، مما يمنحك رؤية كاملة لبيئتك.

* * *

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

* * *

## ⚙️ الاستخدام

### 1\. استيراد البرنامج النصي

حمّل البرنامج النصي إلى جلسة PowerShell الخاصة بك:

root@kitploit:~
    
    
    . .\Find-WSUS.ps1
    

### 2\. تشغيل الفحص

بعد الاستيراد، تصبح الدالة `Find-WSUS` متاحة.

#### مثال 1: فحص المجال الحالي

root@kitploit:~
    
    
    Find-WSUS | Format-Table -AutoSize
    

#### مثال 2: مخرجات مفصّلة (Verbose)

عرض رسائل تقدّم مفصّلة أثناء الفحص:

root@kitploit:~
    
    
    Find-WSUS -Verbose
    

#### مثال 3: فحص مجال مختلف

root@kitploit:~
    
    
    Find-WSUS -Domain "child.mydomain.com" | Format-Table -AutoSize
    

#### مثال 4: تصفية كائنات GPO حسب الاسم

root@kitploit:~
    
    
    Find-WSUS -Name "*Server*" -Verbose
    

#### مثال 5: الحصول على قائمة فريدة بمضيفي WSUS

root@kitploit:~
    
    
    $results = Find-WSUS -Domain "mydomain.com"
    $results.Hostname | Where-Object { $_ } | Sort-Object -Unique
    

* * *

## 📦 المعاملات

* * *

## 🧠 كيف تعمل الأداة

### 1\. **التحقق من البيئة**

  * يتأكد من أن PowerShell بنسخة 64-بت.
  * يتحقق من تثبيت وحدة GroupPolicy.
  * يتأكد من إمكانية الوصول إلى كائنات GPO في المجال المحدد.



### 2\. **فحص النهج (STA Runspace)**

  * يستخدم `Get-GPRegistryValue` في **STA runspace** لتجنب أخطاء ترابط COM.

  * يفحص قيم `WUServer` و `WUStatusServer` في:

root@kitploit:~
        
        HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
        




### 3\. **فحص التفضيلات (GPP XML)**

  * يحلل مخرجات XML من `Get-GPOReport -ReportType Xml`.
  * يجد عناوين URL لـ WSUS المخفية في عُقد ذات نطاق أسماء (`q2:Registry`) وعُقد احتياطية (`*[local-name()='Registry']`).
  * يلتقط القيم المكتوبة تحت HKLM، بما في ذلك مفاتيح `...\Windows\WindowsUpdate`.



### 4\. **تجميع النتائج**

  * يدمج جميع النتائج في مجموعة بيانات واحدة.
  * يستخرج أسماء المضيفين من عناوين URL لسهولة إزالة التكرار.
  * يعيد كائنات نظيفة ومرتبة.



* * *

## 🧾 مثال على المخرجات (بالتنسيق الفعلي)

> يعكس هذا التخطيط والترويسات **الفعلية** لأمر `Format-Table -AutoSize` من `Find-WSUS`، لكن مع أمثلة واقعية للمضيفين/عناوين URL وأسماء/GUIDs لكائنات GPO.

root@kitploit:~
    
    
    PS C:\Users\Administrator\Documents> Find-WSUS | Format-Table -AutoSize
    [OK] Environment check passed: 64-bit PowerShell, GroupPolicy module loaded, GPOs accessible.
    
    
    GPOName               Scope                 Key                                                    ValueName      Value                                    Hostname              GPOGuid                              
    -------               -----                 ---                                                    ---------      -----                                    --------              -------                              
    Default Domain Policy Policy (Computer)     HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer       https://wsus.corp.contoso.com:8531       wsus.corp.contoso.com 31b2f340-016d-11d2-945f-00c04fb984f9
    Default Domain Policy Policy (Computer)     HKLM\Software\Policies\Microsoft\Windows\Windows\Update WUStatusServer https://wsus.corp.contoso.com:8531       wsus.corp.contoso.com 31b2f340-016d-11d2-945f-00c04fb984f9
    Corporate WSUS Baseline Policy (Computer)   HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer       http://wsus01.contoso.com:8530           wsus01.contoso.com    57f2e3da-33c5-4a35-abce-c12a0b7f9823
    Corporate WSUS Baseline Policy (Computer)   HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUStatusServer https://wsus01.contoso.com:8531          wsus01.contoso.com    57f2e3da-33c5-4a35-abce-c12a0b7f9823
    Workstations - Windows Update (GPP) Preference (Registry) HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate WUStatusServer https://wsus-west.contoso.com:8531   wsus-west.contoso.com a1cde8b2-7f45-43f2-9db4-9c1e93a0e5c1
    

> **ملاحظة:** في البيئات الحقيقية ستجد غالبًا SSL على `:8531` وHTTP القديم على `:8530`. أسماء المضيفين أعلاه أمثلة فقط؛ استبدلها بجردك الفعلي.

* * *

## 🚫 القيود

> [!WARNING] هذا البرنامج النصي هو **أداة اكتشاف** ، وليس نظام جرد كامل.

تكتشف **فقط** خوادم WSUS المعرّفة عبر نهج المجموعة. لا تكتشف:

  * العملاء غير المرتبطين بالمجال أو إعدادات التسجيل المكوّنة يدويًا
  * خوادم WSUS المارقة دون ارتباط بكائن GPO
  * الأنظمة المُدارة عبر نهج Intune أو SCCM



* * *

## ✅ الخطوات التالية الموصى بها

  1. شغّل `Find-WSUS` عبر **جميع المجالات** في غابتك (forest).
  2. ادمج المخرجات في جرد مركزي.
  3. قارن مع ماسح EDR أو ماسح أصول للأجهزة التي تشغّل `WSUSService`.
  4. حقّق في أي **مضيفي WSUS غير متطابقين أو غير متوقعين**.



* * *

## 🧑‍💻 المؤلف والإشادات

طُوّرت بواسطة مهندسي أمن لكشف إعدادات WSUS المخفية وتحسين رؤية البنية التحتية للتحديثات.

> 📘 المساهمات مرحّب بها! قدّم طلبات السحب (pull requests) أو المشكلات (issues) لتحسين التوافق أو إضافة طرق اكتشاف جديدة.