در مقالهی پیشین، یک نمونه از آسیبپذیریهای مربوط به Microsoft Exchange با نام Proxy Oracle را بررسی کردیم. در ادامه به بررسی دو آسیبپذیری دیگر با عنوان Proxy Logon و Proxy Token میپردازیم.
آسیبپذیری ProxyLogon:
آسیبپذیری ProxyLogon با شناسهی CVE-2021-26855 شناخته میشود و مهاجم میتواند نقش admin را برای خود در سرور ایجاد کند. به منظور اکسپلویت موفق، اکسپلویت این آسیبپذیری با نقاط ضعف دیگر مانند CVE-2021-27065 ترکیب میشود تا حملهی RCE با موفقیت انجام شود. درنتیجه، مهاجم ناشناس امکان اجرای کد دلخواه را دارد.
طبق تحقیقات DEVCORE با بررسی اکوسیستم Microsoft، سرویس Exchange کاربران بسیاری دارد و از این رو، در صورت سوءاستفاده، منجر به افشای اطلاعات محرمانه برای اشخاص و شرکتهای زیادی میشود.
نحوهی بازتولید آسیبپذیری CVE-2021-26855:
- مسیر آسیبپذیری:
https://example:443/owa/auth/x.js
- ارسال ریکوئست مسیر آسیبپذیری به repeater از نرمافزار Burp Suite
- تغییر ریکوئست مسیر آسیبپذیری
- اضافهکردن Burp Collaborator URL در کوکی X-AnonResource-Backend و سپس ارسال آن به سمت سرور
اثر این CVE افشای اطلاعات شبکهی داخلی است که درنهایت منجر به دانلود ایمیل کاربران سایت میشود.
همچنین برای سوءاستفاده از این آسیبپذیری اسکریپتهای متنوعی به زبان پایتون نوشته شدهاند که در github منتشر شدهاند. برای مثال:
- https://github.com/praetorian-inc/proxylogon-exploit/blob/main/exploit.py
- https://github.com/herwonowr/exprolog
آسیبپذیری ProxyToken:
Microsoft Exchange دارای دو بخش است:
- بخش front-end که برای احرازهویت کاربر برای دسترسی به حساب ایمیل است.
- بخش back-end که توابع احرازهویت (authentication) را مدیریت میکند.
بخش front-end تنها یک proxy برای اتصال به back-end است و برای دسترسی از فرم احراز هویت صفحاتی مانند owa/auth/logon.aspx استفاده میگردد.
در تمام ریکوئستهای post-authentication نقش اصلی front-end در این مرحله repackage کردن ریکوئستها و ارسال آنها به endpoints به Exchange Back End است. مشکل اصلی در بخش Delegated Authentication وجود دارد. ویژگی این بخش ارسال مستقیم ریکوئست احرازهویت front-end به back-end است. همچنین این ریکوئستها دارای کوکی SecurityToken هستند. ولی Exchange نیازمند مشخصبودن تنظیم دقیق back-end برای بررسی احرازهویت است. در حالی که ماژولی که وظیفه این کار را دارد، در حالت پیشفرض بارگذاری نمیشود.
هرزمانی که front-end کوکی SecurityToken را مشاهده میکند، میداند که back-end مسئول ریکوئستهای احرازهویت است. ولی back-end نسبت به این موضوع ناآگاه است. DelegatedAuthModule در بارگذاری اجرا نمیشود و ریکوئستهای با SecurityToken در back-end برای استفاده از ویژگی تنظیمات ماژول delegated تنظیم نشدهاند. در نتیجه، ریکوئستهای ناشناس سمت back-end پردازش میشوند. از دیدگاه مهاجم، این نقص امکان شنود ایمیلهای قربانی را فراهم میکند. با استفاده از این آسیبپذیری، مهاجم ناشناس امکان تغییر تنظیمات mailboxes برای کاربر دلخواه را دارد. در نتیجه، مهاجم امکان کپی برداری و ارسال آنها به ایمیل دلخواه از تمام محتویات ایمیل را دارد.
سناریو اکسپلویت از ProxyToken:
برای سوءاستفاده از این آسیبپذیری، مهاجم نیاز به داشتن ایمیل روی سرور قربانی Microsoft Exchange دارد. ولی اگر مدیر سیستم اجازه forwarding با هر اینترنتی را بدهد، برای سوءاستفاده از اکسپلویت نیازی به اعتبارنامه Exchange نیست. در بعضی از موارد، زمان نصب Microsoft Exchange، مدیر سیستم متغیرهای global configuration در بستر اینترنت تعریف میکند و در این سناریو مهاجم نیازی به فرایند احرازهویت ندارد. با توجه به اینکه مسیر entire /ecp [Exchange Control Panel] تحت اثر این آسیبپذیری قرار میگیرد، اکسپلویتهای مختلفی برای سوءاستفاده از این آسیبپذیری در اینترنت وجود دارد.
این آسیبپذیری زمانی پیدا شد که آسیبپذیری Proxy Logon نقاط ضعف Microsoft Exchange را افشا کرد. برای سوءاستفاده از این آسیبپذیری از CVEهای زیر استفاده میشود:
- CVE-2021-26855
- CVE-2021-26857
- CVE-2021-26858
- CVE-2021-27065
و با استفاده از pre-authentication مهاجم حملهی RCE را اجرا میکند.