#React Server Components to #RCE
بی مقدمه میرم سراغ ابعاد فنی، خب در ویژگی React Server Components که Next.js هم با نام App Router از آن استفاده میکند، یک پروتکل با نام Flight وجود دارد که وظیفه اجرای درخواست های سمت کاربر در خصوص Components هایی که در سمت سرور وجود دارد را داشته و بعد از Render کردن میبایست نتیجه را به سمت کاربر دوباره بازگشت دهد.

یعنی وقتی سمت کاربر نیاز به انجام یک Server Function دارد آنرا بصورت Serialize به سمت سرور ارسال کرده و RSC اقدام به Deserialize کردن Payload ارسالی میکند، که در تصویر پست جایی که FlightReplayServer قرار دارد مقادیر سمت کاربر بواسطه تابع requireModule(metadata) در حال دریافت است بدون هیچ چک امنیتی!

حالا مهاجم نیاز دارد تا به توابعی دسترسی پیدا کند که امکان دادن کد به آنها را دارد، برای اینکار از Prototype Pollution استفاده کرده که به معنی مخدوش کردن نمونه اولیه است، یعنی مهاجم یک property برای PP حساسی مانند Function تعریف میکند که یک کد RCE است و RSC هم هیچگونه تصدیق امنیتی روی property انجام نمیدهد.

POC
@Unk9vvN
#RDP #Hardening #Windows #Servers
در صورتی که نیاز به مقاوم سازی پروتکل RDP دارید میتونید از اسکریپت زیر استفاده کنید که در سطح متوسط و بدون نیاز به برنامه جانبی، مقاوم سازی هایی رو روی هر نسخه ای از ویندوز سرور میتونه انجام بده که بسیاری از حملات رو پیش گیری میتونه که مواردیش رو زیر اشاره کردیم.

1.اعمال سیاست‌های امنیتی هسته‌ای RDP
2.سخت‌سازی پروتکل‌های TLS/SSL
3.مقاوم‌سازی NTLM و CredSSP
4.کاهش قابلیت Fingerprinting سرویس RDP
5.کنترل و محدودسازی زمان نشست‌های RDP
6.اعمال سیاست‌های قفل حساب کاربری و رمز عبور
7.محروم‌سازی حساب Administrator داخلی از دسترسی RDP
8.پیکربندی پیشرفته ثبت رویدادهای RDP
9.پیاده‌سازی مکانیزم مقابله با حملات Brute-Force مشابه Fail2Ban
10.ایجاد خودکار حساب کاربری RDP در صورت نیاز
11.فعال سازی دیواره آتش سیستم عامل

این اسکریپت کاربر پیشفرض Administrator رو غیر فعال کرده و یک کاربر در گروه Remote Desktop Users با سطح دسترسی ادمین بطور تصادفی ساخته و تحویل شما میده تا با نام کاربری و رمز منحصر به فرد خود متصل شوید.

gist.github.com/a9v8i/ab68729babf9614c141cec328ac5ac86
@Unk9vvN