Здравствуйте. Ломанули сайт, создали файлы с вредоносным кодом, хостинг обнаружил, прислал уведомления. Почистил файлы, обновил ядро с 7.51 до 7.59. Через 2 дня опять уведомление о вредоносном коде. Атрибуты на папках изменены с 755 на 775, в папке изменены файлы некоторых модулей в папке modules. На сайте только один юзер. Подобная история происходит с другими сайтами на этом же хостинге на семерке. На шестерке сайты не трогают. Куда копать, где смотреть дыры? Проблемы начались еще месяц назад. Я так понимаю, у многих в то время возникли схожие проблемы.
Комментарии
90%, что не дочистили.
5%, что хостинг такой
5%, что пароли ваши с FTP-клиента утекли.
Если протроянили, то это обновлением не решается, нужно ещё анализировать, могли вполне дописать в тему оформления или в базу, особенно, если PHP-фильтром балуетесь.
Пароли сменил, файлы пересматриваю сейчас, а вот что смотреть в базе не знаю. К базе есть доступ через phpMyAdmin. На что там обращать внимание?
Скорее всего, вы не вычистили некоторые файлы. Проверьте всю папку files на наличие файлов с расширением php. Затем проверьте, чтобы нигде, кроме корневого каталога не лежали файлы index.php, плюс файлы со всякими непонятными именами. Файлов может быть с пару десятков. Если не используете систему контроля версий, ароде git, то проще всего будет удалить полностью ядро, все модули и темы, кроме кастомных. Затем перезалить их с drupal.org, а папки кастомных модулей и тем просмотреть вручную.
Дело в том, что если есть лишние файлы, то они могут быть вызваны по прямой сссылке, и тут уже не важно, обновлялись вы или нет.
Да, в files регулярно закидывали разные пхп-шные файлы, даже под видом фавиконок файлы были. Только что обнаружил, что даже в default.settings.php залили гадость. Кастомных модулей нет. Лишние темы удалил. А что делать с БД?
Да, кстати, ico-файлы тоже надо проверять. А в базе надо искать пхп и джаваскрипты в текстовых полях.
Не подскажете как это делать через phpMyAdmin? Опыта пока нет.
Хотя бы минимальный SELECT * FROM block_custom WHERE body LIKE "%<?php%" и остальные таблицы
Security Review или PHP Finder помогут где используется PHP-фильтр, среди полей и блоков (вроде и во вьюхах обещают).
По опыту лечения сайтов по последней уязвимости, в files ничего не закидывали, а в базе только в ноды закидывали js с редиректом, причём это было замечено только на одном сайте. В принципе, если в форматах текста запрещены скрипты, то этотне страшно.
Отсюда делаем вывод....
Я понял к чему вы, но с сайтами на шестерке на этом же хостинге все нормально.
Это ни о чем не говорит. Может эксплойт заточен под семерку
Практически во всех зараженных файлах такая гадость залита
<?php /*435345352*/ error_reporting(0); @ini_set('error_log',NULL); @ini_set('log_errors',0); @ini_set('display_errors','Off'); @eval( base64_decode('
и дальше куча всякого не читаемого кода. Что может делать этот код?
Обычный шелл.
Скрипт для управления сайтом снаружи, если по простому.
Можно, например, заливать файлы, выполнять иные команды
Это просто отключение видимости ошибок
Это в начале, а глубже в eval() там будет код шелла в base64
Да само собой. Я просто уточнил для топикстартера что написано...
Забыл добавить, такой код есть как в отдельно созданных файлах, так и в начале файлов ядра и модулей.
Буквально пару дней назад лечил такое. Заражены были абсолютно все php файлы
Сделал поиск по БД по выражению %base64_%, нашло 4 совпадения в таблице watchdog. Какой-то подозрительный длинный набор символов написан в столбцах message, referer и location. Что с ними сделать, что бы не повредить БД?
Очистите журнал (admin/reports/dblog)
Не судите строго )) Спасибо
На каком хостинге, если не секрет?
За 50$ готов помочь в удалении без повторного заражения.