در این پست به بررسی آسیب پذیری حیاتی “Zerologon” به عنوان یکی از آسیب پذیری های «ارتقا سطح دسترسی» پرداخته می شود.
محققان امنیتی شرکت secura در تاریخ 11 سپتامبر 2020 از یک آسیب پذیری بحرانی کشف شده مرتبط با پروتکل Netlogon گفتند که این امکان را برای مهاجم فراهم می آورد تا حتی به عنوان یک کاربر unauthenticated در شبکه بتوانند کنترل کامل DC شبکه قربانی را به دست آورد. آسیب پذیری شناسایی شده با شناسه آسیب پذیری CVE-2020-1472 به ثبت رسیده است و از درجه حساسیت CVSS:10 برخوردار است. آسیب پذیری مذکور تحت عنوان “Zerologon” معرفی شده است.
نکته ی حائز اهمیت و خطرناکی که در آسیب پذیری مذکور به چشم می خورد امکان ارتقا سطح دسترسی یک مهاجم، حتی در صورت عدم آگاهی از یک حساب کاربری معتبر در شبکه قربانی است! به بیان دقیق تر مهاجم تنها کافی است با DC شبکه قربانی ارتباط داشته باشد، در این صورت قادر است با اجرای انواع exploit هایی که برای بهره مندی از آسیب پذیری مذکور در همین مدت کوتاه از زمان انتشار آن در دسترس عموم قرار گرفتند، بهره ببرد تا خود را به دسترسی Domain Admins شبکه قربانی ارتقا دهد.
شرکت مایکروسافت به روز رسانی ها و patch مورد نیاز برای رفع آسیب پذیری zerologon را در سری updateهای ماه آگوست ارائه داده است که برای جلوگیری از اجرای موفق حمله مذکور، می بایست مدیران و فناوران حوزه امنیت و IT نسبت به نصب هر چه سریع تر وصله امنیتی ارائه شده بر روی تمامی DC های شبکه (حتی backup ها و Read-Only ها) اقدام نمایند. وصله امنیتی ارائه شده توسط مایکروسافت، تعدادی از option های دلخواهی که پیش تر برای پروتکل Netlogon وجود داشته را برای سیستم ها اجبار کرده است و هم چنین محققان پیش بینی می کنند که مجموعه updateهای تکمیلی که در ماه فوریه سال 2021 نیز توسط مایکروسافت ارائه می شود، با تنگ تر کردن محدودیت های موجود ممکن است منجر به بروز اختلال در بسیاری از دستگاه ها و نرم افزارهای 3rd- party شود.
ریشه ی آسیب پذیری zerologon به دلیل نقص امنیتی موجود در پروتکل احراز هویت Netlogon است که برای اثبات هویت و اعتبار یک کامپیوتر عضو دامنه به DC مورد استفاده قرار می گیرد. در نتیجه ی آسیب پذیری شناسایی شده، این امکان برای مهاجم فراهم شده است تا هویت هر یک از Computer account های موجود در شبکه قربانی را با مقداردهی «تهی» برای گذرواژه ی متناظر با آن جعل نماید! سناریو خطرناکی که در این صورت می تواند اجرا شود، این است که مهاجم حساب کامپیوتری DC موجود در شبکه را بدین ترتیب جعل نماید و از سطح دسترسی آن برای اجرای حملات خود بهره ببرد!
پروتکل Netlogon به عنوان یکی از پروتکل هایی که امکان انجام یک سری فرآیندها را به صورت remote فراهم می آورد در DC وجود دارد و وظایف مختلفی را بر عهده دارد. یکی از وظایف عمده ی این پروتکل، تسهیل فرآیند احراز هویت کاربران در سرورهای مختلف است که برای این منظور از NTLM استفاده می کند. یکی دیگر از ویژگی های پروتکل Netlogon فراهم آوردن امکان تغییر مقدار گذرواژه ی یک computer account در شبکه است. پروتکل مذکور بر خلاف سایر RPC service ها از یک مکانیزم احراز هویت متفاوتی استفاده می نماید یا به عبارت دیگر، پروتکل Netlogon از یک پروتکل رمزگذاری شخصی سازی شده استفاده می کند تا این امکان را برای یک computer account و یک server فراهم آورد تا بتوانند به یکدیگر آگاهی خود را نسبت به یک مقدار مشترک secret اثبات نمایند.
شرکت امنیتی Secura در زمان انتشار پستی در خصوص آسیب پذیری zerologon، برای آگاهی مدیران از آسیب پذیر بودن یا نبودن DCهای شبکهی خود نسبت به این آسیب پذیری یک scanner ارائه داد. نمونه ای از اجرای scanner مذکور بر روی یک شبکه آسیب پذیر در تصویر زیر نمایش داده شده:
هم چنین علاوه بر scanner ارائه شده توسط شرکت Secura، ابزار Mimikatz نیز به امکان تشخیص آسیب پذیری zerologon در دو نسخه آخر خود مجهز شده است که برای این منظور می توان از دستور زیر استفاده کرد:
lsadump::zerologon /target:<target's_FQDN> /account:<Computer_Account>
نمونه ی اجرای دستور فوق را بر روی یک سیستم آسیب پذیر می توان در تصویر زیر مشاهده نمود.
هم چنین exploit های مختلفی نیز برای بهره برداری از آسیب پذیری zerologon ارائه شده است. به عنوان نمونه، ابزار Mimikatz علاوه بر امکان بررسی آسیب پذیر بودن شبکه نسبت به حمله ی zerologon می تواند آن را exploit نماید که در این پست یک نمونه از اجرای موفق آن را بررسی می کنیم.
به عنوان نمونه ای از impact آسیب پذیری zerologon می توان به اجرای موفق حمله ی DCSync اشاره کرد. DCsync به صورت خلاصه، یکی از حملاتی است که برای استخراج مقادیر NTLM hash گذرواژه object های شبکه، از درون فایل NTDS.dit، به عنوان پایگاه داده Domain Controller، مورد استفاده قرار می گیرد و برای اجرای آن مهاجم به سطح دسترسی بالایی در حد اعضای گروه Domain Admins نیاز دارد،. اما پس از معرفی آسیب پذیری zerologon، دیگر برای اجرای حملاتی مثل DCSync مهاجم نیازی به داشتن یک سطح دسترسی بالا در شبکه قربانی نخواهد داشت و تنها کافی است بتواند با DC در ارتباط باشد! بدین ترتیب مهاجم می تواند حتی بدون دانستن یک حساب کاربری معتبر از شبکه قربانی، حمله ی DCSync را با موفقیت اجرا کرده و به تمام NTLM hash اشیا موجود در شبکه قربانی دست یابد که در این مرحله می تواند با اجرای حملاتی مثل Over Pass the Hash از مقادیر NTLM شناسایی شده در سطح شبکه برای اجرای حملات آتی خود بهره ببرد!
ابزار Mimikatz این امکان را فراهم آورده که در صورت آسیب پذیر بودن یک شبکه، حمله DCSync را هم با استفاده از آسیب پذیری zerologon اجرا بکند. در تصاویر زیر، نمونه ای از اجرای حمله DCSync را به واسطه ابزار Mimikatz بر روی سیستمی که در تصویر قبلی آسیب پذیری آن نشان داده شده بود، مشاهده می کنید.
- فقط این نکته را هم در نظر داشته باشید که بعد از اجرای دستوری که تو تصویر استفاده شده، سرویس های شبکه با اختلال در سطح شبکه مواجه می شوند، چون که password حساب کامپیوتری DC تغییر می کند با اجرای این دستور!