
آیا دادههای سازمان شما واقعاً امن هستند؟ در حالی که محیطهای مدرن ویندوز به پروتکل قدرتمند Kerberos درون Active Directory متکی هستند، یک روش احراز هویت قدیمی در زیر سطح پنهان شده و خطر شدیدی ایجاد میکند: NTLM.
بسیاری از سیستمها و برنامههای حیاتی هنوز برای احراز هویت به پروتکل قدیمی NTLM)New Technology LAN Manager( وابسته هستند. این وابستگی یک بردار حمله اولیه ایجاد میکند که مهاجمان سایبری میتوانند از آن برای به دست آوردن یک جای پای ویرانگر در شبکه شما سوء استفاده کنند.
در [نام آژانس شما]، تیمهای تست نفوذ ما به طور مداوم دریافتند که حملات NTLM Relay یکی از موثرترین تکنیکها برای افزایش امتیازات و حرکت جانبی در یک شبکه هستند. این راهنما نحوه عملکرد NTLM و مهمتر از آن، نحوه سوء استفاده مهاجمان از آن را از طریق حملات Relay تشریح میکند تا به شما در درک و کاهش این تهدید بحرانی توانایی ببخشد.
در این راهنما:
- احراز هویت NTLM چیست؟
- مکانیک NTLM: نحوه کار Handshake
- NTLMv1 در مقابل NTLMv2: درک Evolution
- سوء استفاده از flaw: حملات NTLM Relay چگونه کار میکنند
- زنجیره حمله در دنیای واقعی: از مسمومیت LLMNR تا سازش دامنه
- محدودیتها و چالشهای مدرن برای مهاجمان
- نحوه محافظت از سازمان شما: بهترین روشها
احراز هویت NTLM چیست؟
NTLM مجموعهای از پروتکلهای احراز هویت است که توسط مایکروسافت توسعه داده شده است. این یک مکانیسم Challenge-Response است که به یک کلاینت اجازه میدهد هویت خود را برای یک سرور ثابت کند بدون اینکه رمز عبور واقعی خود را از طریق شبکه ارسال کند. این به عنوان “اثبات دانش صفر” شناخته میشود.
اگرچه تا حد زیادی توسط پروتکل امنتر Kerberos جایگزین شده است، اما NTLM برای سازگاری عقبگرد با سیستمها و برنامههای Legacy فعال باقی مانده است. این پروتکل در پروتکلهای همهجا حاضر مانند SMB (اشتراکگذاری فایل)، HTTP، LDAP و SQL ادغام شده است که آن را به یک جزء ubiquitous و اغلب اجتنابناپذیر از شبکههای شرکتی تبدیل میکند.
مکانیک NTLM: نحوه کار Handshake
جریان احراز هویت NTLM یک فرآیند سه مرحلهای است:
- Negotiation: کلاینت یک اتصال به سرور آغاز میکند.
- Challenge: سرور یک رشته تصادفی (the “challenge”) تولید کرده و برای کلاینت میفرستد.
- Response: کلاینت این challenge را با استفاده از یک هش از رمز عبور کاربر (the “NT hash”) رمزگذاری میکند و این response رمزگذاری شده را به سرور برمیگرداند.
سرور عملیات یکسانی را انجام میدهد. اگر نتایج مطابقت داشته باشند، دسترسی اعطا میشود. ضعف بحرانی در اینجا این است که این entire exchange به صورت متن واضح (clear text) منتقل میشود که به هر مهاجمی که بتواند ترافیک را رهگیری کند اجازه میدهد challenge و response را ببیند.
NTLMv1 در مقابل NTLMv2: درک Evolution
- NTLMv1: این نسخه قدیمی از یک الگوریتم رمزگذاری ضعیف (DES) استفاده میکند و بسیار آسیبپذیر است. response (هش Net-NTLMv1) اغلب میتواند crack شود تا رمز عبور اصلی را در زمانی به طور ترسناکی کوتاه آشکار کند.
- NTLMv2: این نسخه برای رفع این flaws معرفی شد و به طور قابل توجهی قویتر است. از HMAC-MD5 استفاده میکند و یک challenge سمت کلاینت و یک timestamp را شامل میشود که cracking آفلاین را دشوارتر کرده و integrity پیام را فراهم میکند. با این حال، هنوز هم در برابر حملات Relay آسیبپذیر است.
در حالی که NTLMv2 یک پیشرفت بزرگ است، flaw معماری اصلی – توانایی رهگیری و relay کردن دنباله احراز هویت – در هر دو نسخه باقی میماند.
سوء استفاده از flaw: حملات NTLM Relay چگونه کار میکنند
یک حمله NTLM Relay شکلی از حمله Man-in-the-Middle (MitM) است. به جای صرفاً رهگیری handshake احراز هویت برای crack کردن آن به صورت آفلاین، مهاجم credentialها را به صورت real-time به یک سرویس هدف relay میکند و به طور موثر قربانی را جعل میکند.
playbook مهاجم به این صورت است:
- موقعیتیابی: خود را در یک موقعیت MitM در شبکه قرار دهد (مثلاً از طریق ARP spoofing یا protocol poisoning).
- اجباری کردن احراز هویت: یک ماشین قربانی را مجبور کند تا یک تلاش احراز هویت NTLM را به سمت مهاجم آغاز کند.
- رهگیری و Relay: تلاش احراز هویت قربانی را به یک سرور هدفمند (مثلاً یک سرور فایل SMB) forward کند.
- جعل هویت و اجرا: در صورت موفقیت، مهاجم روی سرور هدف به عنوان کاربر قربانی authenticated شده و میتواند commands را اجرا کند، hashها را dump کند یا داده بدزدد.
زنجیره حمله در دنیای واقعی: از مسمومیت LLMNR تا سازش دامنه
در طول تستهای نفوذ داخلی ما، اغلب تکنیکها را برای نشان دادن ریسک بحرانی زنجیره میکنیم. در اینجا یک سناریوی رایج وجود دارد:
- جای پای اولیه: یک مهاجم ابزاری مانند
Responderرا برای مسموم کردن درخواستهای LLMNR/NetBIOS اجرا میکند. هنگامی که کاربر یک مسیر شبکه را اشتباه تایپ میکند (مثلاً\\file-sharr)، workstation او یک درخواست resolve نام broadcast میکند. - پاسخ مسموم: ماشین مهاجم به broadcast پاسخ میدهد و ادعا میکند سرور مورد نظر است. این workstation کاربر را فریب میدهد تا یک احراز هویت NTLM با مهاجم آغاز کند.
- Relay: به جای پاسخ مستقیم، مهاجم از ابزاری مانند
ntlmrelayxاستفاده میکند تا این تلاش احراز هویت را به یک سرویس SMB آسیبپذیر و unsigned روی یک سرور شرکتی دیگر که در طول reconnaissance شناسایی شده است، forward کند. - Payload: relay موفقیتآمیز است. مهاجم اکنون یک session authenticated روی سرور هدف دارد. اگر کاربر قربانی روی آن سرور دارای حقوق local admin باشد، مهاجم میتواند از SMBexec برای اجرای commands و به دست آوردن یک shell کامل از راه دور استفاده کند که اغلب از نرمافزار آنتیویروس عبور میکند.
- سازش دامنه: از این shell، مهاجم میتواند password hashها را از حافظه (LSASS) dump کند. اغلب، اینها شامل credentialهای یک Domain Administrator میشود که منجر به سازش کامل محیط Active Directory میشود.
محدودیتها و چالشهای مدرن برای مهاجمان
در حالی که potent هستند، این حملات پیشنیازهایی دارند که میتوان آنها را کاهش داد:
- امضای SMB: سرورهای مدرن ویندوز اغلب به طور پیشفرض require SMB signing دارند که حملات SMB relay را مسدود میکند.
- EPA برای HTTPS: Extended Protection for Authentication (EPA) میتواند از سرویسهای وب در برابر relay محافظت کند.
- تفکیک شبکه: محدود کردن ترافیک broadcast و تفکیک شبکهها میتواند توانایی مهاجم برای دستیابی به یک موقعیت MitM را مختل کند.
با این حال، مهاجمان با استفاده از تکنیکهای “اجباری کردن احراز هویت” (Coerced Authentication) (مثلاً از طریق PetitPotam) که domain controllers و سایر سیستمها را مجبور میکند به سمت آنها authenticate شوند، adapt میکنند و نیاز به اقدام خودجوش کاربر را دور میزنند.
نحوه محافظت از سازمان شما: بهترین روشها
حذف کامل این ریسک requires یک استراتژی دفاع لایهای:
- حذف NTLM در صورت امکان: موثرترین راهکار. دامنه خود را برای استفاده از NTLM audit کنید (
Event ID 4624و4648در لاگهای Windows Security) و برای غیرفعال کردن آن از طریق Group Policy کار کنید تا استفاده از Kerberos را اجبار کنید. - فعال کردن امضای SMB: امضای SMB را روی تمام سرورها enforce کنید. این یک کاهش اولیه است که SMB relay را بیاثر میکند.
- غیرفعال کردن پروتکلهای Legacy: پروتکلهای LLMNR و NetBIOS over TCP/IP را در تمام endpointها غیرفعال کنید اگر به طور стрمیمی مورد نیاز نیستند.
- پیادهسازی تفکیک شبکه: surface حمله را با تفکیک شبکهها برای محدود کردن توانایی مهاجم برای گوش دادن به ترافیک broadcast و relay بین subnetها کاهش دهید.
- اعمال کنترل دسترسی شبکه (NAC): NAC میتواند از پیوستن دستگاههای غیرمجاز به شبکه و قرار دادن خود در موقعیت برای حملات MitM جلوگیری کند.
- رعایت اصل کمترین امتیاز: به شدت به اصل least privilege پایبند باشید. یک کاربر relay شده با حقوق کاربری استاندارد risk بسیار کمتری نسبت به کاربری دارد که روی سرورهای حیاتی دارای حقوق local admin است.