Взлом

Веб-шелл: что это и как найти его на сайте

Почему вирус возвращается через неделю после чистки, где прячется запасной вход злоумышленника и как его закрыть.

Обновлено 4 мин чтенияИнженеры VECTRA

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

Что такое веб-шелл простыми словами

Представьте, что взломщик не только залез в дом, но и сделал себе дубликат ключа. Вы сменили замок на входной двери, но ключ от чёрного хода у него остался. Веб-шелл и есть такой ключ.

Технически это небольшой файл с кодом на сайте. Открыв его в браузере, злоумышленник может делать с сайтом что угодно: читать и менять файлы, загружать новые вирусы, рассылать спам, доставать данные из базы. Иногда весь веб-шелл занимает одну строчку, спрятанную в обычном файле сайта.

Как веб-шелл попадает на сайт

  • Через уязвимость в плагине, теме или форме загрузки файлов. Боты находят такие дыры автоматически.
  • Через украденный пароль от админки, хостинга или FTP.
  • Вместе со взломанным платным плагином, скачанным бесплатно. Лазейка встроена в него заранее.
  • Через соседний сайт на том же хостинге, если сайты не изолированы.

Почему вирус возвращается после чистки

Видимый вирус и веб-шелл это разные вещи. Вирус делает «работу»: перенаправляет посетителей, показывает рекламу, рассылает спам. Веб-шелл обеспечивает доступ. Когда вирус удаляют, злоумышленник через веб-шелл просто загружает его снова. Иногда это делает автоматическая задача по расписанию.

Кроме того, веб-шеллов обычно несколько. Нашли и удалили один, остальные продолжают работать.

Признаки, что на сайте есть веб-шелл

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

Напишите адрес сайта. Найдём все запасные входы и закроем лазейку.

Как найти веб-шелл

Если вы хотите разобраться сами, вот с чего обычно начинают. Перед любыми действиями сделайте копию сайта.

  1. Сравните файлы движка с оригиналом. Скачайте чистую версию той же CMS и плагинов и сравните. Всё лишнее и изменённое подозрительно.
  2. Проверьте папки, где не должно быть кода: загрузки, картинки, кэш. Файлы с кодом там почти всегда вредоносные.
  3. Отсортируйте файлы по дате изменения и посмотрите, что менялось в дни, когда вы ничего не трогали.
  4. Запустите сканер для сайтов, например AI-Bolit. Он найдёт известные веб-шеллы и подозрительный код, но решение по каждому файлу всё равно принимает человек.
  5. Посмотрите журналы сервера. Обращения к странным файлам, особенно с отправкой данных, выдают адрес веб-шелла.
Осторожно с удалениемПодозрительные части кода иногда встречаются и в честных плагинах. Удаление нужного файла может уронить сайт. Если не уверены, лучше показать находку специалисту.

Как закрыть лазейку навсегда

  1. Удалить все запасные входы, а не только найденный первым, и задачи по расписанию, которые возвращают вирус.
  2. Найти, как веб-шелл попал на сайт, и закрыть эту дорогу: обновить или удалить уязвимый плагин, убрать взломанные плагины.
  3. Сменить все пароли и ключи: хостинг, админка, FTP, база данных, почта.
  4. Запретить запуск кода в папке загрузок. Тогда даже загруженный веб-шелл не сработает.
  5. Настроить слежение за изменениями файлов, чтобы о новой попытке узнать в тот же день.

Мы находим все запасные входы, выясняем, как они появились, и закрываем лазейку. В конце выдаём отчёт простым языком. Стоимость смотрите на главной странице, а что делать в первые часы после взлома, читайте в статье «Сайт взломали».

Частые вопросы

Можно ли найти веб-шелл антивирусом?

Отчасти. Сканеры находят известные веб-шеллы, но злоумышленники постоянно маскируют код: шифруют его, разбивают на части, прячут внутри обычных файлов. Поэтому после автоматической проверки сайт всё равно стоит посмотреть вручную.

Где чаще всего прячут веб-шелл?

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

Я удалил подозрительный файл. Проблема решена?

Скорее всего, нет. Веб-шеллов обычно несколько, а лазейка, через которую их загрузили, остаётся открытой. Пока её не закрыть и не сменить все доступы, вирус будет возвращаться.

Сколько стоит удалить веб-шелл?

Поиск и удаление запасных входов входят в лечение сайта: от 3 000 ₽. Точную цену называем после бесплатной оценки, до начала работ.

Связь

Напишите, что случилось

Ответим в течение 15 минут, оценим бесплатно и назовём цену до начала работ. Опишите проблему как удобно: текстом, голосовым сообщением или скриншотом.