امنیت

در پشتی در پوسته‌های وردپرس

در پشتی یا بک‌دور (back door) اصطلاحی است که به دستکاری در کدهای برنامه با هدف دور زدن کنترل‌های امنیتی (مانند پسورد و غیره) گفته می‌شه. با داشتن در پشتی، هکر می‌تونه هر وقت بخواد و بدون داشتن پسورد، به هدف دسترسی داشته باشه. برای مثال گاهی پیش میاد که یک هکر با استفاده از یک ضعف امنیتی به یک سایت نفوذ می‌کنه و برای  اینکه بعد از به‌روزرسانی یا تغییر پسورد توسط مدیر سایت، دسترسی رو از دست نده اقدام به ایجاد یک بک‌دور در کدهای سایت می‌کنه. پیش از این در مورد یافتن درهای پشتی در کدهای PHP یک مطلب نوشتم.

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

اولین پوسته‌ای که دانلود کردم برای بررسی، پوسته Modern Style بود که رتبه اول پوسته‌های ممتاز رو داشت. در کمال تعجب با کد ناخوانا شده در فایلی مواجه شدم که کارش نمایش خطا به مراجعه کننده به سایته وقتی که یک نوشته وجود نداشته باشه.

در پشتی

در تصویر بالا می‌بینید که تا خط ۹ همون کاری که از فایل انتظار داریم انجام می‌شه اما بعد از اون دو تا دستور PHP دیگه وجود داره. این دستورها برای رمزگشایی کدهایی است که پیش از این با روش برگشت‌پذیر base64 رمز شده‌اند. هکرها از راه‌های زیادی برای مخفی کردن درهای پشتی استفاده می‌کنند. از به‌هم ریختگی در کد، تا استفاده از کوچک‌ترین کدهای ممکن تا از چشم مدیر سایت دور بمونه. همچنین پسورد هم می‌گذارند گاهی تا توی تست‌های نفوذ نشه پیدا کرد این فایل‌های دستکاری شده رو.

تصویر زیر، کدهای رمزگشایی شده است.

در پشتی رمزگشایی شده

در این مورد خاص، هم از رمز کردن کد و هم از پسورد استفاده شده. شیوه کار این در پشتی این شکلیه که وقتی قربانی این پوسته رو روی سایتش استفاده کنه، در اولین باری که یک مراجعه کننده صفحه اشتباهی رو باز کنه، صفحه خطای ۴۰۴ رو می‌بینه و در اون زمان، کدهای مخرب اجرا می‌شن.

در ابتدا یک ایمیل حاوی آدرس سایت برای هکر ایمیل می‌شه. حالا هکر که می‌دونه یک مدیر سایت از پوسته دستکاری شده استفاده می‌کنه، به آدرس سایت رفته و صفحه خطای ۴۰۴ رو باز می‌کنه. سپس می‌تونه با پسوردی که از قبل ست شده، دستورات دلخواهش رو توی سرور قربانی اجرا کنه.

این پسورد رمز شده هکره (به پیشنهاد آیدین، پسورد رو برای مدتی حذف می‌کنم که کسی آسیب نبینه):

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

با جستجوی پسورد رمزشده، متوجه شدم همین در پشتی در اسکریپت virtual freer هم وجود داشته که یکی از کابران iranphp متوجه شده و به دیگران اطلاع داده. از اونجایی که رمز پسورد هنوز در سرویس‌های آنلاین و عمومی شکسته نشده، بعید می‌دونم کس دیگه‌ای از همین کد استفده کرده باشه و پسورد رو تغییر نداده باشه. می‌شه نتیجه گرفت که کار یک نفر بوده. اسکریپت virtual freer قابلیت اتصال به درگاه‌های پرداخت و درگاه‌های واسط پرداخت داره و در تعداد زیادی از سایت‌های فروش وی‌پی‌ان و کارت شارژ و مانند اون استفاده شده.

virtual-freer

پس از گزارش من در توییتر، سایت وردپرس فارسی بلافاصله لینک دانلود پوسته‌های مشکل‌دار رو غیرفعال کرد و به کاربران اطلاع داد که از این پوسته‌ها استفاده نکنند. غیر از Modern Style پوسته P30Temp هم همین در پشتی رو داشت.

Modern Style

با توجه به اینکه تاریخ تغییر فایل‌های حاوی در پشتی مطابق با آخرین آپدیت اعلام شده و نیز تاریخ آخرین تغییر بقیه فایل‌های پوسته نبود، به این نتیجه رسیدم که قراردادن در پشتی کار طراح پوسته و مترجم نبوده و به احتمال زیاد فرد سومی با استفاده از دسترسی که داشته (ممکنه این دسترسی رو پس از هک سایت وردپرس فارسی به دست‌آورده بوده) این تغییرات رو انجام داده.

کسی که این در پشتی رو کار گذاشته از ایمیل infocallpro@gmail.com برای خبرگرفتن از درهای پشتی فعال استفاده می‌کنه. اگر جایی با این آدرس ایمیل برخورد کردید، به من اطلاع بدید تا موارد خطر احتمالی رو بررسی کنم.

Standard

14 thoughts on “در پشتی در پوسته‌های وردپرس

        • روش برگرپیچوندن(: این کدها چیه؟ در حد کلید واژه هم بگی که خودم برم دنبالش حله.
          چون گفتی چند بار، فکر نکنم گوگل decode تنها جواب بده بهم(:

          • اگر منظورت لینک سوشا است، باید اون بخشی که این شکلیه \x65\x76 رو از HEX به کاراکتر تبدیل کنی که نتیجه‌اش می‌شه تابعی که روی بقیه کد اعمال می‌شه.
            بعد همون تابع رو روی بخش دوم رمز شده که شبیه TZPJrqNYEET/pTbVLS است رو خودت اعمال کنی تا کد رو دی‌کد کنی.
            وقتی تابع رو به دست آوردی، همون سرچ کن. معمولا سرویس آنلاین براشون هست.
            توی کامنت نمی‌تونم اون دستورها رو بذارم. حذف می‌شه

  1. صادق says:

    سلام
    عالی بود، مرسی و باعث شد دید بازتری نسبت به تم های وردپرسی پیدا کنم
    ضمنا می خواستم ازتون بپرسم با چه برنامه ای این کد ها رو decode می کنید؟

  2. سلام

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

    من کل وردپرس و فایل هاش رو پاک کردم ولی باز هم یه جای جدید یه فایل ارسال ایمیل به وجود میومد و سرور از کار میفتاد

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

    تا اینکه موندم کدهای برنامه خودم که برای مشتری نوشته بودم رو تک تک برسی کردم و اینجا بود که دیدم توی فایل کانفیگ پروژم یه تکه کد اضافی وجود داره و در نقش بک دور داره فایل مخرب ایجاد میکنه

    اینم لینک هردو فایل بک دور و ارسال ایمیل:

    http://s9.picofile.com/file/8267284868/haker_code.zip.html

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.