Блог специалистов
16.02.2021

Чистим сайт от вирусов

Думаем, не один раз вы уже столкнулись с проблемой, когда сайт заражается вредоносным кодом. Найти причину заражения сложно. Обычно это устаревшие плагины, темы, утечка паролей и прочее. Это отдельная тема и тут ее не раскрыть, если вообще можно ее раскрыть.

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

Ниже представлены инструменты для облегчения этой работы.

Найти и удалить вредоносный код во всех файлах на хостинге

Ищем и/или удаляем вредоносный код в файлах определенного расширения, обычно это php, html и js, но можно добавить и свои расширения в нем.

Ссылка на скрипт

Тут всё просто. 

  1. Создаем файл treatment.php в корне сайта.

  2. В $virus_text пишем код нашего вируса.

  3. В $del пишем false, чтобы просто увидеть зараженные файл или true, чтобы удалить вредоносный код из файлов.

Отобразить все файлы с измененными датами

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

Ссылка на скрипт

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

Удаление вредоносного кода из MySQL


В последнее время стало появляться много вирусов, которые записываются в БД. Особенно у Wordpress. Так ссылки на вредоносные скрипты вставляются прямо в записи. 

Для их удаления придется воспользоваться PhpMyAdmin на хостинге. Где идем нужную базу, там выбираем SQL-запрос и уже запросмо удаляем то, что нужно. 

Запрос выглядит следующим образом:

update wp_posts set post_content =
replace(post_content,'Текст который ищем','Чем заменить, например, пусто для удаления');

Можно кавычки с ' заменить на ", если искомый код содержит такие ' кавычки.

Удаление файлов по расширению

Например, вирус создал множество файлов в директории /UPOLAD/, где не может быть файлов php.
Для этого создаем скрипт с кодом, задаем нужные параметры и запускаем:
<?php
$count = 0;
$files = glob($_SERVER['DOCUMENT_ROOT']."/upload/resize_cache/*/*.php", GLOB_BRACE);
foreach($files as $file) 
{
unlink($file);
$count++;
}
echo "Уделно файлов - ".$count;
?>

Скрипт не рекурсивный поэтому надо понимать строку, где удаляются файлы:

/upload/resize_cache- где ищем
/*/ - директориии вида 345, 874 и так далее, автоматически созданные.
*.php - файлы с раширением.

Важно, этот скрипт может уделить все файлы с сайта при неправильном использовании. Будьте осторожны.

Удаление файлов по названию, например, удалить все .htaccess

<?/*

$dir = new RecursiveDirectoryIterator(getcwd());
$files = new RecursiveIteratorIterator($dir);

foreach($files as $file){
    $name_of_file = $file->getFileName();
    $path_of_file = $file->getPath()."/".$file->getFileName(); 
    //need to concatenate "/" otherwise it shows all attached (path and file name)
    if ($name_of_file == ".htaccess") {
        //echo $path_of_file . "<br />";
        unlink($path_of_file);
    }
}
?>


Количество показов: 1292




Возврат к списку