مایکروسافت اخیرا وصله امنیتی را برای تمامی نسخه های Microsoft Exchange انتشار داده است که این وصله امنیتی یک نقص اجرای کد از راه دور (RCE) را مرتفع می سازد. این نقص به مهاجم این امکان را می دهد تا با ارسال payload دستکاری شده بتواند دستورات خود را در سرور اجرا کند. محققین اکسپلویت و کد مخرب بهره برداری از این آسیب پذیری را در تاریخ 24 فوریه 2020 منتشر کرده اند. این PoC Exploit از طریق لینک ذیل قابل دسترس می باشد.

https://github.com/Yt1g3r/CVE-2020-0688_EXP

این آسیب پذیری با شماره CVE-2020-0688  بر روی Exchange Control Panel(ECP) تاثیر گذار خواهد بود و در تمامی نسخه های Exchange Server به دلیل داشتن کلید اعتبارسنجی و الگوریتم یکسان بر روی فایل web.config صدق می کند.

آسیب پذیری بصورت authenticated می باشد و مهاجم برای اجرا نیازمند اطلاعات ورود به یک حساب کاربری می باشد.

نحوه عملکرد Exploit

ابتدا Exploit از طریق یک درخواست post از طریق /owa/auth.owa احراز هویت می شود. این درخواست post حاوی نام کاربری و رمز عبور معتبر می باشد. پس از احراز هویت موفق، Exploit از صفحه ecp/default.aspx/ درخواست می کند تا محتوای –VIEWSTATEGENERATOR و ASP.NET.SessionID را بدست آورد. با استفاده از اطلاعات به دست آمده از –VIESTATEGNERATOR این بار Exploit یک payload سریالی را که حاوی دستورات مخرب است ساخته و سپس به /ecp/default.aspx ارسال می کند.

لیست زیر صفحاتی هستند که تحت تاثیر این آسیب پذیری قرار می گیرند:

  • /ecp/default.aspx
  • /ecp/PersonalSettings/HomePage.aspx
  • /ecp/PersonalSettings/HomePage.aspx4E
  • /ecp/Organize/AutomaticReplies.slab
  • /ecp/RulesEditor/InboxRules.slab
  • /ecp/Organize/DeliveryReports.slab
  • /ecp/MyGroups/PersonalGroups.aspx
  • /ecp/MyGroups/ViewDistributionGroup.aspx
  • /ecp/Customize/Messaging.aspx
  • /ecp/Customize/General.aspx
  • /ecp/Customize/Calendar.aspx
  • /ecp/Customize/SentItems.aspx
  • /ecp/PersonalSettings/Password.aspx
  • /ecp/SMS/TextMessaging.slab
  • /ecp/TroubleShooting/MobileDevices.slab
  • /ecp/Customize/Regional.aspx
  • /ecp/MyGroups/SearchAllGroups.slab
  • /ecp/Security/BlockOrAllow.aspx

 

 

نحوه تشخیص نفوذ

  • Event Logs

این Exploit یک رویدادSYSMON  با شماره 4 را در لیست رویداد های برنامه (Application logs) ایجاد می کند. پیام ERROR که در لیست رویداد ها وجود دارد، شامل صفحه هدف و همچنین Payload  سریالی می باشد. از آنجا که می تواند چندین صفحه را مورد هدف قرار دهد، هشدار بر روی آدرس های  /ecp/root که دارای متغیر بزرگ _VIEWSTATE باشد می تواند برای شناسایی آن مثمر ثمر واقع شود.

  • IIS Logs

اولین شاخص شناسایی، گروهی از درخواست ها در log می باشد که با درخواست های  post به مقصد /owa/auth.owa شروع می شود و پس از آن درخواست های متعدد GET به یکی از URL های هدف که پیش تر لیستی از آنها آورده شده اتفاق می افتد که یکی از آن ها حاوی متغیر –VIEWSTATE می باشد. _VIEWSTATE هرگز نباید به عنوان بخشی از درخواست های GET ارسال شود.

2020-02-27 16:23:01 172.24.0.11 POST /owa/auth.owa &CorrelationID=;&cafeReqId=9cbf6d69-3637-4259-8156-af22cd591e77;&encoding=; 443 testexchange\user 172.24.0.51 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10.15;+rv:73.0)+Gecko/20100101+Firefox/73.0 – 302 0 0 0

2020-02-27 16:23:01 172.24.0.11 GET /ecp &CorrelationID=;&cafeReqId=bbdc52ec-fc63-44e5-8c04-ece4e94dcc79; 443 testexchange\user 172.24.0.51 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10.15;+rv:73.0)+Gecko/20100101+Firefox/73.0 – 302 0 0 0

2020-02-27 16:23:01 172.24.0.11 GET /ecp/ &CorrelationID=;&cafeReqId=242a7cc1-b320-466d-af4c-5f2212509a9a; 443 testexchange\user 172.24.0.51 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10.15;+rv:73.0)+Gecko/20100101+Firefox/73.0 – 200 0 0 78

2020-02-27 16:23:01 172.24.0.11 GET /ecp/default.aspx &CorrelationID=;&cafeReqId=01f49b9c-2fd9-498a-9092-7dcb7b344940; 443 testexchange\user 172.24.0.51 python-requests/2.23.0 – 200 0 0 15

2020-02-27 16:23:02 172.24.0.11 GET /ecp/default.aspx __VIEWSTATEGENERATOR=B97B4E27&__VIEWSTATE=/wEyhAYAAQAAAP////8BAAAAAAAAAAwCAAAAXk1pY3Jvc29mdC5Qb3dlclNoZWxsLkVkaXRvciwgVmVyc2lvbj0zLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAEJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRleHQuRm9ybWF0dGluZy5UZXh0Rm9ybWF0dGluZ1J1blByb3BlcnRpZXMBAAAAD0ZvcmVncm91bmRCcnVzaAECAAAABgMAAACmBDxSZXNvdXJjZURpY3Rpb25hcnkNCiAgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd2luZngvMjAwNi94YW1sL3ByZXNlbnRhdGlvbiINCiAgeG1sbnM6eD0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93aW5meC8yMDA2L3hhbWwiDQogIHhtbG5zOlN5c3RlbT0iY2xyLW5hbWVzcGFjZTpTeXN0ZW07YXNzZW1ibHk9bXNjb3JsaWIiDQogIHhtbG5zOkRpYWc9ImNsci1uYW1lc3BhY2U6U3lzdGVtLkRpYWdub3N0aWNzO2Fzc2VtYmx5PXN5c3RlbSI%2BDQoJIDxPYmplY3REYXRhUHJvdmlkZXIgeDpLZXk9IiIgT2JqZWN0VHlwZSA9ICJ7IHg6VHlwZSBEaWFnOlByb2Nlc3N9IiBNZXRob2ROYW1lID0gIlN0YXJ0IiA%2BDQogICAgIDxPYmplY3REYXRhUHJvdmlkZXIuTWV0aG9kUGFyYW1ldGVycz4NCiAgICAgICAgPFN5c3RlbTpTdHJpbmc%2BY2FsYy5leGU8L1N5c3RlbTpTdHJpbmc%2BDQogICAgIDwvT2JqZWN0RGF0YVByb3ZpZGVyLk1ldGhvZFBhcmFtZXRlcnM%2BDQogICAgPC9PYmplY3REYXRhUHJvdmlkZXI%2BDQo8L1Jlc291cmNlRGljdGlvbmFyeT4LKJT2EDKmhAvFcl3ptWKG6YNkbYw%3D&CorrelationID=;&cafeReqId=006227a0-2591-4b6a-b505-004c65649d15; 443 testexchange\user 172.24.0.51 python-requests/2.23.0 – 500 0 0 46

  • PROCESS EXECUTION

زمانی که Exploit، payload خود را به سمت سرور ارسال می کند، IIS WORKER دستورات مخرب را با پروسسی زیر مجموعه پروسس w3wp.exe اجرا می کند. در تصویر زیر می تواند مشاهده کنید که پروسس مخرب! calc.exe به عنوان یک پروسس زیر مجموعه (child) پروسس w3wp.exe با سطح دسترسی SYSTEM در حال اجرا است.

رویداد های دیگر و محل دستیابی به آن ها

Exchange Server استثنائات (Exception) را در مسیر دایرکتوری زیر ثبت می کند :

c:\ program Files\Microsoft\Exchange Server\V15\Logging\ECP\ServerException\

این فهرست شامل درخواست های GET مخرب به همراه String query مربوطه است. محتوای این پرونده می تواند شامل پرونده های log هنگام اجرای Poc باشد.

قانون سیگما

قانون سیگما تشخیص نفوذ از طریق این آسیب پذیری نیز توسط Florian Roth تولید و منتشر شده است که از طریق لینک زیر دردسترس می باشد.

https://github.com/Neo23x0/sigma/blob/master/rules/web/web_cve_2020_0688_msexchange.yml

اخبار

ExchangemicrosoftMicrosoftExchange

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *