Взлом сайта — стрессовая ситуация, требующая чётких и быстрых действий. Главное правило: не паниковать, действовать системно. Большинство сайтов можно полностью восстановить за несколько часов.
Признаки взлома сайта
- Редирект на чужой сайт (фарминг, фишинг)
- Предупреждение 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%.