از Shell Injection تا کشف Backdoor برروی مودم‌های LTE شرکت مبین نت

در مودم های AirMaster3000m مبین‌نت چندین آسیب‌پذیری و درپشتی (Backdoor) وجود دارد که به طور مفصل به آن‌ها خواهیم پرداخت؛ البته بعضی از آن‌ها طی گزارش‌های مکرر به صورت نصفه و نیمه Patch شد اما مشکلات اصلی همچنان پابرجاست. در ادامه به ۴ مورد از آسیب‌پذیری‌ها و چالش‌هایی که این مودم‌ها دارند پرداخته‌ خواهد شد، که ۳ مورد از آن‌ها آسیب‌پذیری‌هایی اساسی پیرامون نقص در تصدیق هویت، اعتبارسنجی نادرست ورودی‌ها و در نهایت حمله از طریق این نوع آسیب‌پذیری‌ها در جهت ارتقای کامل سطح دسترسی‌ست. مورد آخر کشف درپشتی‌هایی‌ست که ابهام در نوع آن‌ها وجود دارد.

۱. Authenticator Cookie: این آسیب‌پذیری که در نسخه V2.0.1B1053 وصله شد به کاربر اجازه می‌داد تا با اضافه کردن “kz_userid=Administrator:1” به مقدار Cookie ها بدون نیاز به کلمه عبور به پنل مودم دسترسی پیدا کند.

۲. Shell Injection: یافتن تمام آسیب پذیری های این مودم تقریبا از طریق آسیب‌پذیری تزریق شل صورت گرفت! در صفحه Ping این امکان وجود دارد که کاربر از IP مورد نظر Ping بگیرد:

اما با درخواست

در کمال تعجب اجازه خواندن فایل را هم به ما می‌دهد.

بااستفاده از این آسیب‌پذیری، تمام فایل‌های روی مودم را می‌شود خواند یا هر دستوری را می‌شود اجرا کرد. چون مانند اکثر مودم های دیگر، این مودم هم از بسته‌نرم‌افزاری BusyBox استفاده می‌کند!

۳. SysCMD.asp : اگر لیست فایل های مسیر /etc_ro/web/ را بررسی کنیم، تمام فایل‌های شاخه/ وبِ مودم در آن قرار دارد! بسیاری از فایل ها در پنل مودم وجود ندارد، مانند قابلیت ارسال SMS، تغییر اپراتور، اتصال به Spotify و استفاده از مودم به عنوان Media Server. اما اصلی ترین فایلی که دیده می‌شود syscmd.asp است که با باز کردن این صفحه با پیام جالبی مواجه می‌شویم:

اما رمز این فایل را نداریم! اگر درخواست‌هایی که برای این صفحه ارسال می‌شود را برسی کنیم می‌بینیم که برای استفاده از این صفحه نیاز به سطح دسترسی Super داریم!

 اگر با وب سرور GoAhead آشنا باشید، می‌دانید این وب سرور که مخصوص دستگاه‌های Embedded است، تمامی درخواست ها را خود پردازش می‌کند. یعنی تمام کد Backend، خود باینری GoAhead است و فایل های ASP فقط نقش FrontEnd را ایفا می‌کنند.

با استفاده از Shell Injection فایل باینری GoAhead را اگر در شاخه etc_ro/web قرار دهیم، می‌توانیم آن را دانلود و مورد بررسی قرار دهیم:

کد Disassemble شده GoAhead کلمه عبور برای checkSuperPermission را نشان می‌دهد: super1234 که به صورت Hard-Coded در ROM قرار گرفته!

با استفاده از صفحه syscmd (بدون نیاز به Authentication برای نسخه های قبل از 1053) دسترسی کامل به Busybox داده می‌شود!

۴. یوزر های پنهان : با برسی بیشتر باینری GoAhead اطلاعات مهم‌تری نیز می‌توان یافت:

کد Disassemble شده نشان می‌دهد به جز Login/Password کاربر های دیگری هم وجود دارند (GuestId/VipLogin) که رمز هر ۳ یوزر از NVRAM خوانده می‌شود که به لطف syscmd امکان خواندن داده های NVRAM و حتی فایل های NVRAM نیز وجود دارد!

در کمال تعجب یوزر Admin دسترسی Guest دارد و برای همین نصف صفحه های مودم را نمی‌بیند! شاید شرکت مبین نت برای جلوگیری از استفاده از سیم کارت شرکت‌های دیگر بر روی این مودم ها این سیاست را بکار گرفته باشد. اما وجود داشتن ۲ یوزر دیگر با دسترسی‌های بالاتر از یوزر Admin جای بحث زیادی دارد!

این تحقیق به کوشش کورش قربانی انجام گرفت و اختصاصا از بنیاد پژوهشی آفسک نشر داده می‌شود.

Comments

  1. از اونجایی که مودم خودم هم همین مدله خیلی وقت بود میخواستم یه تست نفوذ روش انجام بدم اما وقت نکردم
    الان یهو این مطلب رو دیدم خیلی برام جالب بود
    ممنون 🙂

Leave a Reply

Your email address will not be published / Required fields are marked *