RDP یکی از قابلیت های پر کاربرد ویندوز میباشد و طوری طراحی شده است تا برای مدیران، مهندسان و کاربران، دسترسی از راه دور به سیستم را فراهم آورد. اخیرا هکرها از این تکنولوژی برای اهداف مخرب استفاده نمودهاند و این روند ادامه دارد، چرا که معمولاً شناسایی یک حملهی RDP، از شناسایی یک Backdoor سختتر است.
هکرها همچنان استفاده از RDP را بهدلیل داشتن مزایای ثابت و کارکرد آن در قیاس با Backdoorهای غیر گرافیکی که میتوانند ردپاهای ناخواسته بر روی سیستم بهجا بگذارند، ترجیح میدهند. این امر به هکرها اجازه میدهد که به سرور Remoteی که توسط فایروال بلاک شده است اتصال برقرار کرده و از این اتصال بهعنوان یک مکانیزم انتقال جهت Tunnel نمودن سرویسهای محلی شنود از طریق فایروال استفاده کنند که موجب میشود این سرویسها، در دسترس سرور Remote قرار بگیرند.
Network Tunneling و Port Forwarding از Pinholeهای فایروال سوء استفاده میکنند. Pinholeها پورتهایی هستند که تحت حفاظت فایروال نمیباشند و به برنامهی کاربردی اجازه میدهند که در شبکهی محافظتشده توسط فایروال، به سرویسی برروی یک هاست دسترسی پیدا کند. هکرها با بهره از این امر، اقدام به برقراری اتصال با سرور Remoteی مینمایند که توسط فایروال بلاک شده است.
پس از اینکه اتصال با سرور Remote از طریق فایروال برقرار شد، میتوان از آن بهعنوان یک مکانیزم انتقال برای ارسال یا Tunnel کردن سرویسهای محلی شنود که در درون فایروال واقع شدهاند، از طریق فایروال استفاده کرد و آنها را در دسترس سرور Remote که خارج از فایروال هستند، قرار داد.
یکی از ابزارهایی که برای حملات Tunnel RDP استفاده میشود، PuTTY Link یا Plink است که به مهاجمان اجازه میدهد اتصالات Secure Shell یا SSH امن با دیگر سیستمها برقرار کنند. از آنجایی که بسیاری از محیطهای IT یا پروتکلها را بررسی نمیکنند و یا ارتباطات SSH خارج از شبکهی خود را بلاک نمینمایند، مهاجمان میتوانند از این ابزار جهت ایجاد Tunnelهای رمزگذاریشده استفاده کرده و اتصالات RDP با سرور Command and Control یا C&C برقرار نمایند.
RDP Tunneling ورودی، ابزار رایجی است که جهت Tunnel نمودن Sessionهای RDP از آن استفاده میشود، PuTTY Link است که معمولاً با نام Plink شناخته میشود.
شکل فوق گذر از فایروال سازمانی با استفاده از RDP و Network Tunneling با SSH را نشان میدهد.
در شکل مثال RDP Tunnel موفقیتآمیز که با استفاده از Plink ساخته شده، نمایش داده شده است.
مثال فوق Port Forwarding موفقیتآمیز از جانب سرور C2 مهاجم به سمت سیستم قربانی نشان داده شده است.
Jump Box Pivoting
RDP نه تنها ابزاری بینقص برای دسترسی خارجی به سیستمهای آلودهشده میباشد، بلکه میتوان از RDP Sessionها را میان چندین سیستم Daisy Chain نمود تا بتوان بهصورت عرضی نیز در یک شبکه حرکت کرد. محققان FireEye شاهد این بودند که مهاجمان با استفاده از دستور Native Windows Network Shell یا netsh، از RDP Port Forwarding بهعنوان راهی به منظور دسترسی به بخشهایی تازهی از شبکه که فقط از طریق یک Admin Jump Box قابل دسترسی هستند، استفاده مینمایند.
بهعنوان مثال، یک مهاجم میتواند Jump Box را طوری پیکربندی کند که جهت دریافت ترافیک ارسالی از جانب سیستمی که قبلاً آلوده شده است، به یک Port دلخواه گوش دهد. سپس ترافیک مستقیماً از طریق Jump Box و با استفاده از هر پورت مشخصی از جمله پورت پیشفرض RDP Port TCP 3389، به هر سیستم موجود در شبکهی Segmented، ارسال خواهد شد.
طریقهی جلوگیری از RDP Tunneling
درصورتی که RDP فعال باشد، مهاجمان میتوانند بهصورت عرضی در محیط حرکت کرده و از طریق Tunneling یا Port Forwarding اقداماتی انجام دهند. جهت رفع این آسیبپذیری و شناسایی اینگونه حملات مبتنی بر RDP، سازمانها باید بر مکانیزمهای جلوگیری و شناسایی مبتنی بر هاست و مبتنی بر شبکه تمرکز داشته باشند.
- Remote Desktop Service: این سرویس باید برروی تمام Workstationها و سیستمهایی که نیازی به اتصال Remote ندارند، غیرفعال گردد.
- فایروالهای مبتنی بر Host: باید Ruleهای فایروالهای مبتنی بر هاست فعال گردند که صریحاً اتصالات ورودی RDP را رد میکنند.
- حسابهای کاربری محلی: با فعالسازی تنظیم امنیتی Deny Log-On Through Remote Desktop Service، میتوان استفاده از RDP از طریق حسابهای کاربری محلی موجود برروی Workstationها جلوگیری کرد.