پس از گذشت دو هفته از شناسایی دو آسیبپذیری روز صفر به شناسههای
• CVE-2023-20198
• CVE-2023-20273
در محصول IOS XE متعلق به شرکت سیسکو که به هکرها اجازه داد تا به بیش از 40هزار دستگاه نفوذ کنند، شرکت سیسکو با انتشار وصله امنیتی برای هر دو آسیبپذیری، به کاربران خود اطمینان خاطر داد که با به¬روزرسانی دستگاههای خود در برابر هر دو آسیبپذیری امن خواهند بود، اما هکرها با انتشار روش دور زدن مکانیزم امنیتی موجود در وصله امنیتی منتشر شده، نشان دادند که دستگاههایی که این بهروزرسانی را نیز انجام دادهاند، هنوز آسیبپذیر هستند.
تحلیل وصله امنیتی
در وصله امنیتی ارائه شده، شرکت سیسکو یک سربرگ (Header) به نام Proxy-Uri-Source به درخواست داخلی اضافه کرده است که از طریق WSMASendCommand ارائه میشود. تغییر دیگر، اضافه شدن یک سربرگ در IOSD است، این سربرگ که Proxy-Uri-Source نام دارد در تنظیمات مربوط به کنترل کنندههای سرور در سرویس Nginx به کار گرفته میشود. نکته قابل توجه دیگر در وصله امنیتی، اضافه شدن یکی از کنترلکنندههای HTTP در IOSD است که از آن برای اطمینان از تنظیم درست مقدار سربرگ Proxy-Uri-Source استفاده میشود. صحت این سربرگ، زمانی مورد تایید است که مقدار آن برابر با webui_internal باشد. تغییرات صورت گرفته در وصله امنیتی نشان میدهد که سیسکو برای امن کردن محصولات آسیبپذیر خود در برابر آسیبپذیری با شناسه CVE-2023-20198 قصد داشته تا با اعمال این تغییرات تمام درخواستهای دسترسی به سرویس wsma را از طریق WSMASendCommand مدیریت کند، تا کاربر مجبور به انجام مراحل احرازهویت موجود در WSMASendCommand باشد. با توجه به تنظیمات اعمال شده روی سرویس Nginx، احتمال دورزدن این وصله امنیتی از طریق تغییر مقدار سربرگ Proxy-Uri-Source به مقدار global برای درخواستهای خارج از WSMASendCommand وجود دارد. در ادامه تصویر یک درخواست ارسالی و پاسخ دریافتی که در آن تغییرات اعمال شده در وصله امنیتی قابل مشاهده است را ملاحظه میکنید.
تغییرات دیگر موجود در وصله امنیتی منتشر شده، مربوط به آسیبپذیری با شناسه CVE-2023-20273 است. این بهبود با هدف افزایش سطح امنیتی در بررسی معتبر بودن IPهای نسخه 6 است. در این وصله امنیتی فرض بر نامعتبر بودن IPهای نسخه 6 است، مگر آنکه IPهای ارسالی بتوانند از مکانیزم امنیتی ایجاد شده عبور کنند. هر چند در حال حاضر، این روش امن است اما با گذر زمان، هکرها قادر خواهند بود با نوشتن کدهای مخرب و تزریق آن داخل درخواست ارسالی خود با ایجاد اختلال در روند اعتبارسنجی IPهای نسخه 6 این مکانیزم را دور بزنند، در نتیجه این کار راه حلی مطمئن و همیشگی نخواهد بود. در ادامه تصویر کدهای اضافه شده برا ی اعتبار سنجی IPهای نسخه 6 آورده شده است.
تحلیل مراحل اجرای حمله
در ادامه به بررسی روش به کار رفته توسط هکرها برای دور زدن مکانیزم احرازهویتی خواهیم پرداخت که در وصله امنیتی منتشر شده برای آسیبپذیری با شناسه CVE-2023-20198 وجود دارد. در این بررسی مشخص میشود که همچنان هکرها قادر هستند با بهرهبرداری از این آسیبپذیری، یک حساب کاربری جدید با سطح دسترسی 15 در دستگاههای آسیبپذیر ایجاد کنند. در نتیجه هکرها از طریق این حساب کاربری ایجاد شده، میتوانند تمام دستوراتی را که نیاز به بالاترین سطح دسترسی دارند، روی دستگاه آسیبپذیر اجرا کنند.
در گام اول هکرها باید بتوانند که به هر طریق ممکن برای اجرای حمله خود به یکی از دو نقطه زیر در دستگاه هدف دسترسی پیدا کند تا قادر به اجرای کامل حمله باشند.
• webui_wsma_http
• webui_wsma_https
در گام بعد، هکرها یک درخواست را مطابق آنچه در تصویر زیر نمایش داده شده است، به دستگاه آسیبپذیر ارسال میکنند تا از طریق آن مکانیزم احرازهویت را دور بزنند و به دستگاه آسیبپذیر نفوذ کنند.
در تحلیل این درخواست، باید گفت که آنچه باعث میشود تا مهاجم با ارسال این درخواست، موفق به دورزدن مرحله احرازهویت شود، در خط اول این درخواست قرار داردکه بصورت زیر است:
• POST /%2577ebui_wsma_HTTP
نکته این عبارت، در مدل کد شدن حرف W در زمان ارسال این درخواست است، که باعث پذیرفته شدن این درخواست ارسالی به عنوان یک درخواست قابل قبول برای Ngnix میشود. در نتیجه مهاجم قادر است بدون احرازهویت به سرویس WMSA موجود در IOSD دسترسی پیدا کند.
اکنون که مهاجم توانسته به سرویس WMSA دسترسی پیدا کند، زمان آن است تا یک حساب کاربری برای خود ایجاد کرده و از طریق آن دستورات دلخواه خود را روی دستگاه تحت کنترل اجرا کند. برای انجام این کار کافی است دستورات لازم برای پیکربندی و ایجاد حساب کاربری جدید را از طریق درخواستهای SOAP به دستگاه ارسال کند. درادامه به یک درخواست ساده SOAP که از طریق آن میتوان یک حساب کاربری جدید ایجاد کرد اشاره شده است.
• username <user> privilege 15 secret <password>
هکرها برای تایید صحت روش پیشنهادی خود، بعد از ایجاد دسترسی به دستگاه آسیبپذیر از طریق طی کردن مراحل گفته شده، یک حساب کاربری با دسترسی administrator ایجاد کردهاند که تصویر آن در ادامه نمایش داده شده است.