В последние недели участились случаи заражения сайтов, где установлен устаревший редактор JCE или связанные с ним загрузчики файлов. Проблема опасна тем, что сайт может внешне продолжать работать, но внутри уже появляются посторонние файлы, скрытые скрипты, редиректы или новые точки доступа для повторного взлома.
JCE долгое время был популярным редактором для сайтов на Joomla, поэтому под риск попало много проектов, которые давно не обновлялись. В таких случаях злоумышленники могут загрузить на сайт исполняемые файлы, внедрить вредоносный код в шаблон или добавить скрытые вставки в базу данных.
Если на сайте появились редиректы на чужие страницы, странные скрипты в исходном коде, предупреждения от браузера или поисковиков, сайт стоит проверить как можно быстрее.
Как может проявляться заражение
- с главной страницы или отдельных страниц появляется редирект на посторонний сайт;
- в исходном коде видны неизвестные JavaScript-вставки;
- в папках сайта появляются PHP-файлы с непонятными названиями;
- поисковики начинают показывать предупреждения о вредоносном коде;
- хостинг сообщает о подозрительной активности;
- часть страниц начинает открываться с ошибками;
- в админке появляются неизвестные пользователи или расширения.
Что проверить на хостинге
Для первичной проверки нужно открыть файловый менеджер хостинга или подключиться к сайту по FTP/SFTP. В первую очередь стоит отсортировать файлы по дате изменения и внимательно посмотреть все, что появилось или изменялось за последние 14 дней.
Особое внимание стоит уделить следующим папкам:
/images//media//tmp//cache//administrator/cache//plugins//modules//components//templates/
Что подозрительно в папке images
В папке /images/ обычно должны храниться изображения и документы. Там не должно быть исполняемых PHP-файлов.
Подозрительные расширения для /images/:
.php.phtml.php5.phar.xml.php
Обычно допустимы файлы таких типов:
.jpg,.jpeg.png.gif.webp.svg.pdf.doc,.docx.xls,.xlsx
Особенно подозрительны файлы с названиями вроде:
shell.phpcmd.phpupload.phpcache.phpp.php1.php,2.phptest.phpinfo.php*.xml.php- файлы со случайными наборами букв и цифр в названии.
Что проверить в tmp, cache и media
В папке /tmp/ не должно быть старых установочных архивов, неизвестных папок и PHP-файлов. После установки или обновления расширений там иногда остаются временные файлы, но они не должны лежать месяцами.
В папках /cache/ и /administrator/cache/ подозрительны отдельные PHP-файлы с непонятными именами, особенно если они появились недавно и не похожи на обычный кэш системы.
В папке /media/ также стоит проверить новые PHP-файлы, необычные JavaScript-файлы и вложенные каталоги с непонятными названиями.
Что проверить в корне сайта
В корне сайта не должно быть лишних PHP-файлов рядом с основным index.php. Подозрительно, если там появились файлы вроде:
p.php1.phptest.phpinfo.phpupload.phpcache.php
Также стоит проверить, нет ли подозрительных архивов в корне сайта и служебных папках:
.zip.rar.tar.gz
Особенно внимательно стоит смотреть архивы в /tmp/, /images/ и корне сайта.
Проверка файла .htaccess
Файл .htaccess нужно проверить в корне сайта и во вложенных папках, если такие файлы там есть. Подозрительно, если внутри появились:
- редиректы на чужие домены;
- упоминания
base64; - упоминания
eval; - странные правила
RewriteRule; - отдельные правила для мобильных пользователей;
- отдельные правила для поисковых ботов;
- условия, которые скрывают вредоносный код от владельца сайта.
Проверка админки и пользователей
После проверки файлов нужно зайти в админку сайта и посмотреть учетные записи пользователей. Важно проверить, не появились ли новые пользователи за последние 1–2 недели, особенно с правами администратора или суперпользователя.
Также стоит проверить список установленных расширений: компонентов, модулей и плагинов. Если появились неизвестные расширения, которые никто не устанавливал, это может быть следом взлома.
Проверка cron и логов
На хостинге стоит проверить планировщик задач cron. Там не должно быть неизвестных команд, которые запускают PHP-файлы из папок сайта.
Также полезно посмотреть логи доступа за последние 1–2 недели. Частые обращения к файлам вида:
/images/*.php/tmp/*.php/cache/*.php/media/*.php
могут указывать на то, что на сайте был загружен и использовался вредоносный файл.
Если найден подозрительный файл
Не стоит открывать подозрительный PHP-файл в браузере. Так его можно случайно запустить. Лучше скачать файл для анализа, показать специалисту или временно переименовать его, например добавив расширение .txt, чтобы он не выполнялся сервером.
Важно понимать: один найденный файл редко означает, что проблема только в нем. Часто после взлома остается несколько файлов и вставок в разных местах сайта.
Что делать после очистки
После удаления вредоносных файлов нужно закрыть причину заражения. В случае с уязвимым JCE обычно требуется обновить или заменить редактор, проверить загрузчики файлов и обновить остальные расширения сайта.
Также рекомендуется обновить:
- CMS сайта;
- редактор JCE или заменить его на безопасную актуальную альтернативу;
- компоненты;
- модули;
- плагины;
- шаблон, если он давно не обновлялся.
После очистки обязательно нужно сменить пароли:
- от хостинга;
- от FTP/SFTP;
- от админки сайта;
- от базы данных;
- от почты администратора.
Через 2–3 дня желательно повторно проверить файлы по дате изменения. Если подозрительные файлы появились снова, значит на сайте осталась точка входа или не была закрыта уязвимость.
Когда лучше обратиться к специалисту
Если на сайте уже есть редиректы, неизвестные скрипты, новые PHP-файлы в папках с изображениями или предупреждения от поисковиков, лучше не ограничиваться поверхностной очисткой.
В такой ситуации нужно проверить файлы, базу данных, пользователей, расширения, cron-задачи и логи, а затем обновить сайт и закрыть уязвимые места. Если нужна помощь с проверкой, очисткой и обновлением сайта, вы можете обратиться к нам.