Угон мобильного трафика: как вычислить скрытый редирект, удалить вирус и вычистить шеллы на сайте

В десктопном браузере ресурс открывается безупречно, в панели вебмастера нет предупреждений, а показатели PageSpeed радуют глаз. Но стоит реальному пользователю кликнуть по ссылке из поисковика со смартфона — его моментально швыряет на сомнительные казино, лендинги с подписками или страницы с фейковым требованием обновить браузер. Еще более изощренный сценарий — мобильный кликджекинг, когда страница внешне чистая, но первый же тап в любой точке экрана перехватывается прозрачным оверлеем и открывает рекламную вкладку.

Владелец сайта обычно узнает о проблеме последним: когда Яндекс вешает плашку «Сайт может угрожать безопасности», Google обваливает мобильный трафик, а клиенты обрывают форму обратной связи с жалобами.

Почему мобильный редирект так сложно поймать вебмастеру

Авторы вредоносных скриптов давно не делают топорных вирусов, ломающих верстку для всех подряд. Вредонос маскируется многослойной фильтрацией:

  • Проверка User-Agent: перенаправление срабатывает исключительно для мобильных платформ (Android, iPhone).
  • Анализ Referer: редирект срабатывает только при переходе из поисковой выдачи (Яндекс, Google) или соцсетей. Прямой переход по ссылке или через закладку откроет обычный чистый сайт.
  • Фильтрация по Cookie и IP (кулдаун): жертву редиректит ровно один раз за сутки. Если вебмастер пытается повторить путь пользователя со своего телефона, скрипт ставит метку в куки или сверяет IP по базе и отключается.
  • Игнорирование авторизованных админов: если в браузере висит активная сессия входа в CMS (например, wordpress_logged_in), вирус спит.

Как воспроизвести заражение без гаданий

Чтобы препарировать проблему, нужно сымитировать поведение мобильного посетителя в «стерильной» среде без авторизаций и сохраненных кэшей:

  • Запрос через терминальный cURL: самый надежный способ проверить серверный ответ без выполнения клиентского JS:curl -I -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15" -e "[https://yandex.ru/](https://yandex.ru/)" [https://vash-sayt.ru/](https://vash-sayt.ru/)Если в заголовках ответа вы видите статус 301 или 302 с внешним адресом в поле Location — редирект отрабатывает на уровне сервера (PHP или .htaccess). Если сервер отдает статус 200 OK — перехват идет на стороне фронтенда через JS-инъекцию или прозрачный iframe.
  • Режим инкогнито в DevTools: откройте панель разработчика Chrome (F12), включите эмуляцию мобильного устройства, перейдите на вкладку Network, выставьте флажок «Preserve log» и очистите кэш. Это позволит зафиксировать всю цепочку перенаправлений до того, как страница сменится.

Где прячутся шеллы: пошаговый поиск в кодовой базе

Вредоносная связка обычно состоит из точки входа (веб-шелла или бэкдора) и исполняемого скрипта, подсовывающего редирект.

  • Файлы конфигурации веб-сервера (.htaccess / nginx.conf):Проверьте корень сайта и подкаталоги на скрытые файлы .htaccess. Хакеры любят сдвигать вредоносные правила на 200–300 пустых строк вниз, чтобы они не бросались в глаза при открытии файла. Особое внимание обратите на директивы RewriteCond %{HTTP_USER_AGENT} и флаги auto_prepend_file или auto_append_file, которые подключают левый PHP-скрипт ко всем файлам сайта в фоновом режиме.
  • Поиск недавно модифицированных файлов:Если сайт начало штормить на днях, отследите изменения через SSH:find /var/www/site/ -type f -mtime -5 -name "*.php"Команда выведет все PHP-файлы, правившиеся за последние 5 суток.
  • Поиск шеллов и сигнатур обфускации:Шеллы прячут с помощью динамического выполнения закодированных строк. Запустите в консоли сканирование по регулярным маркерам:grep -rnEI "eval\(base64_decode" /var/www/site/grep -rnEI "gzinflate\(base64_decode" /var/www/site/grep -rnEI "chr\([0-9]+\)\.chr\(" /var/www/site/grep -rnEI "(assert|create_function|preg_replace.*\/e)" /var/www/site/
  • Инъекции в базе данных:Кликджекинг и скрытые JS-редиректы часто вшивают в таблицы контента (wp_posts, wp_options). Выгрузите базу или сделайте SQL-запрос по ключевым словам:SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%fromCharCode%' OR post_content LIKE '%window.location%' OR post_content LIKE '%eval(%';Ищите подозрительные внешние скрипты с доменов-однодневок или скрытые вызовы через сервисы сокращения ссылок.

Полный алгоритм зачистки и ликвидации угрозы

Удалить зараженный файл недостаточно — оставленный в системе бэкдор вернет вирус на место в течение пары часов. Действуйте по протоколу:

  • Проверьте планировщик задач (Cron): Откройте серверный crontab -l и cron-задачи внутри CMS. Часто там прописана задача-«реаниматор», которая раз в 30 минут обращается к стороннему серверу и восстанавливает удаленный вредоносный код.
  • Переустановите ядро CMS и плагины: Не пытайтесь вручную вычищать системные папки движка. Скачайте чистый дистрибутив вашей версии с официального репозитория и перезалейте системные папки начисто, сохранив только конфигурационный файл и папку медиафайлов.
  • Аудит директории загрузок (Uploads): В папках с изображениями и документами не должно быть исполняемых скриптов. Выполните проверку: find /uploads/ -type f -name "*.php*". Любой найденный там PHP-файл — это внедренный шелл, подлежащий немедленному удалению.
  • Смена всех доступов и ключей: После зачистки файлов обязательно смените пароли к базе данных, FTP/SSH, админ-панели и сгенерируйте новые соли безопасности (Security Salts) в конфигурационном файле, чтобы сбросить все активные сессии.

Как закрыть дыры от повторного взлома

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

  • Запретите выполнение PHP-скриптов в директориях загрузок (/uploads/, /images/) на уровне Nginx или Apache.
  • Отключите штатный редактор файлов тем и плагинов в панели управления, прописав в конфигурации: define('DISALLOW_FILE_EDIT', true);.
  • Настройте заголовок безопасности Content-Security-Policy с ограничением источников для скриптов (script-src) и полным запретом на открытие сайта внутри фреймов (frame-ancestors 'none'), что полностью нейтрализует мобильный кликджекинг.
  • Своевременно обновляйте плагины и удаляйте заброшенные расширения: в 90% случаев мобильные редиректы проникают через старые уязвимости в популярных слайдерах, формах обратной связи и плагинах резервного копирования.
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пока оценок нет)
Загрузка...
logo