Блог. Взломать сайт на джумла
Joomla сайт взломан или поврежден? Порядок действий!
Ваш сайт был взломан, дефейснут или испорчен вирусом?
Главное не паниковать, в любом случае, у вас же есть бэкап сайта?
Перед тем как бить в колокола на форумах и обращаться к нам за помощью, пожалуйста, прочитайте этот чек-лист, а затем используйте его как шаблон для ваших сообщений.
План действий
- Переведите ваш сайт в режим офлайн (мы рекомендуем htaccess метод).
- Запустите помощника и утилиту безопасности Joomla, простая инструкция находится здесь. Подробная инструкция включена в сам пакет. Вы должны распаковать данный архив и загрузить файл «fpa-en.php» на ваш сервер в root-директорию Joomla.
- Просканируйте все компьютеры и планшеты (телефоны) на которых есть FTP доступ к вашему сайту, с которых заходили на сайт под Супер администратором и администратором на наличие вредоносных программ, вирусов, троянов, шпионских программ и т.п. (смотрите раздел Локальная безопасность).
- Убедитесь, что у вас последняя версия Joomla.
- Уведомите вашего хостинг-провайдера о вашей проблеме, очистите сайт вместе и проверьте сайт на наличие бэкдор (backdoor) программ.
- Просмотрите список уязвимых расширений, чтобы увидеть, есть ли у вас какие-то уязвимые расширения и как бороться с ними. Ключом к решению почти всех вопросов являются логи файлов. Вот пример того, что нужно искать:
- Проведите аудит безопасности по этому списку, убедитесь, что вы прошли через все шаги (обратите внимание, что некоторые шаги являются необязательными, но, пожалуйста, рассмотреть их все).
- Изменить все пароли и, если возможно, то и имена пользователей на панели управления хостингом, MySQL, FTP, Joomla! Super Admin и Joomla! администратора, меняйте их часто в принципе. Пароль должен быть не менее 12 смешанных буквенно-цифровых символов и не содержать общих фраз, слов. Не используйте стандартного Администратора, отключите его. Если вам нужно сбросить пароль администратора, см. эти инструкции.
- Замените все шаблоны и фалы чистыми копиями.
- Проверьте и/или замените все файлы PDF, изображения, фото, видео файлов на наличие эксплойтов.
- Проверьте лог вашего сервера на наличие запросов к подозрительным файлам с IP-адресов или попыток выполнения не стандартных POST команд.
- Используйте соответствующие разрешения на файлы и каталоги. Они никогда не должны быть 777, в идеале 644 для файлов и 755 папок.
- Отключите анонимного пользователя FTP.
chmod и cron
Если у вас есть разрешение на доступ к SSH (Secure Shell), то с помощью «putty» можно выставить рекомендуемый CHMOD для файлов и каталогов. Если вы не имеете доступа к командной оболочке, вы можете запустить команды через cron, путем создания временной задачи cron. Скопируйте и вставьте команды в cron. Выставите на исполнение через 2 минуты после сохранения задачи.
При использовании команды через «putty» или cron, используйте полный физический путь к public_html, рекомендуется для наилучшего результата.
Для файлов
Для директорий
find /home/xxxxxx/domains/xxxxxxx.com/public_html -type d -exec chmod 755 {} \;Для проверки последнего изменения файлов (за последний день) в вашей системе используйте эти команды через putty (SSH - Secure Shell) или через cron. Если вы запустите команду через cron, то вы можете запланировать её для проверки измененных файлов несколько раз в день. Результат будет отправлен владельцу учетной записи хостинга (домена) и покажет время / даты для любых измененных файлов.
find /home/xxxxxx/domains/xxxxxxx.com/public_html -type f -ctime -1 -exec ls -ls {} \;При использовании команды через «putty» или cron, используйте полный физический путь к public_html, рекомендуется для наилучшего результата.
Пожалуйста, обратите внимание, что файлы вашего сайта могут быть расположены в public_html, httpdocs, WWW, или другом подобном месте. Ваш физический путь также может быть иной, чем в примерах. Отредактируйте физический путь соответственно.
Разрешения 777
Если ваш сервер требует разрешений 777, для правильной работы Joomla, то попросите перенести на другой сервер с PHP приложения, такие как CGI и suphp. Обязательно необходимо иметь актуальные версии серверного программного обеспечения (Apache, PHP и т.д.) на существующем хосте или найдите другого хостинг-партнера, если необходимо.
Чтобы защитить каталоги, которым нужно разрешение 777, попробуйте положить этот код в открытую папку (в фале .htaccess):
# secure directory by disabling script execution AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi Options -ExecCGIПроверьте вашего хостинг-провайдера на предмет выполнения регулярных (еженедельных) обновлений безопасности для поддержания работоспособности сервера в актуальном состоянии.
Правило: чем меньше вы платите, тем меньше они заботятся.
Быстрое восстановление работы сайта при бедствии
- Сохраните файл configuration.php, ваши изображения (видео) и личные файлы по одному (не папкой, так как она может содержать нежелательные файлы).
- Удалите всю папку, в которой установлена Joomla!
- Загрузить новый, чистый, полный пакет последней версии Joomla 2.5 или Joomla 3.x (без папки установки).
- Закачайте обратно configuration.php, ваши изображения (видео) и личные файлы.
- Загрузите или переустановите последние версии расширений, шаблонов (еще лучше использовать оригинальные и чистые копии для того, чтобы хакер не оставил никаких файлов и скриптов на вашем сайте).
Чтобы сделать это, сайт будет не доступен, вам потребуется 15 минут. Чтобы отследить взломан или испорчен сайт, потребуется несколько часов или даже дольше.
Локальная безопасность
1. Не сохраняйте имена и пароли в FTP программах (используйте менеджер паролей, например бесплатный «keepass»).2. Просканируйте все компьютеры и планшеты (телефоны) на которых есть FTP доступ к вашему сайту, с которых заходили на сайт под Супер администратором и администратором на наличие вредоносных программ, вирусов, троянов, шпионских программ и т.п.3. Некоторые антивирусы:
4. Используйте Ultimate Boot CD for Windows, для ремонта, восстановления или диагностики практически любой проблемы на домашнем компьютере.
Другие вопросы безопасности
- Не используйте стандартный префикс таблиц jos_
- Установить ленту новостей Joomla Security в качестве основного верхнего модуля в панели управления администратора. Настройка ленты новостей Joomla Security.
- Добавьте в файл .htaccess черный список ботов
- Используйте sFTP вместо FTP где это возможно
- Не используйте анонимный FTP ни в каком случае
- Используйте сервера, где mod_security настроен правильно
- Проверьте все субдомены и директории
- Проверьте все cgi-скрипты
- Проверьте все задачи cron установленные не администратором
- Полностью удалите неиспользуемые или уязвимые расширения.
Этот документ распространяется на все версии Joomla.
Используйте последнюю версию Joomla, совместимую с существующей, на которой работает ваш веб-сайт до проведения работ.
Некоторые версии уже не поддерживаются и требуют миграции сайта на новую версию Joomla.
Ваш сайт Joomla выйдет из строя, если использовать для перезаписи более ранние версии Joomla. Например: Не перезаписывать 1.5.xx версией 2.5.xx.
Что делать если ваш сайт на Joomla взломали?
Подробности Создано: 29 декабря 2012Основная проблема сайтов, написанных на свободных и общедоступных CMS в том, что их легко взломать. И есть есть схема взлома, то с этим справится даже школьник. К сожалению, Joomla — это одна из стандартных систем, которые могут быть легко взломаны.
Чтобы не допустить взлома сайта надо регулярно обновлять CMS и компоненты, плагины, моды до более новой версии, ставить патчи на дыры и делать бекапы на домашний ПК. Все неиспользуемые компоненты, модули, плагины, шаблоны и прочее лучше удалять полностью.
Как обезопасить себя от взлома сайта?
- Удалить каталог installation
- Права доступа: Установите к файлу конфигурации configuration.php права доступа в виде значения 444. Правда, после этого вы не сможете изменять параметры Joomla (потребуется заново установить права 666, затем изменить файл и опять установить права 444):chmod 444 configuration.phpНа все файлы установите права доступа в виде значения 644 (кроме configuration, php), а на все каталоги — в виде значения 755. Но это нужно сделать уже после того, как настроили сайт и установили все необходимые расширения. Права со значением 777 нужно установить только на следующие каталоги:administrator/backups/; cache/; images/; images/banners/; images/stories/.
- Чтобы скрыть, что вы пользуетесь Joomla, надо использовать SEF компоненты для генерации человеконятных ссылок
- Лучше скрыть, какой CMS Вы пользуетесь. Тогда риск попадания Вашего сайта в поле зрения хакера резко снижается. Для этого надо удалить из кода Вашего сайта строчку:<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" />Заходите на свой сайт по ФТП и идёте по этому пути ВАШ_САЙТ/libraries/joomla/document/html/renderer/. В этой папке находите файл head.php и открываете его, например, блокнотом. С помощью поиска ищете эту строку:$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;или $buffer .= $tab.'<meta name="generator" content="'.htmlspecialchars($document->getGenerator()).'" />'.$lnEnd; (для Joomla 1.6)Удалите её и скопируйте файл обратно на сайт. Теперь стало на одну лишнюю строку кода меньше.
- При установке сайта лучше не использовать стандартные джумловские префиксы к таблицам.
- Желательно, чтобы не было пользователя с ником admin или administrator.
Что сделать, если сайт уже взломали?
- Заменить index страницу из бекапа (делайте бекапы!)
- Проверить доступ к бд, админке, фтп - изменить пароли на другие
- Поставить минимальный доступ к конфигурационному файлу configuration.php
- Проверьте не появилась ли новая версия Джумлы и обновите ее, если так оно и есть.
miladyad.ru
Взлом сайта на Joomla: устранение последствий
К чему может привести взлом Joomla? Последствий несколько: заражение сайта вирусом, дефейс сайта, всовывание чужих ссылок в страницы сайта.
Последний способ, несмотря на безобидность, самый опасный. О том что у Вас в код сайта всунуты чужие ссылки, можно узнать лишь через несколько месяцев, а урон от потери позиций в поисковиках может быть существенным.
Внимательно следите за своими сайтами и проверяйте хотя бы главные страницы на наличие вредоносного кода и чужих ссылок.
Устранение последствий и профилактика взлома CMS:
- Обновить Joomla до последней версии при помощи патча - http://joomlacode.org/gf/project/joomla/frs/?action=FrsReleaseBrowse&frs_package_id=5325
- Залить поверх движка последнюю версию Joomla, без папки installation
- Залить поверх шаблона его резервную копию, если ее нет- проверить файлы шаблона антивирусом и на наличие чужих ссылок в index.php шаблона
- Скачать весь сайт и проверить его антивирусом
- Проверить корень сайта и папку images на наличие подозрительных лишних скриптов
- Обновить все расширения до последних версий, неиспользуемые расширения удалить
- Удалить всех администраторов кроме одного и сменить основному пароль и логин
- Сменить пароль к FTP и панели управления хостингом
- Поставить на компьютер антивирус и делать еженедельную проверку (также проверять утилитой cureit от Доктор Веб)
- Включить SEF - это нужно для того, чтобы злоумышленники не нашли Ваш сайт через поисковик
Обязательно добавьте сам сайт и карту сайта в сервисы для вебмастеров Яндекс и Google. С их помощью можно как ускорить вывод сайта из черного списка зараженных, составленный поисковиком, но и получить уведомление о заражении, если оно произойдет.
webmaster.yandex.rugoogle.ru/webmasters/
Сайты со списками уязвимых расширений:
forum.antichat.ru: тема об уязвимостях Joomla на форуме хакеровjoomlaos.de: список уязвимых расширений на немецком портале о Joomla docs.joomla.org: официальный список уязвимых расширений3 основных способа взлома:
vjoomla.ru
Как защитить Joomla 1.5 от взлома хакерами
Целью написание данной статьи явилась потребность защиты CMS Joomla 1.5 от взлома забугорными хакерами. Так как в 2010 году участились массовые взломы сайтом работающие на Joomla 1.5 в доменной зоне RU.Рассказ про то что Joomla бесплатная и у неё открытый исходный код , который известен всем в том числе и хакерам я упущу. Думаю эту подноготную вы и так сами знаете, так что сразу перейдём к техническим моментам.
Часть 1 Как хакеры находят свою жертву
Давайте начнём с того , что на сегодняшний день хакерам известны ряд способов взлома Джумлы (об этих способов я расскажу позже детально), и из этого можно сделать вывод если хакеры знают уже готовые способы взлома сайта им остаётся найти всего лишь своё жертву работающую на CMS Joomla чтобы воплотить свой ритуал. Каким образом они это делают ? Способов очень много один из самых распространённых способов - это поиск через поисковую систему с указанием особых параметров ( которые отвечают за cms) и региона сайта. После чего им выдаются результаты поиска где в списке все сайты работающие Joomla такой то версии в такой то стране. Вот так ваши сайты попадают в поле зрение хакеров.Из этого можно сделать вывод самое первое средство защиты от взлома это скрыть информацию о cms работающей на вашем сайте от различных публичных сервисов и поисковиков, чтобы не попасть в список потенциальных жертв.Теперь каким образом наш сайт на Джумле сообщает поисковикам и прочим сервисам интернета что «Я Джумла 1.5» а самым простым если вы откроете исходный код в страничке браузера любого сайта на Джумле то в самом верху кода вы найдёте такую строчку<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" />да это именно мета тег, который сообщает с помощью какого скрипта была создана (сгенерирована страница), именно по этому мета тегу злоумышленники и находят ваш сайт и тысячи других. Конечно существует ещё способы нахождения сайта работающего на CMS Joomla но эти способы более сложны и применяются очень редко хакерами для поиска жертвы.
И так как скрыть ярлык что наш сайт работает на Джумле, для этого нам надо отредактировать файл head.php который даёт именно этот выхлоп в шаблон джумлы, он находиться /libraries/joomla/document/html/renderer/head.phpОткрыв его находим код (район 83 строки)$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;и удаляем его от греха подальше.
После того как вы удалили этот код то можно сказать на 90% вы обезопасили себя от попадания вашего сайта в поле зрение хакеров а значит от взлома. Ну если конечно ваш сайт не заказали кто нибудь то данная процедура вам не поможет. (это моё личное мнение)
P.S. Моя компания обслуживает множество сайтов на Джумле и когда какой нибудь сайт взламывают хакеры то владелец сайта спрашивает меня чем же мой сайт так привлёк хакеров? Я всегда отвечаю ваш сайт не имеет глобального политического или экономического значение , а значит его хакеры взломали «просто так для спортивного интереса» а взломали ваш именно потому что он просто попался в поиске как потенциальная жертва вот и всё.
Часть 2 Основные методы взлома сайта
И так если ваш сайт всё таки хакеры обнаружили и решились взяться за взлом они начнут его через уязвимости которые больше всего известны им.
Получение административного доступа (Метод сброса пароля)SQL инъекцияВвод методом POST через CURL кода на определённую страницу(по заранее известному коду)
Самый распространённый способ взлома это получение доступа к учётной записи администратора , методом восстановление пароля .Как это происходит ?В джумле есть функция восстановления пароля, даже если у вас на сайте на стороне фрондтенда нету опубликованной ссылки на восстановления пароля простая ссылка всегда работает сама /index.php?option=com_user&view=reset
Именно по этой ссылки хакеры и могут удалённой методом POST ввести напрямую на сервер свой код, в последствии чего им будет предложено ввести новый пароль и всё пароль от учётки администратора получен. За эту операцию отвечает файл reset.php который находиться в данной директории /components/com_user/modelsЧто бы исключить эту возможность за получение административной учётки хакерами я предлагаю этой файл удалить ,ну это на тот случай если на фронтенде сайта нету сервиса авторизации , ну бывает же много сайтов визиток где нет авторизации и регистрации а удаление этого файла самый верный способ сократить шансы на взлом.
Следующий вариант взлома Джумлы это SQL инъекция , про него я особо много я рассказывать не буду, так как это отдельная тема дя разговора. Но отмечу что почва для взлома сайта таким методом есть , так как дырки в коде всегда найдутся. Те кому интересна эта тема могут почитать про SQL инъекции тут http://webew.ru/articles/2078.webewИ как же вы скажете с этой порукой бороться ? Простому обывателю мало разберющемся в php и sql есть один подходящий вариант это компонент jFireWall Lite (http://www.jfirewall.com/) на сегодняшний день именно только этот компонент может сам бороться с SQL инъекциями и блокировать нападающего. От себя хочу сказать что работает данный компонент очень эффективно , особенно требуется установка такого компонента на сайты на которых крутятся различные стронции расширения, которые создаются одним или несколькими программистами и в процессе создания не особо уделяется сторона безопасности и грамотного алгоритмического написания кода.
Часть 3 Защита файлов и доступа
Одним из важных моментов защиты Джумлы является правильное выставление прав доступа к папкам и файлам на хостинге (сервере). Выше я описывал различные методы взлома и получения доступа к сайту, обычно все те действия которые я рассказал сопровождаются загрузкой различных хакерских вредоносных файлов и прочих утилит которые помогают злоумышленнику получить доступ. Ниже я приведу оптимальные права доступа папки и файлы Джумлы которые усложнят хакерам работу и укрепят защиту вашего сайта.
Первым делом на все папки и файлы выставляем права доступа 755 и 644 соответственно (рекурсивно).На на отдельные папки я рекомендую поставить следующие праваtemplates 555 (рекурсивно)на файлы в корневой директории 444на папку tmp 705на папку logs 705
После защиты прав доступа я предлагаю ввести доступ к папки administrator по паролю который будет осуществляться самим веб сервером апатч.Для этого вам надо создать в папки администратор два файла текстовых это .htaccess в котором будет содержаться директивы доступа к папки administrator и указывать место положение файла с паролями на эту папкув этом файле должен присутствовать следующий код
AuthType basic /*тип аунтификации, он у нас один*/AuthName "123456" /*сообщение при обращении*/AuthUserFile /абсолютный путь до папки администратор/administrator/.htpasswd /*указание на файл с паролями*/Require valid-user
Как вы ведите нам осталось ещё создать один файл в котором только будет указанно имя пользователя и пароль чтобы происходила аутентификация.Файл .htpasswd тоже должен располагаться в папки администратор но в нём имя пользователя и пароль должни быть написаны в MD5 шифре.
Для облегчения данной работы я нашёл сайт где в режиме он лайн можно создать эти два файла автоматически а потом поместить их себе на сайт вот
http://www.ifstudio.org/seo/crypt.php
В итоги что надо сделать чтоб защитить свой сайт на Джумле
1.Удалить reset.php (чтоб исключить угон учётки админа)2.Удалить <meta name="generator" content="Joomla! 1.5 - Open Source Content Management" /> чтобы исключить попадания вашего сайта в область поиска хакеров своей жертвы3.Установить и настроить jFireWall Lite 4.Выставить нужные права на файлы и папки5.Установить пароль на директорию посредством веб сервер апатч
si-web.ru
что скрывается внутри взломанного сайта
или «препарируем» среднестатистический взломанный сайт на Joomla
Взлом сайта не всегда можно распознать по внешним признакам (мобильный редирект, спам-ссылки на страницах, чужие баннеры, дефейс и пр). При компрометации сайта этих внешних признаков может и не быть. Ресурс может работать в штатном режиме, без перебоев, ошибок и попадания в “черные” списки антивирусов. Но это отнюдь не означает, что сайт в безопасности. Проблема в том, что заметить факт взлома и загрузки хакерских скриптов без проведения аудита – сложно, а сами веб-шеллы, бэкдоры и другие инструменты хакера могут достаточно долго находиться на хостинге и не использоваться по назначению. Но однажды наступает момент, и они начинают сурово эксплуатироваться злоумышленником, в результате чего у владельца сайта возникают проблемы. За спам, размещение фишинговых страниц сайт блокируют на хостинге (или отключают часть функционала), а появление редиректов или вирусов на страницах чревато баном со стороны антивирусов и санкциями со стороны поисковых систем. В подобном случае необходимо в срочном порядке “лечить” сайт, а затем ставить защиту от взлома, чтобы сюжет не повторялся.
К сожалению, хакерские скрипты по внешним признакам или внешними сканерами не обнаруживаются. Поэтому ни антивирусы поисковых систем, ни антивирусное ПО, установленное у веб-мастера на компьютере, не сообщит о проблемах безопасности сайта. Если скрипты размещены где-нибудь в системных каталогах сайта (не в корневом и не в images) или инжектированы в существующие скрипты, случайно заметить их также не удастся.
Узнать о взломе в подобных случаях можно только от технической поддержки хостинга (который время от времени проверяет файлы на вирусы) или самостоятельно, проверив сайт специализированными сканерами вредоносных и хакерских скриптов (AI-BOLIT, ClamAv, Maldet,…).
Как гласит античная мудрость: “предупрежден - значит вооружен“. Для того чтобы представлять себе “масштаб бедствия” при взломе, предлагаем познакомиться со среднестатистическим сайтом на Joomla, который был взломан в результате проведения нецелевой атаки, посмотреть, что именно хакеры загрузили на сайт и какую угрозу загруженные скрипты несут сайту, его владельцу и хостингу.
Пример, который разбирается в статье - реальный, а сам инцидент произошел летом 2015 года.
Итак, сайт работает на Joomla версии 2.5.28. Причина обращения – блокировка сайта со стороны хостинга за спам-рассылку. Кроме анализа логов почтового и веб-сервера, сайт был просканирован тремя популярными решениями для обнаружения вредоносного кода на хостинге: AI-BOLIT, Maldet и ClamAv.
Результат AI-BOLIT’а: 206 вредоносных скриптов.
Результат Maldet: 84 вредоносных файла
Результат ClamAv: 67 вредоносных файлов
Мы также запросили исходный вариант сайта у разработчиков и сравнили файлы с помощью системы контроля версий git. По результатам сравнения и проверки обнаруженных файлов выяснилось, что AI-BOLIT немного перестарался, то есть обнаружил все вредоносы + около 15% было “false positive” (ложных срабатываний). Clamav и Maldet обнаружили только половину всех вредоносов, поэтому можно сделать вывод, что данные антивирусы подходят только для экспресс-проверки на заражение, но не подходят для “лечения” сайта. При “лечении” должны быть обнаружены и удалены все вредоносные и хакерские скрипты. Если останется хотя бы один бэкдор или веб-шелл, сайт взломают повторно.
После проведенного анализа мы разобрали функционал обнаруженных “вредоносов” и классифицировали их. Результат в таблице:
При нецелевом взломе хорошо прослеживаются паттерны заражения, то есть наличие однотипных вредоносных и хакерских скриптов, случайно разбросанных по каталогам сайта или внедренных в файлы .php. Число скриптов каждого вида, их код может немного отличаться от заражения к заражению за счет обфускации и шифрования, но функционал каждого вида сохраняется. Кстати, время от времени в паттерн добавляется новый вид бэкдоров. Еще год назад не было №2 и №5.
Данный паттерн заражения характерен для CMS Joomla, Wordpress, и некоторых коммерческих CMS.
Давайте рассмотрим каждый скрипт из данного набора.
Номер 1 – бэкдор, который инжектируется (внедряется) в начало случайного файла .php. Код при просмотре не сразу можно заметить, так как он намеренно “отбит” пробельными символами вправо за пределы видимой части экрана (поэтому у нас всегда включен режим “переноса строк” в редакторе).
Данная незамысловатая запись представляет собой вызов:
evаl(bаse64_decоde($_POST[‘n746521’])
То есть будет выполнен произвольный PHP код, который закодирован в base64 и передан в переменную n746521 методом POST.
Насколько опасно для сайта, если данный фрагмент останется в файле? Очень опасно, так как по сути он предоставляет злоумышленнику полный контроль над аккаунтом хостинга: через него можно выполнить любой разрешенный код PHP, создать или загрузить файлы на хостинг, разослать спам, выполнить запросы к базе данных, и многое другое. А еще данный инжект удобен для хакера тем, что не является отдельным скриптом, который можно обнаружить по логам. Запросы с вредоносной нагрузкой могут отсылаться на index.php или любой URL сайта.
Поэтому данный фрагмент нужно вычистить из всех .php файлов (зараженных файлов будет от 5 до 20). У фрагмента меняется имя переменной в апострофах, остальные фрагменты - фиксированы.
Номер 2 – бэкдор-загрузчик.
Выполняет аутентификацию по передаваемому параметру, далее делает одно из двух
- исполняет код, переданный в параметре через @evаl(bаse64_decоde($_POST[“FFSW3525KKSfj”]))
- создает файл с именем Ffhwu22313_fff555ffsd.php, сохраняет содержимое в файл и подключает его в бэкдор через @include_once, после чего удаляет. Таким образом обходит ограничение вызова eval, если он, например, заблокирован на хостинге.
Если скрипт просто открыть в браузере, то отдается статус 404 Страница не найдена. Таким образом бэкдор практически невозможно обнаружить снаружи.
Также как и №1, бэкдор позволяет получить полный контроль над аккаунтом хостинга, а в последствии, возможно, и всем сервером. Но №2 более функционален за счет обхода eval.
Хорошая новость для владельцев сайта в том, что бэкдор размещается в отдельном php скрипте, то есть его можно заметить невооруженным глазом, а также можно найти, используя find … –mtime … и find … -ctime … . Имена файлов – случайные последовательности, которые не встречаются в оригинальной версии CMS, так что при просмотре каталогов пропустить файлы будет сложно.
Номер 3 – это бэкдор-“младший брат” вредоноса №2.
Делает то же самое, но не умеет обходить запрещенный eval, то есть выполняет переданный код только через @evаl(bаse64_decоde($_POST[‘FFSW3525KKSfj’])
Номер 4 – классический WSO веб-шелл.
Веб-шелл – это “кухонный комбайн”, который делает работу хакера удобной на хостинге.
С помощью WSO шелла можно
- смотреть конфигурацию хостинга
- работать с файлами через удобный файловый менеджер (создавать, удалять, редактировать, скачивать и т.п.)
- работать с базой данных (изменять, удалять данные в таблицах и отправлять любые SQL запросы)
- выполнять различные строковые преобразования (кодировать, декодировать строковые значения)
- подбирать пароли (брутфорс)
- выполнять команды в режиме командной строки
- выполнять произвольный код PHP
- управлять сайтом (например, вставлять вирусный код в базу или файлы javascript) удаленно и автоматизированно
Если убрать деструктивный функционал, то данным инструментом могли бы пользоваться и рядовые веб-мастера. Иногда нам кажется, что функционал панелей управления некоторых хостингов заметно уступают возможностям веб-шеллов.
Номер 5 – дорвей, загружающий контент с удаленного сервера
Если его немного расшифровать, можно увидеть, с какого IP грузится контент и каким User Agent он “прикидывается”:
Дорвей генерирует тысячи страницы из разряда “черного SEO”. Страницы попадают в поисковый индекс и пагубно влияют на поисковую выдачу сайта, оригинальные страницы которого пессимизируются. Сайт может попасть под фильтр или полностью вылететь из поисковой выдачи.
Номер 6 – бэкдор, который принимает команды в виде зашифрованного серилизованного массива PHP.
Управляющие команды могут передаваться через POST переменные или COOKIE.
Бэкдор поддерживает команды:
- “i” – выдать версию PHP и версию бэкдора
- “e” – выполнить eval($data[“d”]) для кода, который передан в запросе
Фрагмент расшифрованного варианта данного бэкдора перечислен ниже.
Номер 7 – еще один бэкдор, который может размещаться как в отдельном файле размером до 400 байтов, так и инжектироваться в скрипты php. Является упрощенным вариантом №1 с теми же пагубными последствиями.
Номер 8 – дроппер руткита Mayhem. Это, пожалуй, самая опасная “нагрузка” в данном заражении.
Руткит Mayhem - серьезный вредонос для веб-серверов на ОС *nix, который превращает сервер в боевую единицу ботнета, но может работать в условиях ограниченных привилегий.
Задача данного файла сгенерировать руткит и загрузить его через LD_PRELOAD. Подробный разбор дроппера можно посмотреть по ссылке и в отчете Яндекса.
Номер 9 – мощный спам-рассыльщик.
Богатый функционал позволяет рассылать спам как через стандартную функцию mail(), так и с помощью SMTP протокола через сокеты. Поддерживаются различные шаблоны писем, рассылка по списку и пр. Исходный код хорошенько обфусцирован. Фрагмент третьего шага деобфускации выглядит так:
Номер 10 – дроппер, задача которого загрузить с удаленного сервера исполняемый шелл-файл, запустить его и по завершении удалить. С этого скрипта обычно начинается взлом сайта.
Сайт, с которого дроппер загружает шелл, также взломанный. В данном случае он используется в качестве хостинга вредоносного кода. Спустя несколько часов шелл-файл по данному адресу перестает быть доступен, поэтому определить, какой именно код выполнялся при загрузке не представляется возможным.
Итак, мы рассказали про все хакерские скрипты из данного паттерна заражения, среди которых оказались
- несколько видов бэкдоров
- спам-рассыльщик
- дорвей
- веб-шелл
- дроппер руткита
Как можно заметить, здесь нет ни одного вируса или редиректа, то есть сайт после взлома не начал распространять вредоносный код, перенаправлять посетителей, показывать баннеры, не появилось фишиновых страниц и т.п. и «снаружи» заметить взлом можно было только спустя пару месяцев, когда в поисковый индекс попадут дорвей-страницы.
Такой сайт бесполезно сканировать внешними антивирусами и антивирусными сервисами, они не покажут факт взлома, поскольку для детектирования хакерских скриптов нужно иметь доступ к файлам сайта. Поэтому первым, кто сможет сообщить владельцу сайта о факте взлома, скорее всего будет хостер. Сигналом администратору хостинг-компании для проверки сайта на взлом послужит рассылка спама с сервера (в нашей практике чаще всего встречается именно этот вариант). После сканирования аккаунта антивирус на хостинге обнаружит половину из перечисленных выше «вредоносов» (пару типов бэкдоров, руткит и спам-рассыльщик) и если владелец сайта удалит только перечисленные в антивирусном отчете скрипты, то взлом повторится и сайт снова заблокируют. Поэтому в подобных случаях следует пользоваться механизмом проверки целостности файлов аккаунта (если, конечно, веб-мастер позаботился об этом заранее), выполнять полное сканирование, и удалять все вредоносные скрипты, а затем ставить защиту от взлома средствами операционной системы и веб-сервера.
В качестве рекомендации по безопасности сайта рекомендуем
- использовать механизм integrity check (контроля целостности) или хотя бы сделать эталонный “снимок” файловой системы (список файлов, атрибутов и метаданных)
- регулярно проверять сайты сканерами вредоносного кода, чтобы обнаруживать проблему до того, как ее обнаружит хостер.
Напоследок хотелось бы отметить, что разобранный в статье пример не является каким-то особо сложным и коварным следствием взлома сайта. На большинстве сайтов, взломанных в результате нецелевой атаки, наблюдается примерно то же самое.
Хорошая новость в том, что теперь вы знаете, с чем придется иметь дело. Как гласит мудрость - “предупрежден - значит вооружен“.
Обсуждаем и комментируем
revisium.com
1. Анатомия взломанного сайта Joomla
Для начала, нам необходимо взглянуть на справочную информацию, которая даст возможность понять ситуацию, создавшуюся на вашем сайте, что поможет вам принять осознанное решение.
Как взламывают сайты на Joomla?
Общее убеждение среди владельцев сайтов состоит в том, что многие говорят “Да зачем кому-то взламывать мой сайт?", “Вряд ли мой сайт нужно кому-то взламывать”.
Но с этой идеей есть несколько проблем:
1. Предполагается, что хакер сам решает взломать ваш сайт. В реальности, атаки и взломы, в большинстве случаев, автоматизированы и происходят на основе известных уязвимостей в Joomla. Таким же образом, как генеральный директор Google не сам собирает сайты для выдачи в результатах поиска, специальные хакерские программы ищут уязвимые сайты в интернете.
2. Идея предполагает, что ваш сайт не имеет никакой ценности для хакеров. Однако каждый сайт имеет ценность для хакера.
Почему ваш сайт на Joomla стоит взламывать
Хакер может использовать любой веб-сайт, чтобы использовать его для целого ряда ценных вещей:
· Рассылка спама по электронной почте.
· Сбор личной информации о ваших клиентах.
· Повышение рейтинга других сайтов в поисковых системах путем внедрения ссылок на них на вашем сайте.
· Создать трафик с вашего на другие сайты.
· Добавить файл, которые изменяют аналитику других сайтов, для того чтобы фальсифицировать результаты SEO или маркетинговых работ, когда их нет.
· Распространение вредоносных программ для заражения компьютеров посетителей
· Шифрование ваших файлов, а после - требование выкупа за них.
Что меняется после того, как вас взломали
Сразу после того, как вас взломали, не многое может измениться. Некоторые скрипты просто устанавливают шелл для хакера, чтобы он потом мог использовать его по своему усмотрению.
Что такое Шелл? Шелл (shell) является одной из тех вещей, которые обычно добавляются для взлома сайта. Это вспомогательный скрипт, который анализирует ваш Веб-сервер для поиска других уязвимостей, а также упрощает хакерам внесение изменений в вашей системе. Это дает им возможность загружать файлы, менять права доступа, а также доступ к вашей базе данных. Это своего рода хакерский инструментарий.
Однако, шелл-скрипт - это скрипт, которого может и не быть. Все зависит от того, что хакер разместит на взломанном сайте Joomla.
Существуют три основных пункта, которые могут быть изменены после того, как вы хакнули (каждый случай индивидуален, и, может быть, вы не получите изменений во всех трех пунктах):
1. Добавлен вирус. Вредоносные программы обычно называют вирусами, червями или троянами. Это, в основном, классические программы, которые будут отправлены на компьютеры ваших посетителей, когда они будут загружать ваш сайт в своих браузерах. Вредоносные программы постоянно развиваются и могут выглядеть как самые обычные файлы и даже изображения.
2. Файлы изменены или добавлены. Когда хакер успешно взломает ваш Joomla-сайт, они может внести изменения в файловую систему, чтобы сделать что-либо из большого списка, о котором мы говорили выше.
3. Записи базы данных добавлены или изменены. Часто успешные атаки несущественно влияют на файловую систему, но база данных будет изменена. Это отдельный вид атак, когда нормальное функционирование вашего сайта на Joomla будет включать изменения в базе данных для того, чтобы причинить вред. Например, ваши статьи Joomla могут содержать JavaScript, вложенный в них через БД, из-за чего при загрузке той или иной статьи пользователь будет перенаправлен на другой сайт.
Но для любой из этих областей изменения могут происходить, но не быть очевидными. Хакеры находятся в постоянной гонке вооружений с профессионалами безопасности. Это как безумном мультфильме, в котором два шпиона воюют друг с другом, постоянно выискивая способы, чтобы обмануть друг друга. К сожалению, это делает задачу идентификации взломанных файлов и записей базы данных сложной задачей даже при использовании хороших инструментов.
Поскольку атаки не всегда очевидны, в разделе 2, “Мой сайт на Joomla взломали?”, мы будем изучать, как выяснить был ли ваш Joomla-сайт взломан. (Если вы уверены, что вас уже взломали, можно сразу перейти к разделу 3: Как найти взломанные файлы Joomla).
joomla.ru