بررسی آسیب پذیری WinBox روترهای MikroTik

تاریخ انتشار : مرداد ۱۳, ۱۳۹۷
1 ستاره2 ستاره3 ستاره4 ستاره5 ستاره
دسته بندی : اخبار هک و امنیت

در ۲۳ آوریل، روترهای Mikrotik یک آسیب پذیری بحرانی که اجازه دسترسی به روترهای ناامن را می داد، فیکس و برطرف کرد. شناسه این آسیب پذیری CVE-2018-14847 می باشد و انتظار می رود به زودی ماژول Metasploit آن نیز منتشر شود.

میکروتیک چیست؟

طبق اعلام وب سایت رسمی این شرکت، Mikrotik یک شرکت مستفر در کشور لتونی است که در سال ۱۹۹۶ برای توسعه روترها و سیستم های بیسیم ISPها تاسیس شد. در حال حاضر Mikrotik سخت افزار و نرم افزارهای اتصال به اینترنت را در اکثر کشورهای جهان را فراهم می کند.

RouterOS سیستم عامل اکثر روترهای Mikrotik است. این آسیب پذیری بر تمامی نسخه های RouterOS از ۶٫۲۹ (تاریخ انتشار: ۲۰۱۵/۲۸/۰۵) تا ۶٫۴۲ (تاریخ انتشار ۲۰۱۸/۰۲/۲۰) تاثیر می گذارد.

در ابندا باید بررسی می شد که کدام باینری های قبل و بعد از وصله های امنیتی تغییر کرده است. RouterOS در بالای هسته لینوکس نوشته شده است، بنابراین بسیاری از ماژول های هسته در هر نسخه متفاوت خواهند بود. آنچه انجام شده است دانلود فایل های RouterOS 6.40.7 and 6.40.8 npk و پیدا کردن تفاوت ها از هرطریقی بود. تمام فایل های داخل بسته ها بطور کامل بررسی شد تا متوجه تفاوت ها شویم. همانطور که می بینید، باینری mproxy تغییر کرده است.  که به نظر منقطی نیست زیرا mproxy binary تمامی درخواستهای Winbox را مدیریت می کند.

 

Mikrotik

Mproxy یک باینری ۶۳K بدون هیچ اندازه گیری های امنیتی است. بنابراین این باگ می تواند مربوط به حافظه باشد. در این مرحله فایل bindiff را روی پرونده ها اجرا کردیم و تفاوت هایی بین دو نسخه یافتیم اما یک عبارت ساده “if” وجود داشت که به فایل اضافه شد.

 

Mikrotik

پس چگونه می توانیم این را تایید کرد؟ در اینجا ما نه GDB و نه شل نداریم. پس از بررسی های بسیار، یک پروژه “mikrotik-tools” را استارت خورد. این نشان دهنده یک راه آسان برای دریافت شل در داخل RouterOS و کپی کردن باینری های به فایل های سیستمی می باشد. بنابراین یک BusyBox جدید و بزرگ اضافه کردیم و همچنین برای انجام این کار یک gdbserver نیز نیاز بود. در VM بسیار ساده است زیرا همه چیزهایی که لازم است انجام دهید این است که در RouterOS vmdk قرار دهید و فایل های اضافی را اضافه کنید. بعد از آن RouterOS بوت خواهد شد و با حساب کاربری “devel” با همان رمز عبور به عنوان حساب کاربری خود وارد حساب کاربری شوید.

پس از قرار دادن breakpoint در رشته “لیست”، شروع به بررسی کردیم و در نهایت رشته ای را پیدا کردیم که بدون هیچگونه بایپسی، اولین شرایط را از دست داد. از آنجا که کد اسکن یک رشته ۴ بایتی در یک زمان اسکن می کند، می توانیم نقطه های خود را بین آنها قرار دهیم تا بتوان از طریق کد آن را کشف کرد.

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

 

Mikrotik

در این گفتگو چه چیزی جالب است؟ اگر بصورت دقیق نگاه کنید، می بینید که بسته های برجسته شده در مکالمه اول نیستند. اولین Winbox بوسیله روتر تأیید شده و پس از آن تلاش می کند تا فایل لیست را دریافت کند. خیلی امن، درست است؟ زمانی که ما بسته های مشابه را تکرار کردیم، نتیجه bad session id” را از RouterOS دریافت کردیم. اما نکته جالبی توجه مارا جلب کرد. هربار که ما درخواستی ارسال می کنیم یک بایت تغییر پیدا می کند، و هربار دقیقا همان یک بایت را بعنوان درخواست بعدی به روتر فرستادیم. این در حقیقت Session ID می باشد. بنابراین این تکرار را با کمی اصلاحات انجام دادیم. درخواست را ارسال کردیم، منتظر پاسخ روتر شدیم، آن بایت را با بایت دریافت شده از پاسخ تغییر دادیم، و سپس درخواست دوم را ارسال کردیم. فایل خود را دریافت کردیم !! حتی نیازی به تأیید اعتبار نداریم!  فقط با ارسال بسته های برجسته شده در جهت درست و تغییر بایت، روتر هماهنگ می شود.

اکنون می توانیم هر فایل را از روتر بخوانیم. کدام فایل ها مفید هستند؟ در بحث پیشین در کنفرانسAPA3، در مورد چگونگی Microtik  ناامن صحبت کردیم، مخصوصا وقتی که به اعتبارها رسیدگی شود. به طور خلاصه Mikrotik از رمزگذاری بسیار ضعیف (بدون هش و سالت) برای ذخیره کلمه عبور به یک فایل شاخص استفاده می کند. بنابراین کاملا ممکن است پایگاه داده اعتبارنامه را دانلود کنید و هر نام کاربری و رمز عبور ذخیره شده در داخل آن را استخراج کنید و این دقیقا همان چیزی است که برای این PoC انجام دادیم.

بهرین راه جلوگیری، استفاده نکردن از Mikrotik در محیط های سازمانی است.

 

 

 


نظرات

2 پاسخ به “بررسی آسیب پذیری WinBox روترهای MikroTik”

  1. وحدتی گفت:

    سلام. این مطلب از وبلاک آقای مسجل برداشته شده. لطفن منبع رو قید کنین و گرنه سرقت ادبی حساب میشه. مرسی.

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

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