Взломали Revo - чужие ссылки на сайте!

Добрый день, коллеги и гуру )
Случилась у меня беда, в один непрекрасный день гугл нашёл на моём сайте нерелевантный контент, коим оказались seoшные ссылки, добавляемые невидимым блоком внизу страницы, везде, кроме главной, как ни странно. Подобная фигня была, помнится, на EVO, а про Рево ничего не нашёл, как ни гуглил… Прогнал Айболита, нашёл он несколько подозрительных файлов, я поудалял лишние и заменил те, что системные, на заведомо чистые, из дистрибутива. Почистил кэш. Но нифига. Ничего не изменилось. Как ещё можно отследить зловреда? Версия старовата — 2.2.14, пробовал обновляться последовательно, но выше 2.2.16 начинает глючит админка и чем выше версия, тем серьёзнее глюки. Догнал до 2.4.3 и перестали открываться\создаваться ресурсы, при этом сам сайт работал нормально, правда ссылки тож никуда не делись. Потому я откатился обратно, к версии с рабочей админкой. Поможите кто чем может!
Илья Никитин
02 августа 2016, 00:53
modx.pro
2 029
0

Комментарии: 16

    Илья Никитин
    02 августа 2016, 13:07
    0
    Пользуюсь только ACE, так что тут не мой случай, к сожалению.
    Владимир
    02 августа 2016, 06:47
    0
    Взломали, потому что версия MODX древняя. А что ты хочешь при старой версии MODX? Для кого патчи выпускают?
      Владимир
      02 августа 2016, 06:57
      0
      Собери новый сайт, на новой версии. Перекинь таблицы с контентом через phpMyAdmin. Шаблоны просто руками перенеси. Быстрее будет
        Илья Никитин
        02 августа 2016, 13:09
        0
        Да, видимо так и придётся действовать, всё равно нужно обновляться, а обновление ломает админку…
        Владимир Кисилица
        02 августа 2016, 09:43
        +2
        Было такое, вирус внедрял свой код в корневой index.php. Посмотри пользователей, найди подозрительного и удали, а так же если память не изменяет, в assets есть папка вируса, для хранения скриптов и собственной БД. Чтобы найти её, сравни структуру папок с чистым дистрибутивом. После удаления, обнови modx
          Илья Никитин
          02 августа 2016, 13:11
          0
          Индекс не попорчен, а в assets нашлось только два файла явно вирусного происхождения, лишних папок не углядел… Пользователей всего 2 и один из них неактивированый, так что или через админа влезли или через фтп, но вот куда внедрили код ваще непонятно.
            Владимир Кисилица
            02 августа 2016, 14:15
            0
            Скиньте, код index.php. Я уверен, что ссылки внедрили в нём. Или Вы уже заменили его дефолтным?
              Илья Никитин
              02 августа 2016, 14:37
              0
              вот то, что сейчас в индексе

              <?php
              /*
               * MODX Revolution
               *
               * Copyright 2006-2014 by MODX, LLC.
               * All rights reserved.
               *
               * This program is free software; you can redistribute it and/or modify it under
               * the terms of the GNU General Public License as published by the Free Software
               * Foundation; either version 2 of the License, or (at your option) any later
               * version.
               *
               * This program is distributed in the hope that it will be useful, but WITHOUT
               * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
               * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
               * details.
               *
               * You should have received a copy of the GNU General Public License along with
               * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
               * Place, Suite 330, Boston, MA 02111-1307 USA
               *
               */
              $mtime= microtime();
              $mtime= explode(" ", $mtime);
              $mtime= $mtime[1] + $mtime[0];
              $tstart= $mtime;
              
              /* define this as true in another entry file, then include this file to simply access the API
               * without executing the MODX request handler */
              if (!defined('MODX_API_MODE')) {
                  define('MODX_API_MODE', false);
              }
              
              /* this can be used to disable caching in MODX absolutely */
              $modx_cache_disabled= false;
              
              /* include custom core config and define core path */
              @include(dirname(__FILE__) . '/config.core.php');
              if (!defined('MODX_CORE_PATH')) define('MODX_CORE_PATH', dirname(__FILE__) . '/core/');
              
              /* include the modX class */
              if (!@include_once (MODX_CORE_PATH . "model/modx/modx.class.php")) {
                  $errorMessage = 'Site temporarily unavailable';
                  @include(MODX_CORE_PATH . 'error/unavailable.include.php');
                  header('HTTP/1.1 503 Service Unavailable');
                  echo "<html><title>Error 503: Site temporarily unavailable</title><body><h1>Error 503</h1><p>{$errorMessage}</p></body></html>";
                  exit();
              }
              
              /* start output buffering */
              ob_start();
              
              /* Create an instance of the modX class */
              $modx= new modX();
              if (!is_object($modx) || !($modx instanceof modX)) {
                  ob_get_level() && @ob_end_flush();
                  $errorMessage = '<a href="setup/">MODX not installed. Install now?</a>';
                  @include(MODX_CORE_PATH . 'error/unavailable.include.php');
                  header('HTTP/1.1 503 Service Unavailable');
                  echo "<html><title>Error 503: Site temporarily unavailable</title><body><h1>Error 503</h1><p>{$errorMessage}</p></body></html>";
                  exit();
              }
              
              /* Set the actual start time */
              $modx->startTime= $tstart;
              
              /* Initialize the default 'web' context */
              $modx->initialize('web');
              
              /* execute the request handler */
              if (!MODX_API_MODE) {
                  $modx->handleRequest();
              }
                Владимир Кисилица
                02 августа 2016, 15:44
                0
                Файл нормальный, наверное это более продвинутый вирус, чем мне попадался. Посмотри еще может в парсере внедряются ссылки
          SaLacoste
          02 августа 2016, 12:07
          0
          Сейчас еще добавят новый контент, уберите урл сайта, мой совет.

          В самой админке нет подозрительных чанков или других элементов? Так же поддерживаю, смотри пользователей.
          Не факт что добавляли новый файл, возможно просто был получен доступ с правами администратор.
            Илья Никитин
            02 августа 2016, 13:19
            0
            Ничего подозрительного в админке не видно, в этом и загвоздка, чанки не менялись, новых вроде тоже не видно. Блок ссылок вставляется явно не стандартными средствами админки.
            Вася
            02 августа 2016, 14:45
            0
            У вас еще сайты на этом хостинге? Есть там в частности сайт на evo?
              Илья Никитин
              02 августа 2016, 15:52
              0
              Неа, на эво нету, есть ещё один на рево, тоже не слишком свежей версии, но он жив-здоров…
              Илья Никитин
              03 августа 2016, 02:27
              +1
              В общем, не знаю что это было. Поставил с нуля свежий REVO и вручную перетащил в него контент из дампа в базу. Как ни странно, обошлось без заметных косяков. Потратил пол дня, но нет худа без добра — заодно обновился.
                Владимир
                03 августа 2016, 06:34
                1
                +1
                Вот -вот) Почему то мне так сразу это и представлялось.
                Еще можно было шаблоны упаковать вот этим ThemePackagerComponent, но раз искал «заразу», то руками, конечно, вернее.
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                16