هک شدن سایت و ریدایرکت آن
-
سلام و وقت بخیر
من سایتم هک شده ، وقتی وارد پیشخوان یا سایت میشم به که آدرس خارجی ریدایرکت میکنه.
دونه به دونه افزونه هارو غیر فعال کردم متوجه شدم سه تا افزونه اس که این مشکل رو بوجود آورده و وقتی فعال میشن ریدایرکت میشه.
هرسه رو کلا پاک کردم و آپدیتشو زدم ولی سایت همچنان مشکل داره و برطرف نشده ، تو تمامی فولدر ها هم سه تا فایل index با پسوند های index.php و htm و html تزریق شده.
مشکل چی هست و چطور میتونم رفعش کنم ؟ وردفنس هم نصب کردم چیزی حل نشده
-
سلام و احترام،
مشکلی که توصیف کردید نشاندهنده یک نفوذ سطح دسترسی (Privilege Escalation) است. اینکه فایلهای
index.phpیاindex.htmlدر تمامی دایرکتوریها (حتی در پوشههایی که ربطی به آن سه افزونه ندارند) تزریق شدهاند، یعنی مکانیزم نفوذ فراتر از چند افزونه مخرب بوده و احتمالاً یک Backdoor (درب پشتی) در هسته وردپرس یا پوشه آپلودها جاگذاری شده است.دلیل اینکه با حذف افزونهها و نصب Wordfence مشکل حل نشده، این است که بدافزار (Malware) اکنون در جایی خارج از پوشه پلاگینها (مثلاً در
wp-includesیاwp-content/uploads) ساکن شده و از طریق Cron Jobs یا تریگرهای خارجی، مجدداً خود را بازسازی میکند.برای رفع این مشکل، «پاکسازی» فایدهای ندارد؛ شما باید سایت را «جراحی» کنید. لطفاً مراحل زیر را دقیقاً به همین ترتیب انجام دهید:۱. ایزولهسازی و فولبکاپ (Full Backup)
قبل از هر کاری، از وضعیت فعلی (حتی با وجود ویروس) بکاپ بگیرید تا اگر در حین پاکسازی دیتابیس آسیبی دید، راه بازگشت داشته باشید.۲. تعویض هسته وردپرس (Core Replacement) – حیاتی
فایلهای آلوده اغلب خود را شبیه فایلهای اصلی وردپرس جا میزنند.
- تمامی پوشهها و فایلهای موجود در روت (Root) هاست را حذف کنید، به جز: پوشه
wp-contentو فایلwp-config.php. - پوشههای
wp-adminوwp-includesباید کاملاً حذف و مجدداً از مخزن رسمی وردپرس آپلود شوند. (تأکید میکنم: Replace نکنید، اول Delete و بعد Upload کنید).
۳. پاکسازی پوشه wp-content (کانون عفونت)
این بخش سختترین مرحله است:
- پلاگینها و قالبها: تمام پوشههای داخل
pluginsوthemesرا حذف کنید و نسخههای اورجینال را مجدداً از مخزن یا فروشنده دانلود و نصب کنید. (به هیچ وجه از نسخه فعلی استفاده نکنید). - پوشه Uploads: وارد این پوشه شوید. بدافزارها فایلهای مخرب PHP را در بین تصاویر مخفی میکنند. در نوار جستجوی فایلمنیجر هاست، عبارت
php.را در پوشه uploads جستجو کنید و هر فایل PHP که پیدا کردید را حذف کنید (این پوشه فقط باید حاوی عکس و مدیا باشد).
۴. حذف فایلهای Index تزریقی (راهکار فنی)
برای حذف صدها فایل
index.htmlیاindex.phpمزاحم که در همه پوشهها کپی شدهاند، پاکسازی دستی غیرممکن است. اگر به SSH (ترمینال) دسترسی دارید، از دستورات زیر استفاده کنید (با احتیاط):
find . -name “index.html” -type f -delete
اگر دسترسی SSH ندارید، باید از طریق فایل منیجر و با مرتبسازی بر اساس “تاریخ تغییر” (Date Modified) فایلهایی که در تاریخ هک ایجاد شدهاند را گروهی حذف کنید.۵. پاکسازی دیتابیس (Salts)
- وارد دیتابیس (phpMyAdmin) شوید و جدول
wp_optionsرا چک کنید. مقادیرsiteurlوhomeرا بررسی کنید که به سایت خارجی تغییر نکرده باشند. - فایل
wp-config.phpرا باز کنید و کدهای Authentication Unique Keys and Salts را تغییر دهید. این کار باعث میشود تمام سشنهای هکرها اکسپایر شود.
۶. بررسی فایل .htaccess
اغلب ریدایرکتها در این فایل کدگذاری میشوند. فایل
.htaccessفعلی را حذف کنید و با ذخیره مجدد پیوندهای یکتا در پیشخوان وردپرس، یک فایل جدید بسازید.نکته مهم و نهایی : تا زمانی که این پاکسازی کامل انجام نشود، نصب افزونههای امنیتی مثل Wordfence کمکی نمیکند، زیرا آنها معمولاً نمیتوانند فایلهایی که دسترسی سیستمی پیدا کردهاند را پاک کنند.
(اگر اطلاعات و مهارت کافی ندارید و سایت شما فعال و مهم هست و یک سایت تمرینی نیست حتما از یک متخصص کمک بگیرید )از سایتهای زیر میتونی برای بررسی سلامت بودن پلاگین هات کمک بگیری
virustotal.com
hybrid-analysis.com
البته باز هم امکان داره بعضی از کد های مخرب شناسایی نشوند
پس مطمئن ترین راه تهیه نسخه اصلی و سالم فایل از منبع معتبر هستبا سلام مجدد و تشکر از راهنمایی @saeidafshari خوبتان
من همه موارد رو بجیر wp-content حذف میکنم و وردپرس رو مجدد بارگذاری و اسکترکت می کنم ، از آنجایی که فایل wp-config.php نیز تغییر داده شده است آن را هم از نو ایجاد و متصل میکنم.
سایت برای مدت کوتاه (حدود نیم ساعت ) بصورت نرمال برگشته و کار می کند ولی بعد از این مدت باز فایل ها تزریق شده و در تمامی صفحات این عبارت نمایش داده می شود :
https://s8.uupload.ir/files/2026-02-04_20-27-03_fqu2.jpg
درضمن آدرس ها و کدها را در دیتابیس سرچ می زنم هیچ موردی یافت نمی شود و ظاهرا دیتابیس سالم است و فقط فایل ها آلوده شده اند
- کل افزونه ها نیز پاک شده و حتی بدون افزونه فعال هم این مورد رفع نمی گردد و پس از دقایقی پاکسازی منتفی شده و سایت پیام index.html ، PHP و htm را نمایش می دهد.
- کرانجاب بررسی شد و هیچ کرانی در هاست ایجاد نشده است
- قالب پیشفرض نصب شده و قالب قبلی حذف شد ولی همچنان فایل ها تولید می شوند
- تمامی فایل ها و فولدرها جز uploads حذف شده است و همچنان مشکل بعد از دقایقی مجدد ایجاد می گردد
ممنون میشم اگر راهکاری دارید هر چیزی که به فکرتان می رسد باعث حل مساله شود مطرح بفرمایید.
خودم تابحال با چنین موردی برخورد نکرده بودم و اصلا نمی دانم بعد از پاکسازی ، چطور و از کجا دوباره فایل ها ایجاد می شوند.
- هاست دارای سه ادان دومین هست که سه سایت مختلف (و معمولی بدون افزونه های پولی و خاص ) در این هاست موجود است و هرسه سایت مبتلا شده اند ! حتی فولدرهای دستی ایجاد شده که ربطی به وردپرس ندارند نیز شامل فایل های Deface هستند که بعد از حل موضوع سایت به یک آدرسی ریدایرکت می کند که بعد از حذف همه افزونه ها و نصب مجدد این مورد نیز رفع میگردد ولی پایدار نیست و مجدد مشکل ایجاد می گردد.
با تشکر از همراهی تان
سلام مجدد
کسی نیست برای حل این مورد راهنمایی کنه ؟
تشکر
سلام مجدد سعید عزیز، خوشحالم که مراحل قبلی را با دقت انجام دادید. با توجه به توضیحات دقیق شما و اینکه مشکل دقیقاً بعد از نیم ساعت بازمیگردد، کاملاً مشخص است که با یک سناریوی آلودگی متقاطع (Cross-Site Contamination) و احتمالاً یک پروسه فعال در حافظه (RAM) سرور مواجه هستید.
دلیل این اتفاق این است که بدافزار فقط یک فایل فیزیکی خوابیده روی هاست نیست، بلکه یک دستور در حال اجراست. برای قطع این چرخه باطل، لطفاً این موارد را به صورت دقیق و همزمان بررسی کنید:
۱. قانون طلایی: پاکسازی همزمان تمام ادان دامینها در هاستهای اشتراکی، تمام سایتها زیرمجموعه یک یوزر (User) هستند و به فایلهای یکدیگر دسترسی دارند. اگر سایت اول را کاملاً پاک کنید اما سایت دوم (یا حتی یک فولدر ساده HTML) هنوز آلوده باشد، بدافزارِ سایت دوم بلافاصله سایت اول را دوباره آلوده میکند. باید هر سه سایت و تمام فولدرهای متفرقه را همزمان متوقف و پاکسازی کنید. پاکسازی نوبتی در این سناریو به هیچ وجه جواب نمیدهد.
۲. متوقف کردن پروسههای فعال در حافظه (Kill Processes) حتی اگر تمام فایلهای ویروس را پاک کنید، اسکریپت آن ممکن است همچنان در رم سرور در حال اجرا باشد (به صورت Daemon).
- راهکار سریع: در پنل هاست (cPanel یا DirectAdmin) به بخش
Select PHP Versionبروید. نسخه PHP را یک لول تغییر دهید (مثلاً از 7.4 به 8.0) و ذخیره کنید، سپس دوباره به حالت قبل برگردانید. این کار باعث ریاستارت شدن پروسههای PHP اکانت شما و از بین رفتن بدافزار مقیم در حافظه میشود.
۳. بررسی دستورات مخفی در htaccess. گاهی هکرها فایل اجرایی اصلی (Dropper) را در یک مسیر کاملاً نامربوط مخفی میکنند و با یک دستور در فایل
.htaccessروت اصلی (public_html)، به سرور میگویند آن را اجرا کند.- فایل
.htaccessرا در تمام مسیرها بررسی کنید و به دنبال دستوری شبیه بهphp_value auto_prepend_fileبگردید. این دستور باعث میشود ویروس قبل از لود شدن هسته وردپرس، اجرا و تکثیر شود.
۴. بررسی کرانجابهای داخلی وردپرس (WP-Cron) شما کرانجابهای هاست را چک کردید که کار بسیار درستی بود، اما بدافزارها معمولاً در سیستم زمانبندی داخلی خود وردپرس مخفی میشوند.
- در دیتابیس (phpMyAdmin)، جدول
wp_optionsرا باز کنید و در ستونoption_nameکلمهcronرا جستجو کنید. بررسی کنید که آیا تسک مشکوک و ناآشنایی در مقادیر آن (option_value) وجود دارد یا خیر. پس از پایداری اولیه سایت، میتوانید از افزونه WP Crontrol هم برای بررسی راحتتر این تسکهای مخفی استفاده کنید.
۵. بررسی پوشههای بالاتر از روت (Root) دقت کنید که فایل مولد ویروس ممکن است اصلاً داخل پوشههای سایتها نباشد. پوشههایی مثل
cgi-bin، سطل زباله (.trash) و حتی پوشه/tmpدر مسیر اصلی هاست (یک مرحله قبل از public_html) را به دقت بررسی کنید.این مرحله از پاکسازی به دلیل وجود ادان دامینها نیاز به دقت و سرعت عمل همزمان دارد. امیدوارم با این تکنیکها گره کار باز شود. نتیجه را اطلاع دهید. موفق باشید!
خیلی ممنونم از اینکه وقت گذاشتید و با جزییات و حوصله مراحل رو فرمودید.
فعلا که سایت 2 ساعته بالاست بعد از پاکسازی و چیزیش نشده ، ایشالا که پایدار باشه.
- تمامی پوشهها و فایلهای موجود در روت (Root) هاست را حذف کنید، به جز: پوشه
برای پاسخ به این موضوع باید وارد شوید.