Перейти к контенту
  • 0

Яндекс - вредоносный код. Manul не проверяет


kenenj

Вопрос

Добрый день.

 

Получил из яндекс вебмастер сообщение о нахождении на форуме вредоносного кода.

 

Яндекс рекомендует проверить их антивирусом Manul, однако он не работает, на сканировании через какое то время зависает.

 

Версия форума 3.4.6

 

Что делать? 

 

Спасибо заранее!

Изменено пользователем kenenj
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Тут поможет ai-bolit . Но работает он только в консоли, так что или по ssh или скачивать на локальный компьютер.
Последнее время самый частый вредонос сидит в кеше глобального шаблона /cache/ckin_cache/cacheid_НОМЕР/skin_global.php в функции includeJS 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

В php.ini стоит отключить запускающие и некоторые другие функции, которыми пользуются кулхацкеры

 

disable_functions = popen,phpinfo,dir,readfile,shell_exec,exec,virtual,passthru,proc_close,proc_get_status,proc_open,proc_terminate,system

Изменено пользователем XTR
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вот была аналогичная проблема в тот же день, что у топикстартера, и потом прошло всё через два дня. Сегодня снова яндекс прислал алерт и в карантин поставил. 

Подозреваю, что это какие-то проблемы яндекса всётаки. 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вот была аналогичная проблема в тот же день, что у топикстартера, и потом прошло всё через два дня. Сегодня снова яндекс прислал алерт и в карантин поставил. 

Подозреваю, что это какие-то проблемы яндекса всётаки. 

 

А в поддержку Яндекса-то писали?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ложных срабатываний у яндекса я пока не встречал. Часто хотелось думать, что врет, но в итоге он оказывался прав.
Поддержка яндекса иногда под пытками выдает конкретный кусок HTML, который вызывает срабатывание. 

 

Последняя волна была характерна ссылкой форум/index.php?ipbv=a8d248fc095093d942a0ab4c88549af5&g=js . Это ссылка замаскированная под стандартный вызов минимизированной библиотеки js, но отличается тем, что ведет на корневой индекс, а не в папку minify (правильная ссылка /public/min/index.php?ipbv=a8d248fc095093d942a0ab4c88549af5&g=js должна быть на всех страницых) . Сложность обнаружения состоит в том, что страница вредоносным редиректом показывается только при переходе с гугла или яндекса и только один раз. Чтобы проверить надо зайти на форум с чистыми пустыми куками и кешами(в режиме инкогнито) и с google.com в заголовке referer .

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Доброй ночи.
Я вот тоже словил бяку. Вот от яндекса пришло

 

На Вашем сайте периодически появляется указанный ниже вредоносный код:
 
при подгрузке следующего url:
nlc-zone.ru/forum/public/min/index.php?ipbv=b7af755633926f5a00313de81c8c7342&g=js
 
Где искать эту заразу? Вот код из файла skin_global.php
/* -- includeJS --*/
function includeJS($jsModules) {
$IPBHTML = "";
if( IPSLib::locationHasHooks( 'skin_global', $this->_funcHooks['includeJS'] ) )
{
$count_8177bbbd0141c4b5f91f4975cc1fa1c6 = is_array($this->functionData['includeJS']) ? count($this->functionData['includeJS']) : 0;
$this->functionData['includeJS'][$count_8177bbbd0141c4b5f91f4975cc1fa1c6]['jsModules'] = $jsModules;
}
$IPBHTML .= "" . (($this->settings['use_minify']) ? ("" . (($this->settings['remote_load_js']) ? ("<script type='text/javascript' src='" . (($this->registry->output->isHTTPS) ? ("https") : ("http")) . "://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js'></script>
		<script type='text/javascript' src='" . (($this->registry->output->isHTTPS) ? ("https") : ("http")) . "://ajax.googleapis.com/ajax/libs/scriptaculous/1.8/scriptaculous.js?load=effects,dragdrop,builder'></script>") : ("
		<script type='text/javascript' src='{$this->settings['js_base_url']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&g=js'></script>
	")) . "
	<script type='text/javascript' src='{$this->settings['js_base_url']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&charset={$this->settings['gb_char_set']}&f=" . PUBLIC_DIRECTORY . "/js/ipb.js,cache/lang_cache/{$this->lang->lang_id}/ipb.lang.js," . PUBLIC_DIRECTORY . "/js/ips.hovercard.js," . PUBLIC_DIRECTORY . "/js/ips.quickpm.js" . ((count($jsModules)) ? ("," . PUBLIC_DIRECTORY . "/js/ips." . implode('.js,' . PUBLIC_DIRECTORY . '/js/ips.', array_unique( array_keys( $jsModules ) ) ) . ".js") : ("")) . "' charset='{$this->settings['gb_char_set']}'></script>") : ("" . (($this->settings['remote_load_js']) ? ("<script type='text/javascript' src='" . (($this->registry->output->isHTTPS) ? ("https") : ("http")) . "://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js'></script>") : ("
		<script type='text/javascript' src='{$this->settings['js_base_url']}js/3rd_party/prototype.js'></script>
	")) . "
	<script type='text/javascript' src='{$this->settings['js_base_url']}js/ipb.js?ipbv={$this->registry->output->antiCacheHash}&load=quickpm,hovercard," . implode(',', array_unique( array_keys( $jsModules ) ) ) . "'></script>
	" . (($this->settings['remote_load_js']) ? ("<script type='text/javascript' src='" . (($this->registry->output->isHTTPS) ? ("https") : ("http")) . "://ajax.googleapis.com/ajax/libs/scriptaculous/1.8/scriptaculous.js?load=effects,dragdrop,builder'></script>") : ("
		<script type='text/javascript' src='{$this->settings['js_base_url']}js/3rd_party/scriptaculous/scriptaculous-cache.js'></script>
	")) . "
	<script type=\"text/javascript\" src='{$this->settings['cache_dir']}lang_cache/{$this->lang->lang_id}/ipb.lang.js?nck={$this->settings['noCacheKey']}' charset='{$this->settings['gb_char_set']}'></script>")) . "
" . ( method_exists( $this->registry->getClass('output')->getTemplate('global'), 'liveEditJs' ) ? $this->registry->getClass('output')->getTemplate('global')->liveEditJs() : '' ) . "
" . (($this->registry->output->isLargeTouchDevice()) ? ("
<script type=\"text/javascript\" src='{$this->settings['js_base_url']}js/3rd_party/iscroll/iscroll.js'></script>
") : ("")) . "
<script type=\"text/javascript\" src='http://code.jquery.com/jquery-1.10.1.min.js'></script>
<script type=\"text/javascript\">
  $.noConflict();
</script>
<script src='http://code.jquery.com/jquery-1.10.2.min.js'></script>
<script src='http://code.jquery.com/jquery-migrate-1.2.1.min.js'></script>
<script type='text/javascript'>jQuery.noConflict();</script>";
return $IPBHTML;
}

Изменено пользователем RUS_D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

includ_js чистый. Значит код или прямо в js записан или прибавляется через зараженную minify . В глобальных настройках отключите сжатие js и css. Тогда станет ясно, в каком конкретно js

Ссылка на комментарий
Поделиться на других сайтах

  • 0

4 марта яндекс признал сайт чистым, а сегодня опять пометил как вирусный :(
А кода так найти и не могу. Не вижу никаких перенаправлений.
Не может кто то глянуть сайт nlc-zone.ru и его форум nlc-zone.ru/forum/ 
Может я что то пропустил?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

На странице есть ссылка на 
 

http://nlc-zone.ru/forum/index.php?ipbv=577af55208b78c8e51951c05dd39ec48&g=js

код 

		<script type='text/javascript' src='http://nlc-zone.ru/forum/index.php?ipbv=577af55208b78c8e51951c05dd39ec48&g=js'></script>

Код появляется только при запросе с заголовком referer, содержащим yandex, google и , возможно, другие ПС. Т.е. рассчитан на переход из поисковой выдачи.
При первом запросе этого адреса загружается главная форума и что-то ставится в сессию, при повторном переходе выдается пустая страница с кодом 200. Если сессию из куки удалить, снова открывает главную. Редиректа не удалось добиться, возможно что-то там у вредоноса поломалось или есть еще какие-то условия.
 


Зараза, проверяет referer при обоих запросах. Сначала должен быть запрос с refere содержащим ПС, тогда появится код вызова через скрипт. А сам скрипт должен быть уже запрошен с referer содержащим nlc-zone.ru .

Редирект увидеть можно так. Открываем хром в режиме инкогнито или фф в приватном, идем в гугл и пришем 

site:nlc-zone.ru/forum 

Кликаем по любой ссылке из выдачи и наблюдаем редирект во всей красе. После редиректа ставится куки lang_id = en . Если такое куки уже есть, то редиректа не будет. 


Как лечить:

Идем в админку, открываем стиль по умолчанию, шаблон includeJS. Добавляем в него пробел где-нибудь и сохраняем. Потом жмем отвенить изменения и возвращаем шаблон к дефолтному. Если есть свои добавки к этому шаблону, то возвращаем их на место. 

Чтобы через пару дней снова не заболеть, переименовываем папку admin и вписываем новый путь в initdata.php. Находим всех юзеров, имеющих доступ в админку и меняем им пароли.

Если хочется поразбираться, то перед всем этим записываем результат stat или дату изменения для файла skin_global.php из кеша стиля. По времени изменения находим в логах веб-сервера несколько запросов к админке логин, изменение шаблона, логаут. По IP клиента, сделавшего запросы, можно еще поискать в более ранних логах. Но ничего интересного там, скорее всего, нет. 

Когда я пытался найти источник массовых заражений этом редиректом, то пришел к выводу, что причина в каком-то нуленом хуке, который сливал пароли админов. Делать он это мог несколько лет. Затем, когда накопилась критическая масса, владелец трояна запустил бота. Бот используя базу собранных паролей лезет и меняет всем шаблон. База довольно большая, бот делает круг за несколько суток. 

  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Да, основная волна прошла год назад. Тогда и появилась куча статей.

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

У меня манул ругается на: applications/core/modules/admin/applications/plugins.php

Перезалил данный файл из офдистрибутива, прогнал еще раз, результат тот же :-)

 

Есть у кого идеи?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

У меня манул ругается на: applications/core/modules/admin/applications/plugins.php

Перезалил данный файл из офдистрибутива, прогнал еще раз, результат тот же :-)

 

Есть у кого идеи?

 

У меня было так - удаляется вирус из кода, но он сидит где-то глубже, и чрез день-два снова прописывается в код. Ловли дня 2-3, но всётаки победили. 

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.