امنیت

میزبان خود را چک کنید – ضعف امنیتی WHMCS

کمتر از ۲۰ روز پیش در این پست در مورد ضعف امنیتی WHMCS نوشتم. این نرم افزار که به عنوان سیستم پشتیبانی و مدیریت کلاینت ها در بسیاری از سرویس دهنده های میزبانی سایت استفاده می شه در نسخه جدید خود همچنان دارای نواقصی است.

PHP از نسخه ۵.۴.۰ استفاده از register_globals رو حذف کرد به این دلیل که تعریف متغیرها در سطح گلوبال باعث می شد متغیرها به وسیله کاربر تغییر کنند و این مورد ضمن اینکه یک سری کاربردهایی می تونست داشته باشه، به شدت می تونست خطرناک هم باشه.

خب حالا بیایم یه نگاهی به فایل dbfunctions.php این نرم افزار بندازیم، جایی که دستورهای ارسالی به دیتابیس رو هندل می کنه:

می بینید که نویسندگان برنامه از متغیرهای گلوبال استفاده کردند. حالا این کجا می تونه آسیب بزنه؟ برای مثال زمانی که کاربرها می خوان ticket ها رو ببینند. اونجا می شه با تذریق کدهای SQL در قالب یک متغیر GET و یا POST اطلاعات دیتابیس رو به دست آورد.

من هم اون مشکل قبلی رو در برخی هاستینگ های ایرانی چک کردم و هم این مشکل رو که متاسفانه نتایج اصلا خوب نبود. از ۱۰ تا هاستینگی که چک کردم ۸ تاشون تا ۲ روز پیش مشکل داشتند و ۲ تاشون رو هم تونستم با نام کاربری و پسورد ادمین به پنل مدیریت وارد بشم.

متاسفانه برخی سرویس دهنده ایرانی کوچکترین توجهی به مسایل امنیتی نکرده و حتی ساده ترین کار که نصب به موقع بسته های به روز رسانی است رو هم انجام نمی دن.

برای اینکه کاربرها بتونن وضعیت میزبانشون رو بررسی کنند و بتونند از میزبان بخوان که کارهای لازم رو انجام بده یک اسکریپت رو آماده کردم که به صورت اتوماتیک این ضعف رو چک می کنه و در صورت نفوذ، نام کاربری ادمین و ایمیلش رو بهتون می ده. البته نسخه اصلی این اسکریپت برای چک کردن گوگل و نفوذ به وصورت رندوم به هاستینگ ها بود و پسوردها رو هم به صورت هش شده در اختیار میذاشت ولی من برای جلوگیری از سو استفاده های احتمالی تغییراتی دادم توش. یکیش اینکه یک آدرس می گیره و بر اساس جستجوی گوگل نیست. دوم اینکه در خروجی، پسوردهای هش شده رو نشون نمی ده.

با استفاده از نتیجه ای که به شما نشون داده خواهد شد می تونید به صورت مستند از هاستینگتون بخواید که به روزرسانی رو انجام بده.

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

لینک دسترسی به اسکریپت:

منبع و منبع

Standard
امنیت

ضعف امنیتی zpanel 10.0.2

چند روز پیش داشتم سایتی رو چک می کردم برای مشکلات امنیتیش. زیر دامنه ها رو چک کردم که یکیش صفحه ورود کنترل پنل میزبانی رو می آورد.

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

ZPanel

یه جستجوی کوچیک من رو رسوند به نتیجه بررسی های قبلی روی این نسخه و یک ضعف امنیتی خطرناک که عمومی هم شده. بذارید با هم مرور بکنیم مشکل رو تا ببینیم که چه اشتباهات بچگانه و خطرناکی ممکنه توی برنامه نویسی رخ بده.

zpanel یک ماژول داره برای بک آپ گرفتن که این ماژول یه فایل داره برای دانلود فایل های روی سرور. احتمالا برای اینکه ادمین بتونه فایل های بک آپ رو دانلود کنه.

بذارید یه نگاه به متن فایل getdownload.php بندازیم:

کامنت ها رو از متن حذف کردم که زیاد شلوغ نباشه. در متن می بینید که با یه دستور شرطی چک می کنه که اگر با متغیر file آدرس فایل وارد شده و اون فایل وجود داره، دستور می ده به یه فانکشن که فایل رو در اختیار کاربر بذاره.

به قول اون ور آبیا WTF

الان کافیه شناختی از ساختار فایل ها و فولدرهای سرور داشته باشیم و یا یکی از سایت های روی سرور مشکلی داشته باشه که مسیر اصلی فایل ها رو نشون بده تا بتونیم هر فایلی رو که می خوایم دانلود کنیم.

بذارید بریم سر اصل قضیه: یوزر و پسورد سرور. در سرورهای لینوکسی، نام کاربری و پسورد ها رو می شه در فایل های passwd و shadow پیدا کرد. البته به صورت هش شده. (وارد جزییات تنظیمات سرور نمی شم چون یه بحث مجزاست)

همچنین از این آدرس می تونید یه اسکریپت به زبان پایتون بگیرید که به صورت اتوماتیک بک آپ های سرور رو براتون دانلود کنه. دیگه چی می خوایم واقعا؟

مشکل دیگه ای که این نسخه داره، دسترسی آزاد به فایل daemon.php است که باعث می شه هکرها به اطلاعات حساسی مثل نام های کاربری، دسترسی هاشون و سایت هایی که روی سرور قرار دارند دست پیدا کنه.

یه نمونه از خروجی اجرای این فایل رو می تونید اینجا ببینید:

در اطلاعات بالا به جای دامنه ها ستاره گذاشتم که مشکلی برای سایت پیش نیاد.

از اینجا به بعد دیگه برمی گرده به توانایی و خلاقیت هکر که می خواد چطور جلو بره و تا کجا پیش بره. مثلا در همین مورد خاص روی این سرور یک سایت وردپرسی وجود داشت که با دونستن مسیر قرار گیری فایل wp-config.php، اون رو دانلود کردم و نام کاربری و پسورد MySQL رو به دست آوردم که می تونم باهاش به دیتابیس سرور کانکت بشم (در صورتیکه ورود رو به localhost محدود نکرده باشن) و مشخصات کاربرهای اون سایت رو به دست بیارم.

می بینید که یه اشتباه در بررسی نکردن ورودی ها و یا عدم تنظیم درست Permission ها برای اجرای یک فایل می تونه چه تبعاتی داشته باشه.

خب همین الان برید نسخه کنترل پنل هاست رو چک کنید و اگه ضعف شناخته شده داشت یا به روز نبود از سرویس دهنده بخواید که کاریکه وظیفه اش است رو انجام بده.

 

پ ن: این پست فقط در جهت نشان دادن ضعف های Zpanel 10.0.2 است و ترغیب برای برطرف کردن مشکلات. لطفا از این مورد برای آسیب رساندن به دیگران استفاده نکنید.

Standard
امنیت

هک شدن سرویس دهنده های میزبانی

دیروز ایمیلی به کاربرهای یک سرویس دهنده وی بی ان رسید با این مضمون که ما به دلایلی مجبوریم کلیه اطلاعات کاربری شما رو در اختیار مقامات امنیتی آمریکا قرار بدیم. سرویس دهنده بلافاصله واکنش نشون داد و گفت که ایمیل تقلبی بوده. ولی چطور یه نفر ایمیل همه کاربرها رو داشته؟

malware_virus-100047712-gallery

مقصر خود سرویس دهنده است و مشکل امنیتی البته در نرم افزار WHMCS که مورد استفاده سرویس دهنده های میزبانی اینترنت و وی پی اسه برای کنترل کاربرها و سیستم فروش و پشتیبانی و غیره.

هفته گذشته یک مشکل امنیتی در این نرم افزار عمومی شد. مشکل در بخشی از اسکریپت ثبت داده ها بوده که ورودی رو بررسی نمی کرده برای کاراکترهای خاص و دستورات اس کیو ال. بذارید یه نگاهی بهش بندازیم

می بینید که توی این دستور شرطی چک می کنه که آیا ۱۱ کارکاکتر اول ورودی AES_ENCRYPT است یا نه. کافیه اطلاعات ورودی با این String شروع بشه و بقیه اش یه کد باشه برای تزریق، اینجوری اون کد بدون هیچ محدودیتی در دیتابیس اجرا می شه.

بلافاصله بعد از اعلام این نقص، آپدیت برای این نرم افزار اومد که خب فاصله ارائه پچ و آپدیت تا زمان نصبش در همه استفاده کننده ها، به هکرها فرصت می ده که به کارشون برسن.

برای هک کردن ستفاده کننده ها از این نرم افزار کافیه که کاربر سایت باشید و از طریق هر صفحه ای که تغییری در دیتابیس می ده، کد خودتون رو اجرا کنید. طی بررسی هایی که انجام شده یکی از روش های انجام این هک استفاده از فرم ثبت نامه. می دونیم که با فرم ثبت نام ما یه سری ورودی رو به سمت دیتابیس می فرستیم.

یک گروه امنیتی با ایجاد یک هانی پات* تونسته یکی از روش های مورد استفاده هکرها رو به دست بیاره. بذارید کدها رو ببینیم

در خط اول می بینیم که هکر به جای firstname یک کد رو به دیتابیس تزریق کرده که بتونه باهاش نام کاربری، ایمیل و پسورد هش شده موجود در جدول tbladmins رو به دست بیاره. همونجور که از اسمش می تونید حدس بزنید، این جدول حاوی اطلاعات کاربری ادمین هاست.

چه باید کارد:

اگر سرویس دهنده اید سریعا WHMCS رو آپدیت کنید و اگر کاربرید از سرویس دهنده بخواید که این کار رو بکنه چون اطلاعاتتون در خطره.

همچنین Cloudflare که محصولاتی برای بالا بردن امنیت سرورها داره در Web Application Firewall (WAF) تمهیداتی در نظر گرفته برای جلوگیری از این حمله حتی اگر WHMCS به روز نشده باشه که می تونید از سایت خودشون اطلاعات کامل رو بخونید.

منبع و منبع و منبع و منبع

Standard