Опыт разработки - больше 11 лет

Чистка сайта от вирусов
и вредоносного кода

Уберу с сайта вирусы и вредоносный код, восстановлю работу и закрою дыры, через которые сайт взломали. Довожу до чистого ответа антивируса хостинга - как reg.ru и других.

Чистка сайта от вирусов: поиск заражения, удаление кода, чистый сайт
Дмитрий Ченгаев - веб-разработчик
Чистка от вирусов
Дмитрий Ченгаев
11+ лет опыта
50+ проектов
Всегда на связи Быстрое выполнение

Что входит

От поиска заражения до защиты, чтобы сайт не взломали снова.

Поиск заражения
Поиск

Найду заражённые файлы

Проверю файлы и базу, найду вредоносные вставки, скрытые управляющие скрипты и левые файлы - даже те, что антивирус хостинга пропустил.

Удаление кода
Чистка

Уберу вредоносный код

Вырежу вставки из файлов, удалю чужие скрипты и редиректы. Ваш код и контент остаются на месте - чищу точечно, а не сношу всё подряд.

Чистка базы
База

Почищу базу данных

Проверю базу на спам-ссылки, лишних администраторов и вредоносные записи. Уберу закладки, которые оставляют для повторного захода.

Восстановление сайта
Восстановление

Восстановлю работу сайта

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

Защита от взлома
Защита

Закрою дыры

Обновлю движок и плагины, сменю доступы, поставлю защиту - чтобы через ту же щель сайт не заразили и не взломали снова.

Чистый статус
Результат

Доведу до чистого статуса

Прогоню проверку ещё раз и добьюсь чистого ответа от хостинга. Оплата - когда антивирус подтвердит, что вирусов нет.

Что вы получите по заказу

  • Чистый сайт: без вирусов, веб-шеллов, чужих скриптов и редиректов на посторонние ресурсы.
  • Рабочий сайт: восстановленные страницы, движок и плагины - всё открывается и работает как раньше.
  • Закрытые дыры: обновления, смена паролей и защита, чтобы заражение не вернулось.
  • Чистый ответ хостинга: подтверждение от антивируса, что вирусов на сайте больше нет.

Примеры: что уже чистил

Два реальных случая - заражение бывает разным, и подход к каждому свой.

Онлайн-школа английского

WordPress, сеть сайтов

Заказчик сообщил, что аккаунт заражён - все сайты разом перестали открываться и отдавали ошибку 500.

Один из сайтов онлайн-школы английского

Один из сайтов сети

Что нашёл

  • Вредоносный код, вписанный в начало десятков файлов index.php по всем сайтам - зашифрованный, обращался к чужому серверу и подгружал троян.
  • 19 веб-шеллов (файлы вида admin.php) - панели удалённого управления сайтом, защищённые паролем.
  • Сайт-эпицентр: настоящие файлы переименованы, вместо них подсунут скрипт-редирект на посторонний домен.
  • Скрытые файлы-шеллы в папках плагинов и загрузок.
  • Почти 6 тысяч вредоносных файлов .htaccess по всем подпапкам - закрывали доступ ко всему, кроме самих шеллов.

Как лечил

  • Снял отдельную копию заражённых файлов - чтобы было что разбирать и с чем сверяться.
  • По характерным меткам обфускатора нашёл все точки вставки вредоносного кода.
  • Программно вырезал вредоносный блок из каждого index.php, оставив родной код сайта нетронутым.
  • Удалил все веб-шеллы разом - по совпадению контрольной суммы (файлы были идентичны).
  • На сайте-эпицентре вернул настоящие файлы и заменил подсунутый редирект чистым index.php.
  • Массово снёс вредоносные .htaccess по метке, а легитимные восстановил из здорового сайта-соседа.
  • Восстановил файлы движка и плагинов, которые антивирус хостинга убрал в карантин (из-за этого сайты и падали) - докопировал недостающее из чистой копии.
  • Сменил доступы и дал рекомендации по закрытию входа: пароли, полный антивирус хостинга, проверка базы на посторонних администраторов.

Магазин онлайн-курсов

WordPress + WooCommerce

Магазин лежал с ошибкой 500 - база упиралась в лимит одновременных соединений и не отвечала.

Что нашёл

  • Взлом через дыру в коде темы (SQL-инъекция): данные из запроса подставлялись в обращение к базе напрямую, без экранирования - в том числе на странице, доступной без входа.
  • Атакующий слал запросы с командой SLEEP - каждый "засыпал" и держал соединение с базой, за минуту все соединения забивались и сайт падал.
  • Ключевые таблицы были в старом формате MyISAM - он блокирует всю таблицу целиком, поэтому одна медленная инъекция морозила весь сайт.
  • Утечка данных: страница выдачи заказов отдавала имена, телефоны, адреса и почту всех клиентов любому анониму - проверка доступа была отключена в коде.

Как лечил

  • Нашёл зависшие запросы в списке процессов базы и снял их - соединения освободились, сайт сразу поднялся.
  • Прошёл по коду темы и закрыл все уязвимые места - переписал запросы так, чтобы данные пользователя не попадали в базу напрямую.
  • Закрыл утечку заказов - вернул проверку доступа к странице.
  • Перевёл ключевые таблицы с MyISAM на InnoDB (блокировка по строке вместо всей таблицы) и увеличил буфер базы.
  • Поставил фильтр, который отдаёт отказ на запросы с признаками инъекции, и закрыл маршрут, которым доставляли атаку.
  • Заблокировал IP атакующего на сервере и включил журнал медленных запросов - чтобы поймать следующую попытку.

Что нужно для заказа

Чтобы сразу приступить к работе

  • Доступ к хостингу: панель управления или FTP/SSH - оттуда чищу файлы.
  • Доступ к админке сайта или заведите отдельного администратора для меня.
  • Письмо от хостинга: отчёт антивируса, если он был - там видно, что именно нашли.
  • Что за сайт: WordPress, другая система или самописный - и что на нём сейчас не так.

Как это работает

1

Смотрю сайт

Снимаю копию, нахожу заражённые файлы и записи, оцениваю масштаб.

2

Чищу и восстанавливаю

Убираю вредоносный код, восстанавливаю работу сайта, закрываю дыры.

3

Проверяем результат

Добиваюсь чистого ответа антивируса хостинга. Оплата - после подтверждения.

Вопросы и ответы

Хостинг прислал письмо, что нашёл вирусы. С чего начать?
Пришлите это письмо и доступ к хостингу и админке - посмотрю, что именно нашли, и почищу. Довожу до чистого ответа их антивируса.
Оплата точно после подтверждения, что вирусов нет?
Да. Оплата по результату - когда антивирус хостинга (reg.ru или другой) подтвердит, что сайт чистый.
Сайт не сломается после чистки?
Перед работой снимаю копию. Вредоносный код вырезаю точечно, а ваши файлы и контент оставляю на месте - сайт продолжает работать.
А вирус не вернётся снова?
После чистки закрываю дыру, через которую сайт заразили: обновляю движок и плагины, меняю доступы, ставлю защиту. Именно незакрытый вход - главная причина повторных заражений.
Работаете только с WordPress?
Чаще с WordPress, но чищу и другие сайты - на других системах и самописные.
Сколько стоит?
Зависит от масштаба заражения. Посмотрю сайт, оценю объём и назову цену до начала работы.
Дмитрий Ченгаев Привет! Я веб-программист
Дмитрий Ченгаев
Сайт заразили вирусом?
Напишите мне
Если задача нужна позже - подпишитесь на канал в Telegram, чтобы оставаться на связи ;)