رضا اردانه
۱۹ خرداد ۱۴۰۴

رفع مشکل Nested VM در Workstation

۰ دیدگاه
مقاله آموزشی
4/5 - (6 امتیاز)

ممکن است در زمان پیاده سازی محیط Nested Host توسط ابزار VMware Workstation در سیستم عامل های کلاینت مانند ویندوز 11 با خطای failed to start the virtual machine به دلیل عدم امکان استفاده از ویژگی مجازی سازی پردازنده یا Virtualized Intel VT-x/EPT روبرو شده باشید. در صورتیکه پردازنده شما از این ویژگی بهره میبرد و از پیکربندی BIOS خود جهت فعال بودن این ویژگی مطمئن هستید، به احتمال زیاد مشکل پیش آمده مربوط به ویژگی Credential Guard می باشد که می بایست غیرفعال شود.

ویژگی Credential Guard چیست؟

ویژگی Credential Guard یکی از فناوری‌های امنیتی مایکروسافت در ویندوز 10 و 11 (نسخه‌های Enterprise و Education) است که هدف اصلی آن محافظت از اعتبارنامه‌ های ورود (Credentialها) کاربران در برابر سرقت و سوءاستفاده است. Credential Guard از Virtualization-Based Security (VBS) برای ایزوله‌سازی فرآیندهایی استفاده می‌کند که اعتبارنامه‌های حساس، مانند توکن‌های Kerberos و هش‌ های NTLM را مدیریت می‌کنند. در حالت عادی، پراسس lsass.exe اعتبارنامه‌ها را در حافظه‌ی اصلی سیستم نگه می‌دارد. ابزارهای نفوذ میتوانند این اطلاعات را از سطح مموری استخراج کنند و جهت نفوذ به سیستم از آنها استفاده نمایند، اما وقتی Credential Guard فعال است، lsass.exe در Virtual Secure Mode (VSM) اجرا می‌شود، که بخشی از حافظه سیستم است که تنها توسط hypervisor ویندوز (Hyper-V) قابل دسترسی است، حتی اگر مهاجم به سطح SYSTEM در ویندوز دسترسی پیدا کند، نمی‌تواند به حافظه‌ی Credential Guard دسترسی داشته باشد.

حال وقتی Credential Guard یا Memory Integrity فعال باشند، سیستم عامل ویندوز به‌ طور خودکار ویژگی Hyper-V را فعال میکند، حتی اگر این ابزار به صورت ظاهری نصب نباشد. این موضوع سبب خواهد شد که کنترل سخت‌افزار مجازی ‌سازی (VT-x یا AMD-V) در انحصار Hyper-V باقی بماند و سایر ابزارها مانند VMware Workstation از این ویژگی نتوانند استفاده کنند. مواردی که باید در ادامه مسیر غیرفعال شوند:

 

  • Hyper-V
  • Credential Guard
  • Memory Integrity
  • VBS
  • Device Guard

به چه طریقی متوجه شویم که Hyper-V یا Credential Guard فعال می باشد:

با استفاده از دستور msinfo32 در CMD میتوانید اطلاعات مربوط به سیستم خود را مشاهده کنید، یکی از این اطلاعات با عنوان Virtualization-Based Security می باشد که در صورتیکه که در حالت Running قرار داشته باشد به معنای فعال بودن این ویژگی است.

جهت غیرفعالسازی این گزینه مراحل زیر را طی میکنیم. هشدار: سیستم پس از این تغییرات در برابر حملاتی مانند dump کردن اطلاعات LSASS آسیب پذیر خواهد شد.

مرحله ۱: غیرفعال‌سازی Credential Guard از طریق رجیستری

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

این مسیر، محل نگهداری تنظیمات مربوط به فرآیند امنیتی LSA (Local Security Authority) است که بخشی از امنیت داخلی ویندوز را فراهم می‌کند. Credential Guard مستقیماً در این بخش کنترل می‌شود. کلید: LsaCfgFlags با نوع REG_DWORD و مقدار 0، اجرای Credential Guard در سطح کرنل و VSM را غیرفعال میکند. مقدار 1 یا 2 به ترتیب برای اجرای عادی یا Enforced استفاده می‌شود.

مسیر رجیستری دوم:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard

این مسیر برای سیاست‌های دستگاه (Device Guard) است که ممکن است توسط Group Policy تنظیم شده باشد. Credential Guard نیز در دل این زیرسیستم قرار می‌گیرد. کلید: LsaCfgFlags با مقدار 0، اطمینان حاصل میکند که ویژگی Credential Guard کاملا غیرفعال شده است، زیرا در غیر این صورت ممکن است پس از ریستارت دوباره، فعال شود.

مرحله ۲: عبور از قفل UEFI با استفاده از SecConfig.efi و تنظیمات Boot Manager

فرمان زیر را در CMD اجرا کنید:

mountvol X: /s

درایو پنهان EFI (که فایل‌های بوت سیستم در آن قرار دارند) را در مسیر X: مانت می‌کند. در ادامه:

copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y

فایل SecConfig.efi که ابزاری برای پیکربندی امنیتی بوت است، در مسیر بوت کپی می‌شود تا در اجرای بعدی سیستم، تنظیمات امنیتی Credential Guard و VBS را تغییر دهد.

سپس ساخت یک بوت لودر جدید (در صورت عدم استفاده از GUID مشخص شده در این مقاله، یک مقدار توسط سیستم عامل ویندوز تولید شده و به شما نمایش داده می شود که در سایر دستورات می بایست از آن مقدار استفاده کرد):

bcdedit /create {f2dd4ba0-4103-11f0-8974-ef285307c37c} /d “DebugTool” /application osloader

یک ورودی جدید در Boot Manager با شناسه مشخص ساخته می‌شود که در بوت بعدی اجرا خواهد شد.

تعیین مسیر فایل EFI:

bcdedit /set {f2dd4ba0-4103-11f0-8974-ef285307c37c} path “\EFI\Microsoft\Boot\SecConfig.efi”

بوت لودر جدید طوری پیکربندی می‌شود که SecConfig.efi را اجرا کند.

در ادامه به تنظیم پارامترهای امنیتی میرسیم:

bcdedit /set {bootmgr} bootsequence {f2dd4ba0-4103-11f0-8974-ef285307c37c}

bcdedit /set {f2dd4ba0-4103-11f0-8974-ef285307c37c} loadoptions DISABLE-LSA-ISO

bcdedit /set {f2dd4ba0-4103-11f0-8974-ef285307c37c} device partitio

پارامتر DISABLE-LSA-ISO باعث غیرفعال‌سازی اجرای ایزوله LSA (یعنی Credential Guard) در بوت بعدی می‌شود.

در انتها حذف درایو موقت EFI:

mountvol X: /d

پس از اعمال تغییرات، پارتیشن EFI از ویندوز جدا می‌شود.

مرحله ۳: غیرفعال‌سازی VBS از طریق رجیستری

حذف کلیدهای رجیستری زیر:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\EnableVirtualizationBasedSecurity

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\RequirePlatformSecurityFeatures

این کلیدها مستقیماً VBS را فعال یا تنظیم می‌کنند. با حذف آن‌ها، سیستم دیگر درخواست اجرای VBS نمی‌دهد، و زیرسیستم‌های امنیتی ایزوله‌شده مانند Credential Guard از بین می‌روند.

مرحله ۴: اعمال تنظیمات Boot برای غیرفعال‌سازی نهایی و کامل LSA ایزوله و VBS:

bcdedit /set {f2dd4ba0-4103-11f0-8974-ef285307c37c} loadoptions DISABLE-LSA-ISO,DISABLE-VBS

با استفاده از DISABLE-VBS در کنار DISABLE-LSA-ISO، به‌طور کامل مانع اجرای محیط ایزوله‌ی امنیتی ویندوز می‌شویم.

غیرفعال‌سازی VSM:

bcdedit /set vsmlaunchtype off

این فرمان به Hypervisor اطلاع می‌دهد که Virtual Secure Mode فعال نباشد.

مرحله ۵: غیرفعال‌سازی از طریق Group Policy

مسیر تنظیمات:

Computer Configuration → Administrative Templates → System → Device Guard → Turn On Virtualization-Based Security

با تنظیم این گزینه روی “Disabled”، هرگونه سیاست اجرایی در سطح سیستم برای فعالسازی VBS یا Credential Guard غیرفعال می‌شود.

مرحله ۶: غیرفعال‌سازی تنظیمات Core Isolation در رابط گرافیکی ویندوز

مسیر:

Start → Core Isolation → Turn off all options

در این مرحله باید گزینه‌هایی مثل Memory Integrity را خاموش کنید. این قابلیت نیز از Hyper-V و VBS استفاده می‌کند و تداخل ایجاد می‌کند.

مرحله ۷: غیرفعال‌سازی ویژگی‌های مجازی‌سازی ویندوز از طریق Windows Features

از پنجره Features ویندوز، تیک این گزینه‌ها را بردارید:

  • Hyper-V
  • Virtual Machine Platform
  • Windows Subsystem for Linux

با این کار، زیرساخت‌های مجازی‌سازی نرم‌افزاری که به VBS و Hyper-V وابسته‌اند نیز غیرفعال می‌شوند. از دستورات زیر جهت غیرفعالسازی این ویژگی ها نیز میتوانید استفاده کنید:

powershell.exe Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart

powershell.exe Disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

powershell.exe Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart

مرحله ۸: ریستارت و تایید تغییرات بوت:

پس از ریستارت، پیغام UEFI ظاهر می‌شود. در بوت بعدی، سیستم تشخیص می‌دهد که تنظیمات امنیتی EFI تغییر کرده‌اند. پیغامی ظاهر می‌شود که باید کلید F3 را فشار دهید و Enter کنید تا تغییرات اعمال شوند. این فرآیند برای تایید غیرفعال‌سازی Credential Guard از طریق EFI است.

 

دیدگاهتان را بنویسید

preloader