Reg.ru нашел вирус, я его в упор не вижу.

12 3
I
На сайте с 19.12.2011
Offline
90
4917

Уважаемые фарумчане, сегодня пришло письмо вот такого содержания.

Здравствуйте!

Вас приветствует ООО "Регистратор доменных имен РЕГ.РУ"!

Вы являетесь владельцем услуги хостинга u398*****.
Уведомляем Вас о том, что на Вашем аккаунте обнаружено вредоносное программное обеспечение.

Далее предлагают восстановит из бекапа. Ниже файлы которые заражены.

{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/apple-seller.ru/admin/model/tool/image.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/system/library/template.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/system/library/mail.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/system/library/log.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/system/library/config.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/system/library/language.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/catalog/controller/module/cart.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/catalog/controller/checkout/cart.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/catalog/controller/checkout/simplecheckout_cart.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/catalog/controller/checkout/confirm.php
{HEX}php.cmdshell.shellcomm.335 : u398**** : /var/www/u398****/public_html/demo2/catalog/controller/product/product.php

Просмотр файлов ничего не дал, последнее изменение файла /public_html/apple-seller.ru/admin/model/tool/image.php было аж 15 марта. Лишнего кода не вижу. Вот код самого файла.

<?php

class ModelToolImage extends Model {
public function resize($filename, $width, $height) {
if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) {
return;
}

$info = pathinfo($filename);
$extension = $info['extension'];

$old_image = $filename;
$new_image = 'cache/' . utf8_substr($filename, 0, strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;

if (!file_exists(DIR_IMAGE . $new_image) || (filemtime(DIR_IMAGE . $old_image) > filemtime(DIR_IMAGE . $new_image))) {
$path = '';

$directories = explode('/', dirname(str_replace('../', '', $new_image)));

foreach ($directories as $directory) {
$path = $path . '/' . $directory;

if (!file_exists(DIR_IMAGE . $path)) {
@mkdir(DIR_IMAGE . $path, 0777);
}
}

$image = new Image(DIR_IMAGE . $old_image);
$image->resize($width, $height);
$image->save(DIR_IMAGE . $new_image);
}

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
return HTTPS_IMAGE . $new_image;
} else {
return HTTP_IMAGE . $new_image;
}
}
}
?>

Файл от оригинала ни чем не отличается. Поддержка по телефону ни чего не сказала. Типа раз нашли, значит нашли. Подскажите в чем дело? Проверял целиком сайт касперским, выкачал файлы и проверил на ПК. Проверил указанные файлы drweb-ом, тоже ноль нет вирусов. Вот одна из проверок. http://online2.drweb.com/cache/?i=4a2eb20af202543c94432932b1d78458 .htaccess чистый, нет ни редиректов ни ссылок на сайте, то есть сайт вполне здоровый. Тут сайт. Второй у меня демо, там делается новый сайт. Если что, могу в ЛС скинуть. Прошу помощи. Заранее благодарен за помощь.

---------- Добавлено 05.04.2013 в 15:50 ----------

HEX кодировка выглядит так. Но такого в файлах я не нашел.

3C3F7068700A636C617373204D6F6465
6C546F6F6C496D61676520657874656E
6473204D6F64656C207B0A097075626C
69632066756E6374696F6E2072657369
7A65282466696C656E616D652C202477
696474682C202468656967687429207B
0A0909696620282166696C655F657869
737473284449525F494D414745202E20
2466696C656E616D6529207C7C202169
735F66696C65284449525F494D414745
202E202466696C656E616D652929207B
0A09090972657475726E3B0A09097D20
0A09090A090924696E666F203D207061
7468696E666F282466696C656E616D65
293B0A090924657874656E73696F6E20
3D2024696E666F5B27657874656E7369
6F6E275D3B0A09090A0909246F6C645F
696D616765203D202466696C656E616D
653B0A0909246E65775F696D61676520
3D202763616368652F27202E20757466
385F737562737472282466696C656E61
6D652C20302C2073747272706F732824
66696C656E616D652C20272E27292920
2E20272D27202E20247769647468202E
20277827202E2024686569676874202E
20272E27202E2024657874656E73696F
6E3B0A09090A0909696620282166696C
655F657869737473284449525F494D41
4745202E20246E65775F696D61676529
207C7C202866696C656D74696D652844
49525F494D414745202E20246F6C645F
696D61676529203E2066696C656D7469
6D65284449525F494D414745202E2024
6E65775F696D616765292929207B0A09
09092470617468203D2027273B0A0909
090A090909246469726563746F726965
73203D206578706C6F646528272F272C
206469726E616D65287374725F726570
6C61636528272E2E2F272C2027272C20
246E65775F696D6167652929293B0A09
09090A090909666F7265616368202824
6469726563746F726965732061732024
6469726563746F727929207B0A090909
092470617468203D202470617468202E
20272F27202E20246469726563746F72
793B0A090909090A0909090969662028
2166696C655F65786973747328444952
5F494D414745202E2024706174682929
207B0A0909090909406D6B6469722844
49525F494D414745202E202470617468
2C2030373737293B0A090909097D0909
0A0909097D0A0909090A09090924696D
616765203D206E657720496D61676528
4449525F494D414745202E20246F6C64
5F696D616765293B0A09090924696D61
67652D3E726573697A65282477696474
682C2024686569676874293B0A090909
24696D6167652D3E7361766528444952
5F494D414745202E20246E65775F696D
616765293B0A09097D0A090A09096966
202869737365742824746869732D3E72
6571756573742D3E7365727665725B27
4854545053275D292026262028282474
6869732D3E726571756573742D3E7365
727665725B274854545053275D203D3D
20276F6E2729207C7C20282474686973
2D3E726571756573742D3E7365727665
725B274854545053275D203D3D202731
27292929207B0A09090972657475726E
2048545450535F494D414745202E2024
6E65775F696D6167653B0A09097D2065
6C7365207B0A09090972657475726E20
485454505F494D414745202E20246E65
775F696D6167653B0A09097D090A097D
0A7D0A3F3E

Это тот же код что и предоставленный выше.

Продажа оригинальной продукции Apple в Москве Apple-Seller.ru (http://apple-seller.ru/). Отличный VPS/VDS хостинг для сайтов в Inferno Solutions (http://cp.inferno.name/aff.php?aff=1489).
SeVlad
На сайте с 03.11.2008
Offline
1609
#1
iSeller:
Поддержка по телефону ни чего не сказала. Типа раз нашли, значит нашли.

А письменно запросить - в каких строках файла зараза? Обязательно с указанием того, что файл = оригинальному.

iSeller:
Проверил указанные файлы drweb-ом, тоже ноль нет вирусов

Айболитом надо проверять.

ЗЫ. Ох уж эти хостеры, лезущие без разрешения в юзеровские файлы.. Повбывавбы. Хорошо хоть только предупредили, а не стали самостоятельно блокировать\исправлять\удалять как некоторые.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
I
На сайте с 19.12.2011
Offline
90
#2
SeVlad:
А письменно запросить - в каких строках файла зараза? Обязательно с указанием того, что файл = оригинальному.


Айболитом надо проверять

Запросил еще в 14 часов, прошло более 2 часов, кроме моих сообщений ни чего не появилось в тикет системе. Это второе обращение в Рег.ру за все время и за неделю, на первое ответ пришел через 9 часов, сервак лег по чьей то причине. Сервак ожил через 3 часа, а ответ пришел через 9. Боюсь пока они будут думать то яша и гоша меня пометят. Хотя вот хоть убейте, не вижу я вируса, ни один антивирь не ругается, браузеры тоже.

IL
На сайте с 20.04.2007
Offline
435
#3
iSeller:
Подскажите в чем дело?

Есть ощущение, что

{HEX}php.cmdshell.shellcomm.335
был "определён" по одной из команд обращения к файловой системе (или filemtime или chmod).. Если, конечно, файл именно этот (не demo)
apple-seller.ru/admin/model/tool/image.php

p.s. Сегодня видел несколько предупреждений на разных аккаунтах от reg.ru - ни одного ложного...

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
SeVlad
На сайте с 03.11.2008
Offline
1609
#4
ivan-lev:
filemtime

Так она в коде.

if (!file_exists(DIR_IMAGE . $new_image) || (filemtime(DIR_IMAGE . $old_image) > filemtime(DIR_IMAGE . $new_image))) 

Проверяет дату, если я правильно понял.

Не понял только какая опасность от неё и почему хостинг на это должен реагировать. Тем более ТАК.

I
На сайте с 19.12.2011
Offline
90
#5
ivan-lev:
Есть ощущение, что был "определён" по одной из команд обращения к файловой системе (или filemtime или chmod).. Если, конечно, файл именно этот (не demo)


p.s. Сегодня видел несколько предупреждений на разных аккаунтах от reg.ru - ни одного ложного...

Нет это файл рабочего сайта.

<?php
class ModelToolImage extends Model {
public function resize($filename, $width, $height) {
if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) {
return;
}

$info = pathinfo($filename);
$extension = $info['extension'];

$old_image = $filename;
$new_image = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;

if (!file_exists(DIR_IMAGE . $new_image) || (filemtime(DIR_IMAGE . $old_image) > filemtime(DIR_IMAGE . $new_image))) {
$path = '';

$directories = explode('/', dirname(str_replace('../', '', $new_image)));

foreach ($directories as $directory) {
$path = $path . '/' . $directory;

if (!file_exists(DIR_IMAGE . $path)) {
@mkdir(DIR_IMAGE . $path, 0777);
}
}

$image = new Image(DIR_IMAGE . $old_image);
$image->resize($width, $height);
$image->save(DIR_IMAGE . $new_image);
}

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
return HTTPS_IMAGE . $new_image;
} else {
return HTTP_IMAGE . $new_image;
}
}
}
?>

Вот код оригинала, то есть со сборки оцсторе, это опенкарт русский. Не вижу отличий. кроме отсутствия utf8 вот в этом коде strrpos($filename, '.'))

---------- Добавлено 05.04.2013 в 16:29 ----------

Извиняюсь ввел в заблуждение.

<?php
class ModelToolImage extends Model {
public function resize($filename, $width, $height) {
if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) {
return;
}

$info = pathinfo($filename);
$extension = $info['extension'];

$old_image = $filename;
$new_image = 'cache/' . utf8_substr($filename, 0, strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;

if (!file_exists(DIR_IMAGE . $new_image) || (filemtime(DIR_IMAGE . $old_image) > filemtime(DIR_IMAGE . $new_image))) {
$path = '';

$directories = explode('/', dirname(str_replace('../', '', $new_image)));

foreach ($directories as $directory) {
$path = $path . '/' . $directory;

if (!file_exists(DIR_IMAGE . $path)) {
@mkdir(DIR_IMAGE . $path, 0777);
}
}

$image = new Image(DIR_IMAGE . $old_image);
$image->resize($width, $height);
$image->save(DIR_IMAGE . $new_image);
}

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
return HTTPS_IMAGE . $new_image;
} else {
return HTTP_IMAGE . $new_image;
}
}
}
?>

Вот код рабочего сайта, utf8 появилась в следующей редакции. Демо сайт на последней версии. Проверял все папки и фалы сайтов, ни одного звоночка от антивирусов.

---------- Добавлено 05.04.2013 в 16:33 ----------

Вот один из файлов с демо сайта. /public_html/demo2/system/library/template.php

<?php
class Template {
public $data = array();

public function fetch($filename) {
$file = DIR_TEMPLATE . $filename;

if (file_exists($file)) {
extract($this->data);

ob_start();

include($file);

$content = ob_get_contents();

ob_end_clean();

return $content;
} else {
trigger_error('Error: Could not load template ' . $file . '!');
exit();
}
}
}
?>

И опять я в упор не вижу вируса. Оригинал ниже.

<?php
class Template {
public $data = array();

public function fetch($filename) {
$file = DIR_TEMPLATE . $filename;

if (file_exists($file)) {
extract($this->data);

ob_start();

include($file);

$content = ob_get_contents();

ob_end_clean();

return $content;
} else {
trigger_error('Error: Could not load template ' . $file . '!');
exit();
}
}
}
?>
IL
На сайте с 20.04.2007
Offline
435
#6
SeVlad:
Так она в коде. Проверяет дату, если я правильно понял.

да, я понимаю.. Я к тому, что подобные функции часто "зловреды" используют.. может потому и "ошибся" антивирус их.. (ну т.е. формулировка подразумевает не 100%, а что-то вроде "подозрение" на вирус)

---------- Post added 05-04-2013 at 16:46 ----------

iSeller:
И опять я в упор не вижу вируса. Оригинал ниже.

А файл точно весь выделен? CTRL+A?

Иногда зараза в последние строчки "за экран" дописываются..

SeVlad
На сайте с 03.11.2008
Offline
1609
#7
ivan-lev:
Я к тому, что подобные функции часто "зловреды" используют..

Ну я понимаю chmod, а filemtime? Это ж не touch.

Чего его боятся? Мб я чего-то не понимаю..

Нет, оно понятно, что, прежде чем вернуть дату изменённому файлу - надо вначале её получить. Но боятся этого (и детектить как опасность) - это уже параноя. ИМХО :)

I
На сайте с 19.12.2011
Offline
90
#8

ctrl+a я выделял. Ниже строк даже нет. Блин рег.ру молчит. Сегодня ап скорее всего. ((( Самое интересное что фалы не изменены вчера сегодня. Например image.php редактировался 15 марта. Файлы от демо тоже от 12-16 марта. ПК сразу проверил вирусов 0.

IL
На сайте с 20.04.2007
Offline
435
#9

SeVlad, это предположение было.. в других файлах вроде ничего похожего.. зато там extract есть.. и include..

p.s. iSeller, может антивирус его и почистил уже?

I
На сайте с 19.12.2011
Offline
90
#10
ivan-lev:
зато там extract есть.. и include..
p.s. iSeller, может антивирус его и почистил уже?

А чем это грозит?

P.S. Но оповестить то должен антивирус. Касперский на каждый чих выдает окно. Типа попытка загрузки вируса или обнаружена фишинговая ссылка. Такое он мне часто выдает при проверке винком ссылок. Но ни разу не пропустил бяку.

12 3

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