شرکتهایی که سیستمهای دسترسی از راه دور را نداشتند، چند ماه پیش فوراً آنها را مستقر کردند. همه مدیران برای چنین «گرمایی» آماده نبودند که منجر به نقصهای امنیتی شد: پیکربندی نادرست سرویسها یا حتی نصب نسخههای قدیمی نرمافزار با آسیبپذیریهای قبلاً کشفشده. برای برخی، این حذفیات قبلا بومرنگ شده است، برخی دیگر خوش شانس تر بودند، اما قطعا همه باید نتیجه گیری کنند. وفاداری به کار از راه دور به طور تصاعدی افزایش یافته است و شرکت های بیشتری کار از راه دور را به عنوان یک قالب قابل قبول به طور مداوم می پذیرند.
بنابراین، گزینه های زیادی برای ارائه دسترسی از راه دور وجود دارد: VPN های مختلف، RDS و VNC، TeamViewer و دیگران. مدیران بر اساس ویژگیهای ساخت یک شبکه شرکتی و دستگاههای موجود در آن، گزینههای زیادی برای انتخاب دارند. راه حل های VPN محبوب ترین هستند، با این حال، بسیاری از شرکت های کوچک RDS (سرویس های دسکتاپ از راه دور) را انتخاب می کنند، آنها ساده تر و سریع تر هستند.
در این مقاله بیشتر در مورد امنیت RDS صحبت خواهیم کرد. بیایید مروری کوتاه بر آسیب پذیری های شناخته شده داشته باشیم و همچنین چندین سناریو را برای حمله به زیرساخت شبکه مبتنی بر Active Directory در نظر بگیریم. امیدواریم مقاله ما به کسی کمک کند تا روی اشکالات کار کند و امنیت را بهبود بخشد.
2. آسیب پذیری های اخیر RDS/RDP
هر نرم افزاری حاوی خطاها و آسیب پذیری هایی است که می تواند توسط مهاجمان مورد سوء استفاده قرار گیرد و RDS نیز از این قاعده مستثنی نیست. مایکروسافت اخیراً به طور مکرر آسیبپذیریهای جدیدی را گزارش میکند، بنابراین تصمیم گرفتیم مروری کوتاه به آنها داشته باشیم:
این آسیب پذیری کاربرانی را که به یک سرور در معرض خطر متصل می شوند در معرض خطر قرار می دهد. یک مهاجم میتواند کنترل دستگاه کاربر را به دست بیاورد یا برای دسترسی دائمی از راه دور، جای پایی در سیستم پیدا کند.
این گروه از آسیبپذیریها به یک مهاجم تایید نشده اجازه میدهد تا با استفاده از یک درخواست طراحیشده خاص، کد دلخواه را از راه دور روی سروری که RDS اجرا میکند، اجرا کند. آنها همچنین می توانند برای ایجاد کرم ها استفاده شوند - بدافزارهایی که به طور مستقل دستگاه های همسایه را در شبکه آلوده می کنند. بنابراین، این آسیبپذیریها میتوانند کل شبکه شرکت را به خطر بیندازند و تنها بهروزرسانیهای بهموقع میتوانند آنها را نجات دهند.
نرم افزار دسترسی از راه دور توجه بیشتری را از سوی محققان و مهاجمان به خود جلب کرده است، بنابراین ممکن است به زودی در مورد آسیب پذیری های مشابه بیشتری بشنویم.
خبر خوب این است که همه آسیبپذیریها دارای اکسپلویت عمومی نیستند. خبر بد این است که برای یک مهاجم با تخصص نوشتن یک اکسپلویت برای یک آسیبپذیری بر اساس توضیحات، یا استفاده از تکنیکهایی مانند Patch Diffing دشوار نخواهد بود (همکاران ما در مورد آن نوشتند مقاله). بنابراین، توصیه می کنیم به طور منظم نرم افزار را به روز کنید و ظاهر پیام های جدید در مورد آسیب پذیری های کشف شده را نظارت کنید.
3. حملات
ما به قسمت دوم مقاله می رویم، جایی که نحوه شروع حملات به زیرساخت شبکه مبتنی بر Active Directory را نشان خواهیم داد.
روش های توصیف شده برای مدل مهاجم زیر قابل اجرا هستند: مهاجمی که یک حساب کاربری دارد و به دروازه دسکتاپ از راه دور دسترسی دارد - یک سرور ترمینال (اغلب به عنوان مثال از یک شبکه خارجی قابل دسترسی است). با استفاده از این روش ها، مهاجم قادر خواهد بود به حمله به زیرساخت ادامه داده و حضور خود را در شبکه تثبیت کند.
پیکربندی شبکه در هر مورد خاص ممکن است متفاوت باشد، اما تکنیک های توصیف شده کاملاً جهانی هستند.
نمونه هایی از خروج از محیط محدود و افزایش امتیازات
هنگام دسترسی به دروازه دسکتاپ از راه دور، مهاجم احتمالاً با نوعی محیط محدود مواجه می شود. هنگامی که به یک سرور ترمینال متصل می شوید، یک برنامه روی آن راه اندازی می شود: پنجره ای برای اتصال از طریق پروتکل Remote Desktop برای منابع داخلی، Explorer، بسته های آفیس یا هر نرم افزار دیگری.
هدف مهاجم دسترسی به اجرای دستورات، یعنی راه اندازی cmd یا powershell خواهد بود. چندین تکنیک کلاسیک فرار از جعبه شنی ویندوز می تواند به این امر کمک کند. بیایید آنها را بیشتر در نظر بگیریم.
گزینه 1. مهاجم به پنجره اتصال Remote Desktop در دروازه Remote Desktop دسترسی دارد:
منوی "نمایش گزینه ها" باز می شود. گزینه هایی برای دستکاری فایل های پیکربندی اتصال ظاهر می شوند:
از این پنجره می توانید با کلیک بر روی هر یک از دکمه های "Open" یا "Save" به راحتی به Explorer دسترسی پیدا کنید:
Explorer باز می شود. "نوار آدرس" آن امکان راه اندازی فایل های اجرایی مجاز و همچنین لیست کردن سیستم فایل را فراهم می کند. در مواردی که درایوهای سیستم مخفی هستند و نمی توان مستقیماً به آنها دسترسی داشت، می تواند برای مهاجم مفید باشد:
علاوه بر این، ماکروهای استفاده شده در این مجموعه اداری را فراموش نکنید. همکاران ما در این مورد به مشکل امنیت کلان نگاه کردند مقاله.
گزینه 2. با استفاده از ورودی های مشابه در نسخه قبلی، مهاجم چندین اتصال را به دسکتاپ راه دور تحت یک حساب کاربری راه اندازی می کند. با اتصال مجدد، اولین بسته بسته می شود و پنجره ای با اعلان خطا روی صفحه ظاهر می شود. دکمه Help در این پنجره اینترنت اکسپلورر را در سرور فراخوانی می کند و پس از آن مهاجم می تواند به اکسپلورر برود.
گزینه 3. اگر محدودیتهایی برای راهاندازی فایلهای اجرایی پیکربندی شده باشد، مهاجم ممکن است با وضعیتی مواجه شود که در آن خطمشیهای گروه مدیر را از اجرای cmd.exe منع میکند.
راهی برای حل این مشکل وجود دارد که یک فایل bat را روی دسکتاپ راه دور با محتوایی مانند cmd.exe /K <command> اجرا کنید. یک خطا هنگام شروع cmd و یک مثال موفقیت آمیز از اجرای فایل bat در شکل زیر نشان داده شده است.
گزینه 4. منع راهاندازی برنامهها با استفاده از لیستهای سیاه بر اساس نام فایلهای اجرایی، نوشدارویی نیست؛ میتوان آنها را دور زد.
سناریوی زیر را در نظر بگیرید: ما دسترسی به خط فرمان را غیرفعال کرده ایم، از راه اندازی Internet Explorer و PowerShell با استفاده از خط مشی های گروه جلوگیری کرده ایم. مهاجم سعی می کند برای کمک تماس بگیرد - پاسخی نمی دهد. تلاش برای راهاندازی powershell از طریق منوی زمینه یک پنجره مدال، که با فشار دادن کلید Shift فراخوانی میشود - پیامی که نشان میدهد راهاندازی توسط مدیر ممنوع است. تلاش میکند پاورشل را از طریق نوار آدرس راهاندازی کند - باز هم پاسخی دریافت نمیشود. چگونه محدودیت را دور بزنیم؟
کافی است powershell.exe را از پوشه C:WindowsSystem32WindowsPowerShellv1.0 در پوشه کاربر کپی کنید، نام را به چیزی غیر از powershell.exe تغییر دهید و گزینه launch ظاهر می شود.
به طور پیش فرض، هنگام اتصال به دسکتاپ راه دور، دسترسی به دیسک های محلی مشتری فراهم می شود، از آنجا که مهاجم می تواند powershell.exe را کپی کرده و پس از تغییر نام آن را اجرا کند.
ما فقط چند راه برای دور زدن محدودیت ها ارائه کرده ایم؛ شما می توانید سناریوهای بیشتری را ارائه دهید، اما همه آنها یک چیز مشترک دارند: دسترسی به Windows Explorer. برنامه های بسیاری وجود دارند که از ابزارهای استاندارد دستکاری فایل ویندوز استفاده می کنند و زمانی که در یک محیط محدود قرار می گیرند، می توان از تکنیک های مشابه استفاده کرد.
4. توصیه ها و نتیجه گیری
همانطور که می بینیم، حتی در یک محیط محدود نیز فضا برای توسعه حمله وجود دارد. با این حال، شما می توانید زندگی را برای مهاجم سخت تر کنید. ما توصیه های کلی ارائه می دهیم که هم در گزینه هایی که در نظر گرفته ایم و هم در موارد دیگر مفید خواهد بود.
محدود کردن برنامه به لیست های سیاه/سفید با استفاده از خط مشی های گروه.
با این حال، در بیشتر موارد، امکان اجرای کد وجود دارد. توصیه می کنیم با پروژه آشنا شوید LOLBASبرای داشتن ایده ای از روش های غیرمستند دستکاری فایل ها و اجرای کد در سیستم.
توصیه می کنیم هر دو نوع محدودیت را ترکیب کنید: برای مثال، می توانید اجازه راه اندازی فایل های اجرایی امضا شده توسط مایکروسافت را بدهید، اما راه اندازی cmd.exe را محدود کنید.
برگه های تنظیمات اینترنت اکسپلورر را غیرفعال کنید (این کار را می توان به صورت محلی در رجیستری انجام داد).
کمک داخلی ویندوز را از طریق regedit غیرفعال کنید.
اگر چنین محدودیتی برای کاربران حیاتی نیست، قابلیت نصب دیسک های محلی را برای اتصالات راه دور غیرفعال کنید.
دسترسی به درایوهای محلی دستگاه راه دور را محدود کنید و دسترسی را فقط به پوشه های کاربر واگذار کنید.
امیدواریم حداقل برای شما جالب بوده باشد و حداکثر این مقاله به ایمنتر کردن کار از راه دور شرکت شما کمک میکند.