کاربران RDP در معرض آسیبپذیریهای متعددی قرار دارند که به مهاجمین اجازه میدهند تا جهت معمول ارتباط را تغییر داده و از سرور به Client اتصال ایجاد کنند. محققان امنیتی Check Point، تا کنون 25 آسیبپذیری که 16 عدد از آنها آسیبپذیریهای بزرگی بودند را شناسایی کردهاند. با استفاده از آسیبپذیری اجرای کد بصورت از راه دور یا RCE و آسیبپذیری خرابی حافظه، مهاجم میتواند از سرور به Client متصل شود، محققان این نوع حمله را RDP معکوس یا Reverse RDP نامیدهاند.
RDP Client توسط شرکت مایکروسافت ارائه گردید که مورد توجه مدیران IT و کاربران قرار گرفت. همچنین تعداد ابزار Open Source هم وجود دارد که برای برقراری ارتباط با سرورهای لینوکسی و Mac استفاده می شود. محققان با استفاده از Clientهای متن باز RDP زیر شروع به انجام آزمایشاتی کردند.
- FreeRDP: که یک نرمافزار Open Source RDP است خرابی حافظه و RCE را شامل میشود.
- Rdesktop : که یک Open Source RDP بوده و خرابی حافظه و اجرای کد Remote را شامل میشود.
- exe : که به صورت Built-in در ویندوز بوده و جهت پیمایش مسیر عبوری RDP Client آزمایش شد.
این آسیبپذیریها به مهاجمان اجازه میدهند تا به شبکه دسترسی پیدا کرده و از این اتصال برای پیشبرد بیشتر جابجایی درون سازمان استفاده کنند. در ادامه چند مثال که توسط محققان ذکر شدهاند را آوردهایم.
- حمله به یک عضو IT که به یک دستگاه کاری آلوده در شبکه شرکتی متصل میشود و بدین ترتیب سطح Permission بیشتر و دسترسی بیشتر به سیستمهای شبکه را به دست میآورد.
- حمله به یک محقق بدافزار که به یک ماشین مجازی منحصر به فرد Sandbox شده که شامل یک نرمافزار مخرب آزمایش شده است، متصل است. این امر موجب فرار بدافزار از گودال Sandbox و نفوذ آن به شبکه شرکتی میشود.
Clientهای RDP
در هنگام تجزیه و تحلیل rdesktop v1.8.3، محققان بازرسی در مجموع 19 آسیبپذیری که 11 مورد از آنها بحرانی هستند، پیدا کردند. با ترکیب چندین آسیبپذیری در کانالهای مختلف منطقی، آسیبپذیری اجرای کد Remote به وجود میآید. محققان یکی دیگر از RDP Clientهای متن باز، FreeRDP v2.0.0-rc3، را بررسی کرده و 6 آسیبپذیری که از 5 عدد از آنها حیاتی هستند را شناسایی کردهاند. همچنین FreeRDP دارای آسیبپذیریهای مشابه rdesktop نیز میباشد. طبق گفتهی محققان، یک تحلیل دیگر نشان داد که NeutrinoRDP RDP Client یک شاخه از نسخههای قدیمیFreeRDP مانند نسخه 1.0.1 میباشد و بنابراین به احتمال زیاد دارای آسیبپذیریهای مشابه میباشد.
RDP Client بعدی که توسط محققان مورد تجزیه و تحلیل قرار گرفت، mstsc.exe مختص به مایکروسافت Build 18252.rs بود، محققان تمام دلایل وجود آسیبپذیری در Clientهای متن باز با سرویس گیرنده RDP را با Client مایکروسافت آزمایش کردند و هیچگونه Crashی مشاهده نگردید و برنامه بدون خطر بسته میشد. آنها به این نتیجه رسیدند که پیادهسازی مایکروسافت بسیار بهتر از پیادهسازیهایی است که قبلا آزمایش شده است و به نظر میرسد کدهای مایکروسافت چندین مرتبه بهتر میباشند.
اما Client RDP مایکروسافت به حمله Path-Traversal آسیبپذیر میباشد، که توسط مهاجمان در هنگام استفاده از کارکردهای Clipboard قابل استفاده است.
آسیبپذیری پیمایش مسیر
هنگامیکه یک Client RDP متصل به یک سرور مخرب از Copy و Paste استفاده کند، سرور مخرب میتواند فایلهای دلخواه را به مکانهای دلخواه بر روی رایانه Client منتقل کند. این بخش با توجه به دلایل وجود آسیبپذیریهای منتشر شده توسط Check point میباشد.
به سادگی برنامهی rdpclip.exe بسته میشود و فایل اجرایی ایجاد شده را در حمله پیمایش مسیر با اضافه کردن یک فایل مخرب اضافی به هر عملیات Copy و Paste انجام میگیرد. این حملات با دسترسیهای کاربر انجام میشوند و مهاجم به داشتن هیچگونه اجازهی سیستم و یا هر گونه اجازه دسترسی بالاتر نیاز نخواهد داشت.
همه این آسیبپذیریها توسط Check point به ارائه دهندگان گزارش شده و Patchهایی توسط ارائهدهندگان منتشر شدند. محققان به گزارش خود به این صورت پایان دادند: “در طول تحقیقاتمان، آسیبپذیریهای بحرانی متعددی را در Clientهای RDP مورد آزمایش یافتیم. اگر چه کیفیت کدهای Clientهای مختلف، متفاوت است، همانطور که میتوان با مشاهده نحوه توزیع شدن آسیبپذیریهای یافته شده برداشت کرد، ما استدلال میکنیم که پروتکل Remote Desktopبسیار پیچیده و مستعد آسیبپذیر بودن میباشد.”