به دنبال افشای عمومی یک آسیبپذیری روز صفر در Webmin در هفته گذشته، نگهدارندگان این پروژه در تاریخ ۲۰ اوت ۲۰۱۹ فاش کردند که این نقص درواقع نتیجه یک اشتباه کدنویسی که توسط برنامه نویسان صورت گرفته باشد، نیست.
در عوض، این نقص بهصورت مخفیانه توسط یک هکر ناشناخته پیادهسازی شده است که با موفقیت توانست در برخی از نقاط زیرساخت یک در پشتی تزریق کند، که با کمال تعجب در نسخههای مختلف Webmin (1.882 تا ۱٫۹۲۱) ادامه داشت و بیش از یک سال پنهان ماند.
با بیش از ۳ میلیون دانلود در سال، Webmin یکی از محبوبترین برنامههای مبتنی بر وب منبع باز برای مدیریت سیستمهای Unix مانند لینوکس، FreeBSD یا OpenBSD است.
Webmin یک رابط کاربری ساده (UI) را برای مدیریت کاربران و گروهها، پایگاههای داده، BIND ،Apache ،Postfix ،Sendmail ،QMail، پشتیبان گیری، فایروال، نظارت و هشدارها و موارد دیگر ارائه میدهد.
ماجرا از زمانی شروع شد که Ozkan Mustafa Akkuş، محقق ترکیهای، در ۱۰ اوت ۲۰۱۹ یک آسیبپذیری روز صفر اجرای کد از راه دور را در Webmin در DefCon ارائه داد، بدون آنکه هیچگونه هشداری به نگهدارندگان این پروژه تحت تأثیر اعلام کرده باشد.
Joe Cooper، یکی از توسعهدهندگان این پروژه، گفت: “ما هیچگونه اخطار قبلی را درباره آن دریافت نکردیم، که موضوعی غیرممکن و غیراخلاقی از طرف محققی است که آن را کشف کرده است. اما در چنین مواردی کار دیگری نمیتوانیم انجام دهیم و آن را برطرف میکنیم.”
علاوه بر آشکار کردن این نقص برای عموم، Akkuş همچنین یک ماژول Metasploit را برای این آسیبپذیری منتشر کرد[۱] که هدف از آن، بهرهبرداری خودکار با استفاده از چارچوب Metasploit است.
این آسیبپذیری با عنوان CVE-2019-15107 شناخته میشود و در یک ویژگی امنیتی قرار داده شده است که بهگونهای طراحیشده که به مدیر Webmin اجازه دهد یک policy انقضاء رمز عبور را برای حسابهای دیگر کاربران اجرا کند.
به گفته این محقق، این نقص امنیتی در صفحه تنظیم مجدد رمز عبور قرار دارد و به یک مهاجم از راه دور و غیرمجاز اجازه میدهد که تنها با اضافه کردن یک دستور pipe ساده (“|”) در قسمت رمز عبور قدیمی، از طریق POST دستورات دلخواه خود را با سطح دسترسی ریشه روی سرورهای آسیبدیده اجرا کند.
در یک پست وبلاگ که در تاریخ ۲۰ اوت ۲۰۱۹ منتشرشده[۲]، Cooper گفت که این تیم هنوز در مورد چگونگی و زمان پیادهسازی این در پشتی در حال تحقیق است، اما تأیید کرد که دانلودهای رسمی Webmin توسط بستههای پشتیبان فقط در مخزن SourceForge پروژه جایگزین شدهاند و نه در مخازن[۳] وبسایت GitHub.
Cooper همچنین تأکید کرد که ویژگی انقضاء رمز عبور تحت تأثیر بهطور پیشفرض برای حسابهای Webmin فعال نمیشود، به این معنی که بیشتر نسخهها در پیکربندی پیشفرضشان آسیبپذیر نیستند و این نقص فقط روی ادمینهای Webmin که بهصورت دستی این ویژگی را فعال کردهاند، تأثیر میگذارد.
Cooper دراینباره میگوید: “برای بهرهبرداری از کد موذی، installation برنامه Webmin در قسمت Webmin → Webmin Configuration → Authentication → Password expiry policy تنظیم شود تا کاربران Prompt با گذرواژههای منقضی شده، کلمه عبور جدید را وارد کنند. این گزینه بهطور پیشفرض تنظیم نشده است، اما اگر تنظیم شود، اجرای کد از راه دور را امکانپذیر میکند.
بااینحال، یک محقق امنیتی دیگر در توییتر بعداً فاش کرد[۴] که نسخه ۱٫۸۹۰ از نرمافزار Webmin در پیکربندی پیشفرض خود نیز تحت تأثیر این آسیبپذیری قرار دارد، زیرا به نظر میرسد که هکرها کد منبع را تغییر دادهاند تا قابلیت انقضا رمز عبور را بهطور پیشفرض برای همه کاربران Webmin فعال کنند.
این تغییرات غیرمعمول در کد منبع Webmin در اواخر سال گذشته توسط یک مدیر red-flagged شد[۵]، اما در کمال تعجب، توسعهدهندگان Webmin هرگز گمان نمیکردند که این اشتباه آنها نبوده است و این کد درواقع توسط شخص دیگری و بهعمد تغییر داده شده بود.
طبق یک جستجوی Shodan ،Webmin بیش از ۲۱۸،۰۰۰ نمونه در معرض اینترنت در زمان نوشتن این مقاله داشته است که بیشتر در ایالاتمتحده، فرانسه و آلمان واقع شدهاند. از این تعداد بیش از ۱۳،۰۰۰ نمونه دارای نسخه آسیبپذیر Webmin یعنی نسخه ۱٫۸۹۰ هستند.
توسعهدهندگان Webmin اکنون برای رفع این آسیبپذیری، در پشتی موذی را در نرمافزار خود حذف کرده و نسخههای تمیز یعنی نسخههای ۱٫۹۳۰ و ۱٫۷۸۰ را منتشر کردند.
آخرین نسخههای Webmin و Usermin همچنین به تعدادی از آسیبپذیریهای XSS آسیبپذیر بودند که بهطور مسئولانه توسط یک محقق امنیتی دیگر فاش شدند.
بنابراین به مدیران Webmin اکیداً توصیه میشود که نرمافزارهای خود را در اسرع وقت بهروز کنند.
منابع
[۱] https://pentest.com.tr/exploits/DEFCON-Webmin-1920-Unauthenticated-Remote-Command-Execution.html
[۲] https://www.virtualmin.com/node/66890
[۳] https://github.com/webmin/webmin
[۴] https://twitter.com/faker_/status/1163109517275664385
[۵] https://github.com/webmin/webmin/issues/947
[۶] https://thehackernews.com/2019/08/webmin-vulnerability-hacking.html
ثبت ديدگاه