Взломан сайт: диагностика, очистка и восстановление

Безопасность · 19.04.2026
Взломан сайт: диагностика, очистка и восстановление

Взлом сайта — стрессовая ситуация, требующая чётких и быстрых действий. Главное правило: не паниковать, действовать системно. Большинство сайтов можно полностью восстановить за несколько часов.

Признаки взлома сайта

  • Редирект на чужой сайт (фарминг, фишинг)
  • Предупреждение Google «Сайт содержит вредоносное ПО»
  • Хостинг заблокировал аккаунт за рассылку спама
  • Появление новых файлов или директорий
  • Необъяснимый рост трафика или нагрузки на сервер
  • Жалобы пользователей на антивирус

Шаг 1: Изоляция и сохранение доказательств

cp -r /var/www/site/ /tmp/site-backup-hacked/
find /var/www/site/ -newer /var/www/site/index.php -type f | head -50
ls -lat /var/www/site/ | head -20

Шаг 2: Поиск вредоносного кода

apt install clamav -y && freshclam
clamscan -r --infected /var/www/site/

find /var/www/site/ -name "*.php" -exec grep -l "base64_decode\|eval\|gzinflate\|str_rot13\|preg_replace.*e" {} \;
find /var/www/site/ -name "*.php" -newer /var/log/dpkg.log -type f
grep -r "FilesMan\|c99\|r57\|WSO Shell\|webshell" /var/www/site/

Шаг 3: Очистка или восстановление

grep -r "eval(base64_decode" /var/www/wordpress/ --include="*.php" -l | while read f; do
  echo "Infected: $f"
done

for infected_file in $(grep -rl "eval(base64_decode" /var/www/wordpress/ --include="*.php"); do
  rm "$infected_file"
  echo "Removed: $infected_file"
done
Восстановление из бэкапа надёжнее ручной очистки. Если есть чистый бэкап до взлома — восстановите его. Ручная очистка оставляет риск пропустить один файл, что приведёт к повторному заражению через дни.

Шаг 4: Устранение причины взлома

grep "access.log" /var/log/nginx/access.log | grep "POST /wp-admin\|/xmlrpc.php" | sort | uniq -c | sort -rn | head -20
grep "404\|403" /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

Шаг 5: Уведомить Google

После очистки: Google Search Console → Безопасность → Запросить проверку. Снятие предупреждения занимает 1–3 дня.

Чеклист после восстановления

ДействиеСтатус
Сменить все пароли (БД, FTP, панель)
Обновить CMS, плагины, темы
Установить WAF (Wordfence, ModSecurity)
Настроить мониторинг изменений файлов
Проверить права на файлы
Запросить проверку в Google Search Console
Уведомить хостинг о чистке
Профилактика важнее лечения: Настройте автоматические обновления CMS/плагинов, регулярные бэкапы, мониторинг файловой системы (auditd, inotifywait) и WAF. Это сократит риск взлома на 90%.
← Назад в базу знаний Задать вопрос поддержке