Зламали сайт: що робити і як очистити від вірусів

Якщо ваш сайт зламали, головне не панікувати і діяти по черзі: спершу закрити доступ, потім знайти й вичистити код, і обовʼязково закрити діру, через яку зайшли. Найчастіше шкідливий код лежить у базі, а не у файлах, тому антивірус хостингу мовчить. Нижче: як розпізнати злом, що зробити в першу годину і як не дати зараженню повернутися.

Зміст
  1. Як зрозуміти, що зламали
  2. Перевірте сайт прямо зараз
  3. Перша година: що зробити
  4. Як вичистити правильно
  5. Чому антивірус мовчить
  6. Як закрити діру
  7. Якщо Joomla або WordPress
  8. Коли кликати фахівця

Як зрозуміти, що сайт справді зламали

Іноді злом видно одразу: замість головної чужий напис або редирект. Але частіше він тихий і працює тижнями, а ви дізнаєтеся останнім. Ознаки, за якими зараження себе видає:

  • Сайт перекидає відвідувачів на сторонні сторінки (казино, аптеки), особливо з телефону або з пошуку.
  • У пошуку під вашим сайтом зʼявилися чужі сторінки або ієрогліфи, а Google пише «цей сайт може бути зламано».
  • В адмінці завелися користувачі з правами адміністратора, яких ви не створювали.
  • Хостинг надіслав лист про шкідливий код або незвичне навантаження, іноді з блокуванням акаунта.
  • Файли змінилися без вашої участі, зʼявилися невідомі .php-файли.

Перевірте сайт прямо зараз

Інструмент відкриє ваш сайт ззовні так, як його бачать різні відвідувачі: з компʼютера, з телефону та очима пошукового робота. Дефейс, мобільний редирект, клоакінг і застарілу версію CMS буде видно одразу. Доступ до сайту не потрібен.

Перевіряю: дефейс, мобільний редирект, клоакінг, версію CMS та її актуальність.

Перевіряю сайт ззовні...

Перша година: що зробити одразу

  1. Зробіть копію поточного стану, навіть зараженого: знадобиться, якщо щось піде не так.
  2. Змініть усі паролі: адмінка, FTP і SSH, база даних, панель хостингу.
  3. Перевірте список адміністраторів і видаліть тих, кого ви не створювали.
  4. Не поспішайте одразу видаляти файли: спочатку зрозумійте, що і де заражено.
  5. Якщо сайт розсилає спам або атакує інших, тимчасово закрийте його заглушкою, поки чистите.

Як вичистити сайт правильно

Порядок, який реально прибирає зараження, а не лише його сліди:

  • Перевірте .htaccess у корені та підпапках: редиректи й правила під робота.
  • Перевірте index.php і файли активного шаблона чи теми: інʼєкція зазвичай у перших рядках.
  • Перевірте базу: у WordPress це wp_options і wp_posts, у Joomla параметри шаблона в таблиці #__template_styles.
  • Знайдіть і видаліть веб-шели: невідомі .php-файли, часто в папці uploads чи media.
  • Перевірте завдання cron: вони відновлюють код після видалення.
  • Оновіть CMS і всі розширення.

Чому антивірус хостингу мовчить

Дуже часто власник бачить від хостингу «все чисто» і заспокоюється, поки сайт продовжує шкодити. Причина проста: антивірус хостингу перевіряє файли за відомими сигнатурами, а шкідливий код нерідко лежить у базі даних (параметри шаблона, приховані записи) або в правилах .htaccess. Файли при цьому чисті, сканер чесно це й показує. Тиша сканера не доводить, що сайт у порядку.

Саме тому «хостинг сказав, що все гаразд» не означає, що злом усунено. Перевіряти треба і базу, і правила сервера, а не лише файли.

Як закрити діру, щоб не повторилося

Найгірша помилка, прибрати симптом і не закрити вхід. Тоді сайт ламають знову тим самим способом протягом дня. Щоб цього не сталося:

  • Знайдіть точку входу: через яке розширення чи вразливість зайшли (логи сервера це показують).
  • Оновіть CMS і розширення до підтримуваних версій, видаліть невикористовувані.
  • Перевірте, що не лишилося бекдорів і завдань cron, які відновлюють код.
  • Увімкніть базовий захист: обмеження доступу до адмінки, актуальні бекапи.

Якщо сайт на Joomla або WordPress

Joomla. Особливо вразлива Joomla 3: вона не отримує оновлень безпеки з 17 серпня 2023 року. Заходять через вразливості розширень (JCE, SP Page Builder) або шаблонного фреймворка Helix3. Без переходу на підтримувану версію 5 або 6 сайт заражають знову.

WordPress. Дивіться таблиці wp_posts і wp_options, файл functions.php активної теми та папку uploads: у ній не має бути .php-файлів. Найчастіше заходять через занедбаний або вразливий плагін.

Коли кликати фахівця

Має сенс не гаяти час самому, якщо:

  • ви вже чистили, а зараження повернулося;
  • код у базі, а не у файлах, і антивірус хостингу мовчить;
  • хостинг заблокував акаунт за шкідливе ПЗ;
  • у пошуку зʼявилися чужі сторінки або позначка «цей сайт може бути зламано»;
  • робочої резервної копії немає.

Чищу сайти на будь-якій CMS і закриваю точку входу, а не лише симптом. Діагностика безкоштовна. Працюю з власниками сайтів з України, Польщі та з російськомовними в ЄС. З юридичними особами, зареєстрованими в Росії, не працюю: це обмеження санкцій ЄС.

Докладніше і заявка

Часті запитання

Чому хостинг каже, що все чисто, а сайт заражений?

Тому що антивірус хостингу перевіряє файли, а шкідливий код часто лежить у базі даних або в правилах .htaccess. Файли при цьому справді чисті. Тиша сканера не означає, що сайт у порядку, треба перевіряти і базу.

Чи можна просто відновити з резервної копії?

Іноді так, але лише якщо копія завідомо чиста і ви знаєте дату зараження. Часто зараження сталося за тижні до того, як його помітили, і бекап уже містить бекдор. І головне: відкат не закриває діру, тому сайт ламають знову.

Я почистив сайт, а вірус повернувся. Чому?

Бо прибрали симптом, а не вхід. Лишився веб-шел, завдання cron або незакрита вразливість, і код відновлюється. Прибрати зараження і закрити вхід це дві різні роботи.

Скільки часу займає чистка?

Саме видалення шкідливого коду зазвичай кілька годин. Основний час іде на пошук точки входу і перевірку, що ще встигли залити. Без цього робота марна, бо зараження повернеться.

Як зрозуміти, що справа не в моєму компʼютері?

Відкрийте сайт з телефону через мобільний інтернет і попросіть знайомого з іншого міста. Якщо перекидає і в них, проблема в сайті. Якщо ж чужі сторінки відкриваються на різних сайтах тільки у вас, справа у вашому браузері.

Telegram