Безопасность Советы и рекомендации по защите сайта от взлома. Вирус modx
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/arteventsphuket.com/91ae/lerbim.php | Не изменялся |
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/arteventsphuket.com/jposeirt/lerbim.php | Не изменялся |
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/arteventsphuket.com/cleogiue/lerbim.php | Не изменялся |
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/artweddingphuket.ru/efaa/lerbim.php | Не изменялся |
{VIRUSDIE}Eval.request | /var/www/u0240056/data/www/artweddingphuket.ru/old/manager/min/include.php | Не изменялся |
{VIRUSDIE}Trojan.MisterSpy | /var/www/u0240056/data/www/artweddingphuket.ru/old/manager/templates/default/images/restyle/corners/resources/content-post.php | Не изменялся |
{VIRUSDIE}Trojan.FakeJoomla.1 | /var/www/u0240056/data/www/artweddingphuket.ru/old/manager/min/lib/Minify/JS/wp-layouts.php | Не изменялся |
{VIRUSDIE}Trojan.Inject.84 | /var/www/u0240056/data/www/artweddingphuket.ru/assets/gallery/70/r5smgf8qjy.php | Не изменялся |
{VIRUSDIE}Eval.b64.short | /var/www/u0240056/data/www/artweddingphuket.ru/assets/gallery/70/r5smgf8qjy.php | Не изменялся |
{VIRUSDIE}Trojan.Dropper.24 | /var/www/u0240056/data/www/artweddingphuket.ru/assets/images/accesson.php | Не изменялся |
{VIRUSDIE}Trojan.Dropper.24 | /var/www/u0240056/data/www/artweddingphuket.ru/assets/components/gallery/cache/_var_www_u0240056_data_www_artweddingphuket.ru_.b7e3a964094cfe6e29fc9228bad6e7b2.php | Не изменялся |
{VIRUSDIE}Eval.b64 | /var/www/u0240056/data/www/artweddingphuket.ru/assets/images/search.php | Не изменялся |
{VIRUSDIE}Eval.b64.short | /var/www/u0240056/data/www/artweddingphuket.ru/assets/images/search.php | Не изменялся |
{VIRUSDIE}Shell.WSO.2 | /var/www/u0240056/data/www/artweddingphuket.ru/dbs.php | Не изменялся |
{VIRUSDIE}Trojan.MisterSpy | /var/www/u0240056/data/www/artweddingphuket.ru/assets/images/content-post.php | Не изменялся |
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/artweddingphuket.ru/cleogiue/lerbim.php | Не изменялся |
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/villa.artweddingphuket.com/wp-includes/js/tinymce/plugins/wplink/jposeirt/lerbim.php | Не изменялся |
{VIRUSDIE}WP.inject.2 | /var/www/u0240056/data/www/artweddingphuket.ru/assets/images/wp-nav-menus.php | Не изменялся |
{VIRUSDIE}Trojan.Inject.12 | /var/www/u0240056/data/www/artweddingphuket.ru/wp-single.php | Не изменялся |
{VIRUSDIE}Eval.request | /var/www/u0240056/data/www/artweddingphuket.com/manager/min/lib/Minify/Cache/include.php | Не изменялся |
{VIRUSDIE}Trojan.FakeJoomla.1 | /var/www/u0240056/data/www/artweddingphuket.ru/assets/images/newsfeeds.php | Не изменялся |
{VIRUSDIE}Trojan.Inject.12 | /var/www/u0240056/data/www/villa.artweddingphuket.com/wp-includes/js/tinymce/plugins/wplink/wp-single.php | Не изменялся |
{VIRUSDIE}Trojan.MisterSpy | /var/www/u0240056/data/www/artweddingphuket.com/manager/templates/default/images/modx-theme/progress/content-post.php | Не изменялся |
{VIRUSDIE}Eval.request | /var/www/u0240056/data/www/seethesea.co/wp-content/themes/seethesea/libs/jqueryui/include.php | Не изменялся |
{VIRUSDIE}Trojan.FakeJoomla.1 | /var/www/u0240056/data/www/artweddingphuket.com/manager/templates/default/images/modx-theme/shared/wp-layouts.php | Не изменялся |
{VIRUSDIE}Trojan.FakeJoomla.1 | /var/www/u0240056/data/www/seethesea.co/wp-content/themes/seethesea/woocommerce/loop/wp-layouts.php | Не изменялся |
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/seethesea.co/cleogiue/lerbim.php | Не изменялся |
{VIRUSDIE}Eval.request | /var/www/u0240056/data/www/luxuryestatephuket.com/wp-content/plugins/tinymce-advanced/mce/link/include.php | Не изменялся |
{VIRUSDIE}Trojan.MisterSpy | /var/www/u0240056/data/www/seethesea.co/css/content-post.php | Не изменялся |
{VIRUSDIE}Trojan.MisterSpy | /var/www/u0240056/data/www/luxuryestatephuket.com/wp-content/plugins/tinymce-advanced/js/content-post.php | Не изменялся |
{VIRUSDIE}Suspect.Restore.1 | /var/www/u0240056/data/www/luxuryestatephuket.com/cleogiue/lerbim.php | Не изменялся |
{VIRUSDIE}Trojan.Inject.12 | /var/www/u0240056/data/www/seethesea.co/wp-content/plugins/woocommerce/templates/order/wp-single.php | Не изменялся |
{VIRUSDIE}Trojan.Inject.12 | /var/www/u0240056/data/www/luxuryestatephuket.com/wp-includes/js/tinymce/plugins/wplink/wp-single.php | Не изменялся |
{VIRUSDIE}Trojan.FakeJoomla.1 | /var/www/u0240056/data/www/luxuryestatephuket.com/wp-content/themes/villa/js/fancybox-master/wp-layouts.php | Не изменялся |
freelancehunt.com
Атака на MODX Evolution и что с этим делать
За последний месяц было атаковано очень много сайтов на MODX Evolution и Clipper. В сообществе то и дело возникают вопросы, связанные с симптомами этого заражения, посему набросал, небольшой мануал.
Итак, симптомы
- Не происходит переходов по ссылкам в меню сайта
- Не открывается главная страница
- Не открывается админка
- Хостер пишет гневные письма о массовой рассылке СПАМа с Вашего аккаунта и отключает функцию mail()
- В файловой структуре сайта присутствует множество левых файлов и директорий с непонятными названиями.
Причины
Переход по меню не происходит из-за измененного .htaccess. Сайт не открывается из-за измененного index.php, либо заблокированных антивирусом на хостинге системных файлов MODX. Та же причина неработающей админки. СПАМ рассылается вредоносными скриптами, разбросанными по всему сайту.Инструментарий
Во-первых, потребуется доступ по FTP, а лучше по SSH. Удобно использовать клиент WinSCP, поскольку в нем легко архивировать, искать, менять права и т. д. Во-вторых, нужен доступ к базе данных. Можно посредством phpMyAdmin, можно, если хостинг позволяет, локальными методами — не важно. В-третьих, понадобится антивирус. Я использую Айболит под Win, но можно и что-нибудь другое.
Бэкап
Первым делом создаем резервные копии файловой системы и базы сайта. Поскольку эта зараза иногда меняет права доступа к файлам (да и многие хостеры тоже их ограничивают при подозрении на заражение), то сперва задаем всем директориям права 0755, а файлам 0644. Если на хостинге есть файловый менеджер, который позволяет это делать, то делаем через него, если нет, то используем FTP или SSH. Второе предпочтительнее, поскольку просто на порядок быстрее. Команды (в WinSCP жмем Ctrl+T, вводим команду и «Выполнить» ): Для директорий:find путь_до_сайта_от_корня -type d -exec chmod 0755 {} \; Для файлов:find путь_до_сайта_от_корня -type f -exec chmod 0644 {} \; Путь можно скопировать в буфер, зайдя в папку сайта и нажав Ctrl+]. Теперь (для SSH) выделяем всё и в контекстном меню выбираем «Файловые пользовательские команды -> Tar/GZip». Создаем архив и скачиваем на компьютер. Если доступ есть только по FTP, попробуйте также посредством WinSCP запаковать сайт через «Файловые пользовательские команды -> ZIP and Upload». Это дольше нежели Tar, но тоже работает. Ну и, естественно, можно воспользоваться файловым менеджером хостинга. Как правило, на всех современных площадках функция архивирования есть.Лечение
Скачиваем Айболит и устанавливаем его на компьютер. Распаковываем файлы сайта в директорию site и запускаем файл start.bat из корневой директории антивируса. Можно запустить start_paranoic.bat, но он там частенько ругается на нормальные файлы MODX. После проверки открываем файл отчета, офигеваем смотрим список инфицированных файлов, проверяем КАЖДЫЙ и в случае, если файл «левый», просто удаляем, если «свой», но инфицированный, вырезаем чужую вставку. Как отличить левый или нет. Если в файле только чушь типа:.......................... то смело его удаляем. Если, промотав до конца этой ерунды, увидим закрывающий тег PHP, за ним вновь открывающий и начало нормального кода:<?php //тут чушь ?> <?php /* german.inc.php - for AjaxSearch 1.10.1 Created by: Marc Hinse Last Modified on 2014-12-09 Description: Language strings for AjaxSearch */ $_lang['as_resultsIntroFailur ...............То это файл нужный. Просто убиваем все, что до нормального кода и так потихоньку вычищаем эти авгиевы конюшни. Тут два подхода — первый чистить на локальной машине, а потом залить на сервер, второй — чистить сразу на сервере. Я рекомендую второй — оно быстрее.
После того как все файлы почищены, нужно проверить, нет ли на сайте хитрого плагина, который вновь заразит нам всё на свете. Для этого в phpMyAdmin открываем таблицу modx_site_plugins (префикс таблицы может быть другим) и ищем в в поле plugincode текст:
base64_ Почему бы не поискать в дампе базы? Можно, но как-то раз столкнулся с тем, что там ничего не было:в коде самого плагина тоже пусто:
А в базе есть (!): В общем, удаляем дрянь.
Скачиваем свежий дистрибутив от Dmi3yy, восстанавливаем оттуда два файла: .htaccess и index.php, удаляем из директории acess/cache файл siteCache.idx.php и пробуем запустить сайт. Если получилось, то открываем вновь созданный siteCache.idx.php и пробегаемся поиском на предмет того самого base64_. Если чисто, то злодей из плагинов удален и можно переходить к следующему этапу. Если нет, то снова лезем в базу и ищем негодяя.
Обновление
Если этого не сделать, то через неделю ваш сайтик снова будет поражен заразой и все придется начинать по новой. Итак, снова бекапимся (базу и файлы). Заливаем, скачанный ранее, дистрибутив на сервер, распаковываем и запускаем site.ru/install/ Пробуем открыть админку и т. д. Если все ОК идем в Модули -> Extras и обязательно обновляем всякие MultiPhotos, PHx и т. д., если их используете (основные компоненты обновятся автоматически при установке). Если не запустилось, то проверяем это, чистим кеш, смотрим логи ошибок и т. д.
Подводные камни при обновлении
Из того, с чем сталкивался чаще всего.Не пускает в админку.
Лезем в базу в таблицу modx_manager_users, прописываем админу в поле password такой хеш: 5f4dcc3b5aa765d61d8327deb882cf99 и используем слово password в качестве пароля — потом только не забудьте поменять)).Не работает галерея easy2
Открываем config.inc.php и меняем в 5 строке mysqli на просто mysql, чистим кеш, пробуем работатьПри обновлении Clipper
Нужно убить сниппет List и везде на сайте (в чанках и шаблонах) поменять его вызовы на Ditto. Вообще, при всех глюках первым делом смотрим есть ли в Extras обновление того или иного компонента. Обновляемся, проверяем.modx.ru
Безопасность - Школа MODX
Если вы еще ни разу не задумывались о безопасности своих сайтов, поздравляю вас, ваши сайты скорее всего заражены какой-нибудь гадостью.
Уверены, что это не так? Я буду искренне рад ошибиться. Но практика говорит об обратной тенденции. Огромная армия "веб-разработчиков" ни разу не обновляла движок, не просматривала логи, не проверяла наличие посторонних файлов, не меняла годами пароли. Сплошь и рядом встречаешь вопросы о древних версиях движка, а ведь это потенциальные "счастливчики", которые с высокой степенью вероятности являются частью ботнета.
Безопасность - это то, что может и должно делать вас настоящим параноиком. И как настоящий параноик вы должны делать все, чтобы не заразиться каким-нибудь трояном, дорвеем или шеллом.
Но не надо думать, что MODX это дырявый движок и что его постоянно взламывают. Взламывают абсолютно все движки и данная статья в равной степени относится к любой CMS платной или бесплатной. Вопрос безопасности в большинстве случаев зависит не от движка, а от отношения к безопасности сайта.
Вот несколько профилактических советов, которые не уберегут вас, но хотя бы помогут снизить риск:
1. Пароль
Начну с самого банального и уже миллион раз сказанного. Никогда не используйте простые пароли! 123456, qwerty, password, admin, test и т.д. ЗАБУДЬТЕ ИХ НАВСЕГДА! Пароль должен состоять из случайного набора букв и цифр. Записывайте эти пароли и меняйте как можно чаще. И вообще, для кого я в левой колонке генератор паролей повесил?
Для поднятия настроения, которое дальше я вам буду усиленно портить, вот анекдот в тему:
— Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый!— розы— Извините, слишком мало символов в пароле!— розовые розы— Извините, пароль должен содержать хотя бы одну цифру!— 1 розовая роза— Извините, не допускается использование пробелов в пароле!— 1розоваяроза— Извините, необходимо использовать как минимум 10 различных символов в пароле!— 1грёбанаярозоваяроза— Извините, необходимо использовать как минимум одну заглавную букву в пароле!— 1ГРЁБАНАЯрозоваяроза— Извините, не допускается использование нескольких заглавных букв, следующих подряд!— 1ГрёбанаяРозоваяРоза— Извините, пароль должен состоять более чем из 20 символов!— 1ГрёбанаяРозоваяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБляСейчас!— Извините, этот пароль уже занят!
2. Логин администратора и других пользователей
Про пароли и так вроде бы все всё знают, поэтому двигаемся далее. Знаете ли вы, что большинство сайтов на MODX имеют пользователя admin, причем это пользователь с административными правами? У вас не так? Поздравляю! Но большинство просто не догадывается использовать какой-то другой логин для администратора, потому что "так было в уроках". Ну а теперь представьте, что у вас администратор с логином admin и паролем 123456... И уверяю вас, таких умников хватает. Ах, да, вторым по популярности пользователем является manager... Беден и скуп русский язык на английские слова.
Кстати, вы уже 13595 посетитель, который неожиданно для себя решил попробовать подобрать логин и пароль к этому сайту :)
3. Вход в административную панель
В сравнении с предыдущими двумя пунктами это не менее серьезно, но чтоб вы знали, 99,99% сайтов MODX Evolution имеют один и тот же адрес панели управления, и это не смотря на то, что теперь его можно легко менять. Смена адреса админки конечно же не гарантирует 100% защиты сайта, но потенциальному взломщику может усложнить процесс. Если вы настоящий параноик, вы знаете что нужно делать ;)
Для остальных рассказываю:
1. Переименовываете папку manager, например в reganam
2. В файле assets/cache/siteManager.php меняете manager на reganam
3. В файле robots.txt меняете запись Disallow: /manager/ на Disallow: /reganam/
4. Не афишируйте на какой CMS сделан ваш сайт
Каждый движок обладает признаками, по которым его можно определить с высокой степенью вероятности. Есть такие и у MODX. Но это не означает, что вы должны сообщать всем прохожим, что ключ от вашей квартиры лежит под ковриком в подъезде. Да, кстати, этот сайт сделан на Джумле.
5. Обновляйте CMS своевременно
Чем больше прошло времени с момента выхода нового обновления до того момента, как вы решили обновиться, тем больше ваш сайт подвержен уязвимости. Выход новых версий, как правило, сопровождается списком внесенных изменений, в том числе и связанных с устранением дыр в системе безопасности. Этому могут предшествовать публикации о взломах или найденных дырах. Т.е. потенциально каждая новая версия движка снижает безопасность старых версий и подвергает их дополнительному риску. Но если вы любитель острых ощущений, просто проигнорируйте этот пункт.
6. Не используйте сомнительные дополнения
Скрипты, модули, плагины, сниппеты - сколько всего интересных разработок, которые так и хочется использовать в своих проектах! Фу-фу-фу! Очень часто мы сами закачиваем вирусы на свой сервер. Это тот случай, когда самым опасным и уязвимым элементом сайта является его администратор!
7. Выбирайте правильный хостинг
Надежных хостингов не существует. Надежных виртуальных хостигов нет вообще. Миф разрушен. Но большинство сайтов расположены именно на виртуальных хостингах. Но, независимо от типа хостинга, выбирайте тот хостинг, где поддержка будет относиться к вам как заботливая мать к неразумному ребенку, т.е. вытирать вам нос на каждый чих. Пожалуй, это единственный объективный критерий любого хостинга.
Помимо непосредственной безопасности сервера, о которой вам никто ничего рассказывать не будет, у виртуальных хостингов есть еще одна повсеместная беда. Общественные IP адреса, которые вам выдают на виртуальном хостинге, очень часто попадают в блеклисты. Происходит это по понятным причинам, чем больше сайтов на одном IP тем выше вероятность заражения какого-нибудь сайта и как следствие блокировки IP. По этой причине НИКОГДА не заводите почтовый сервер на виртуальном хостинге. А если все таки нужна почта на домене, лучше используйте яндексовскую почту для доменов. Хостеры как могут борятся с этой бедой, но за блеклистами следует следить и самостоятельно, например, с помощью этого сервиса, и напоминать хостеру при необходимости.
Риск попадания в блеклисты резко снижает наличие выделенного IP, но за все в этом мире надо платить.
8. FTP и SSH
Настоящий параноик хочет только одного, да и этого немного, да почти что ничего, а конкретно он хочет защищенного соединения с сервером. Поэтому, если есть возможность, которую должен предоставить хостер, отказывайтесь от FTP в пользу SSH. Что это и с чем едят, советую изучить заочно. Скачайте SSH-клиент, например WinSCP и наслаждайтесь процессом. Если же ваш хостинг не предоставляет вам такого удовольствия, а предлагает влачить жалкое существование по FTP каналу, то ни в коем случае не храните свои пароли в FTP-клиенте. И пусть вам сопутствует удача.
9. Контролируйте логи, системные сообщения, проверяйте наличие посторонних файлов
Визуальный контроль ни коим образом не обезопасит, но вы имеете шанс своевременно узнать о взломе. А чем раньше вы это узнаете, тем проще будет решить проблему. В первую очередь уделяйте внимание системным сообщениям. Информация о том, что были изменены системные файлы является пожарной тревогой. Срочно ищите что было изменено и к чему это привело.
Периодически проверяйте сайт на подозрительные файлы. В этом вам поможет замечательный скрипт AI-Bolit. Несложная инструкция по установке находится здесь. Если у вас нет достаточных знаний, то просто сверяйте все подозрительные файлы с аналогичными из исходников движка.
10. Бекапы
Делайте бекапы. И этим все сказано. Кто не сохранился, я не виноват.
11. Личная гигиена
Большинство пользователей едят перед компьютером и сильно пачкают едой клавиатуру. Еда гниет и из клавиатуры начинают расползаться страшные и вредные вирусы. Поэтому, обязательно мойте руки до, после и желательно вместо клавиатуры. И это не шутка. Но если быть чуть ближе к теме, то под личной гигиеной я подразумеваю чистоту и безопасность тех устройств, через которые вы подключаетесь к серверу или работаете с сайтом. Не пренебрегайте проверками своего компьютера. Именно через ваш компьютер злоумышленникам проще всего добраться до вашего сайта.
Итак, вы прониклись и стали настоящим параноиком в безопасности вашего сайта. Но вас все равно взломали. А я предупреждал, что советы советами, а вирусы все равно не дремлют, в отличии от вас. И первый вопрос, что делать? Ну и далее по классику, кто виноват?
1. В первую очередь необходимо установить хронологию событий. Надо выяснить когда и как это произошло. Помогут в этом access_log и error_log. Если вы не знаете как их посмотреть, обратитесь к хостеру.
2. Смените все пароли!
3. Просканируйте файлы сайта скриптом AI-bolit или попросите об этом своего хостера. Анализ подозрительных файлов поможет выявить угрозы.
4. Проверьте антивирусом все компьютеры, с которых осуществлялся доступ к сайту. Надеюсь, объяснять, что проверяемый компьютер должен быть на это время отключен от интернета, не нужно?
5. Помните, я говорил вам про бекапы? Если выявить и устранить угрозу не получается, восстановите сайт из резервной копии и обратитесь за помощью к специалистам.
6. Обновите CMS до актуальной версии.
Отзывы, советы и замечания приветствуются.
i--gu.ru